using DocumentService.Application.Common.DTOs; using DocumentService.Client.Models.Requests; namespace DocumentService.Client.Interfaces; /// /// Client for PDF attachment operations (check, extract, add). /// public interface IPdfAttachmentClient { /// /// Checks if PDF contains attachments (multipart). /// /// PDF file stream /// Cancellation token /// Attachment check result with metadata Task CheckAttachmentsAsync(Stream pdfStream, CancellationToken cancellationToken = default); /// /// Checks if PDF contains attachments (Base64). /// /// PDF file as byte array /// Cancellation token /// Attachment check result with metadata Task CheckAttachmentsAsync(byte[] pdfBytes, CancellationToken cancellationToken = default); /// /// Extracts all embedded attachments from a PDF (multipart). /// The returned dictionary maps each file name to its decompressed content stream. /// /// PDF file stream /// Cancellation token /// Dictionary of file name ? content stream for each extracted attachment Task> ExtractAttachmentsAsync(Stream pdfStream, CancellationToken cancellationToken = default); /// /// Extracts all embedded attachments from a PDF (Base64). /// The returned dictionary maps each file name to its decompressed content stream. /// /// PDF file as byte array /// Cancellation token /// Dictionary of file name ? content stream for each extracted attachment Task> ExtractAttachmentsAsync(byte[] pdfBytes, CancellationToken cancellationToken = default); /// /// Adds attachments to PDF (multipart). ?? Not implemented yet in API. /// /// PDF file stream /// Attachments to add /// Cancellation token /// Modified PDF as stream [Obsolete("API endpoint not implemented yet")] Task AddAttachmentsAsync(Stream pdfStream, List attachments, CancellationToken cancellationToken = default); /// /// Adds attachments to PDF (Base64). ?? Not implemented yet in API. /// /// PDF file as byte array /// Attachments to add /// Cancellation token /// Modified PDF as stream [Obsolete("API endpoint not implemented yet")] Task AddAttachmentsAsync(byte[] pdfBytes, List attachments, CancellationToken cancellationToken = default); }