using DocumentOperator.Domain.Models.ValueObjects;

namespace DocumentOperator.Application.Common.Interfaces;

public interface IPdfProcessor
{
    /// <summary>
    /// Validates a PDF and extracts metadata.
    /// </summary>
    /// <param name="pdfBytes">PDF content as byte array</param>
    /// <returns>PDF metadata (page count, size, version, attachments)</returns>
    /// <exception cref="Domain.Common.Exceptions.PdfProcessingException">
    /// Thrown when PDF is corrupted or cannot be processed
    /// </exception>
    Task<PdfMetadata> ValidateAsync(byte[] pdfBytes);
}