import type { DocumentBuilder } from './document-builder.ts'; import type { PDFDocumentInfo } from './pdf-document.ts'; /** * A fragment representing a single RDF description scoped to one namespace, * to be merged into the document's XMP metadata. */ export type XMPFragment = { /** The namespace URI (e.g., 'http://example.com/ns/custom/1.0/'). */ readonly namespaceUri: string; /** The namespace prefix used in the XML content (e.g., 'custom'). */ readonly prefix: string; /** Raw XML content to place inside the rdf:Description element. */ readonly unsafeInnerXML: string; }; /** * Generates a complete XMP metadata XML string from document info and * optional custom fragments. * * The generated XMP follows the XMP specification with proper namespace * declarations and RDF structure. Info dictionary values are mapped to * their standard XMP equivalents in Dublin Core, XMP Basic, and Adobe * PDF namespaces. */ export declare function generateXMP(info: PDFDocumentInfo, fragments?: readonly XMPFragment[]): string; /** * Registers an XMP metadata stream in the document catalog. * * The XMP content is stored as-is in an uncompressed stream, as required * by the PDF specification (metadata must be readable by simple text tools). * * @param xmp - The XMP XML string to embed. * @param docBuilder - The document builder to register the stream in. */ export declare function registerXMPMetadata(xmp: string, docBuilder: DocumentBuilder): void;