/** * Escritor incremental para PDFs. * Permite adicionar modificações ao final de um PDF existente * sem reescrever todo o documento, preservando assinaturas digitais. */ import PDFCrossRefSection from "../document/PDFCrossRefSection"; import PDFTrailer from "../document/PDFTrailer"; import PDFTrailerDict from "../document/PDFTrailerDict"; import PDFObject from "../objects/PDFObject"; import PDFRef from "../objects/PDFRef"; import PDFContext from "../PDFContext"; /** * Informações de serialização incremental. */ export interface IncrementalSerializationInfo { size: number; indirectObjects: [PDFRef, PDFObject][]; xref: PDFCrossRefSection; trailerDict: PDFTrailerDict; trailer: PDFTrailer; } /** * Snapshot do documento para salvamento incremental. */ export interface DocumentSnapshot { /** Bytes originais do documento */ originalBytes: Uint8Array; /** Tamanho do documento original (offset para xref) */ originalSize: number; /** Offset do último xref no documento original */ previousXRefOffset: number; /** Referências de objetos modificados */ modifiedRefs: Set; /** Marca temporal do snapshot */ timestamp: number; } /** * Classe para gerenciar salvamentos incrementais de PDFs. */ declare class PDFIncrementalWriter { static forContext: (context: PDFContext, snapshot: DocumentSnapshot, objectsPerTick: number) => PDFIncrementalWriter; private readonly context; private readonly snapshot; private readonly objectsPerTick; private parsedObjects; private constructor(); /** * Serializa as mudanças incrementais para um buffer. */ serializeToBuffer(): Promise; /** * Calcula o tamanho do buffer incremental. */ private computeBufferSize; /** * Cria o dicionário trailer para atualização incremental. */ private createTrailerDict; /** * Calcula o tamanho de um objeto indireto. */ private computeIndirectObjectSize; private shouldWaitForTick; } export default PDFIncrementalWriter; /** * Cria um snapshot do documento para salvamento incremental posterior. * @param bytes Os bytes originais do documento * @returns O snapshot do documento */ export declare function createDocumentSnapshot(bytes: Uint8Array): DocumentSnapshot; /** * Marca uma referência como modificada no snapshot. */ export declare function markRefAsModified(snapshot: DocumentSnapshot, ref: PDFRef): void; //# sourceMappingURL=PDFIncrementalWriter.d.ts.map