using Codecrete.SwissQRBill.Generator; namespace DocumentOperator.Application.Common.Interfaces; /// /// Interface for Swiss QR Code processing operations. /// Extracts and parses Swiss QR Codes from PDF documents. /// public interface ISwissQrCodeProcessor { /// /// Extracts and parses Swiss QR Code from a PDF document. /// Returns both parsed Bill object and raw QR text lines. /// /// PDF document as byte array /// Optional: Specific page numbers to scan (1-indexed). If null, scans all pages starting with last page. /// Cancellation token /// Tuple: (Parsed Codecrete Bill, Raw QR lines as string array) /// /// Thrown when no Swiss QR Code is found in the specified pages /// /// /// Thrown when PDF processing fails /// Task<(Bill Bill, string[] RawLines)> ExtractSwissQrCodeAsync( byte[] pdfBytes, int[]? pageNumbers = null, CancellationToken cancellationToken = default); }