import { LoggingAdapter, MergePdfsOptions, UserInfo, FooterConfig } from '../types.js';
/**
 * Service for merging PDF documents
 */
export declare class MergeService {
    private readonly logger;
    constructor(logger?: LoggingAdapter);
    /**
     * Merge multiple PDF buffers into a single PDF
     */
    mergePdfs(chunks: Buffer[], options?: MergePdfsOptions): Promise<Buffer>;
    /**
     * Get information about PDF buffers without merging
     */
    analyzePdfs(chunks: Buffer[]): Promise<{
        totalChunks: number;
        totalPages: number;
        totalSize: number;
        chunkInfo: Array<{
            index: number;
            pages: number;
            sizeKB: number;
            valid: boolean;
            error?: string;
        }>;
    }>;
    /**
     * Validate PDF buffers
     */
    validatePdfs(chunks: Buffer[]): Promise<{
        valid: boolean;
        errors: Array<{
            chunkIndex: number;
            error: string;
        }>;
    }>;
    /**
     * Split a PDF into individual page buffers
     */
    splitPdf(pdfBuffer: Buffer): Promise<Buffer[]>;
    /**
     * Extract specific pages from a PDF
     */
    extractPages(pdfBuffer: Buffer, pageIndices: number[]): Promise<Buffer>;
    /**
     * Get PDF metadata
     */
    getPdfInfo(pdfBuffer: Buffer): Promise<{
        pages: number;
        sizeKB: number;
        title?: string;
        author?: string;
        creator?: string;
        producer?: string;
        creationDate?: Date;
        modificationDate?: Date;
    }>;
    /**
     * Add page numbers + footer (separator, "Generated by", company line) to a PDF.
     *
     * Footer composition is controlled per-line via `footer.show*` toggles and per-string
     * via `footer.labels`. A line is omitted when its underlying value is empty (no
     * placeholder text). Pass `footer: false` (or `footer.show: false`) to skip the
     * entire footer including the separator.
     */
    addPageNumbers(pdfBuffer: Buffer, options?: {
        userInfo?: UserInfo;
        isRTL?: boolean;
        footer?: FooterConfig | false;
    }): Promise<Buffer>;
}
//# sourceMappingURL=MergeService.d.ts.map