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);
}