using DocumentOperator.Application.Common.DTOs; namespace DocumentOperator.Application.Common.Interfaces; public interface IPdfProcessor { /// /// Validates a PDF and extracts metadata. /// /// PDF content as stream (caller is responsible for disposal) /// PDF metadata (page count, size, version, attachments) /// /// Thrown when stream is empty or invalid /// Task ValidateAsync(Stream pdfStream); /// /// Validates a PDF/A document and checks conformance level. /// /// PDF content as stream (caller is responsible for disposal) /// PDF/A metadata including conformance level and validation errors/warnings /// /// Thrown when stream is empty or invalid /// Task ValidatePdfAAsync(Stream pdfStream); /// /// Checks for embedded files (attachments) in a PDF document and returns detailed metadata. /// /// PDF content as stream (caller is responsible for disposal) /// Attachment information (count, file names, MIME types, sizes) /// /// Thrown when stream is empty or invalid /// Task CheckAttachmentsAsync(Stream pdfStream); }