namespace DigitalData.MessagingService.Application.Common.Interfaces; /// /// PDF processing service interface. /// Operates on streams instead of file paths for flexibility. /// public interface IPdfProcessingService { /// /// Validates if the provided stream contains a valid PDF document. /// Throws InvalidPdfException if the stream is not a valid PDF. /// Task ValidatePdfAsync(Stream pdfStream, CancellationToken cancellationToken = default); /// /// Extracts embedded files from PDF stream to the specified output directory. /// Returns a list of paths to extracted files. /// Task> ExtractEmbeddedFilesAsync(Stream pdfStream, string outputDirectory, CancellationToken cancellationToken = default); /// /// Gets the page count of the PDF document. /// Throws InvalidPdfException if the stream is not a valid PDF. /// Task GetPageCountAsync(Stream pdfStream, CancellationToken cancellationToken = default); }