namespace DocumentService.Client.Interfaces;
///
/// Client for Swiss QR Code extraction operations.
///
public interface ISwissQrCodeClient
{
///
/// Extracts Swiss QR Code from PDF (multipart).
///
/// PDF file stream
/// If true, returns raw QR text lines instead of parsed Bill object
/// Cancellation token
/// Swiss QR Code extraction result
Task ExtractSwissQrCodeAsync(Stream pdfStream, bool raw = false, CancellationToken cancellationToken = default);
///
/// Extracts Swiss QR Code from PDF (Base64).
///
/// PDF file as byte array
/// If true, returns raw QR text lines instead of parsed Bill object
/// Cancellation token
/// Swiss QR Code extraction result
Task ExtractSwissQrCodeAsync(byte[] pdfBytes, bool raw = false, CancellationToken cancellationToken = default);
}
///
/// DTO for Swiss QR Code extraction result
///
public record SwissQrCodeExtractionResult
{
/// Parsed Swiss QR bill object. null when raw=true was requested.
public object? Bill { get; init; }
/// Raw QR code text lines. Populated when raw=true was requested.
public List RawLines { get; init; } = new();
}