diff --git a/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs b/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs
index bbbb224..9c7795c 100644
--- a/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs
+++ b/DocumentOperator.Application/Common/Interfaces/IPdfProcessor.cs
@@ -1,4 +1,4 @@
-using DocumentOperator.Domain.Models.ValueObjects;
+using DocumentOperator.Application.Common.DTOs;
namespace DocumentOperator.Application.Common.Interfaces;
@@ -7,20 +7,30 @@ public interface IPdfProcessor
///
/// Validates a PDF and extracts metadata.
///
- /// PDF content as byte array
+ /// PDF content as stream (caller is responsible for disposal)
/// PDF metadata (page count, size, version, attachments)
- ///
- /// Thrown when PDF is corrupted or cannot be processed
+ ///
+ /// Thrown when stream is empty or invalid
///
- Task ValidateAsync(byte[] pdfBytes);
+ Task ValidateAsync(Stream pdfStream);
///
/// Validates a PDF/A document and checks conformance level.
///
- /// PDF content as byte array
+ /// PDF content as stream (caller is responsible for disposal)
/// PDF/A metadata including conformance level and validation errors/warnings
- ///
- /// Thrown when PDF is corrupted or cannot be processed
+ ///
+ /// Thrown when stream is empty or invalid
///
- Task ValidatePdfAAsync(byte[] pdfBytes);
+ 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);
}
\ No newline at end of file