/**
 * Módulo PDF - Generación de representaciones imprimibles
 *
 * Este módulo proporciona funcionalidades para generar representaciones
 * imprimibles (PDF) de los documentos electrónicos.
 */
import { NodeFactError } from '../core';
import { templates, getTemplateByDocumentType } from './templates';
export declare class PDFError extends NodeFactError {
    constructor(message: string);
}
export interface PDFOptions {
    outputPath?: string;
    logo?: string;
    paper?: 'a4' | 'letter' | 'ticket';
    orientation?: 'portrait' | 'landscape';
    fontSize?: {
        title?: number;
        subtitle?: number;
        normal?: number;
        small?: number;
    };
    color?: {
        primary?: string;
        secondary?: string;
        text?: string;
    };
    margins?: {
        top?: number;
        right?: number;
        bottom?: number;
        left?: number;
    };
    qrCode?: boolean;
    footer?: {
        text?: string;
        includePageNumber?: boolean;
    };
}
export interface PDFResult {
    success: boolean;
    path?: string;
    buffer?: Buffer;
    error?: string;
}
/**
 * Clase para generar representaciones imprimibles (PDF)
 */
export declare class PDFGenerator {
    private options;
    private twig;
    constructor(options?: PDFOptions);
    /**
     * Genera un PDF a partir de los datos de un documento electrónico
     * @param data Datos del documento electrónico
     * @param templateType Tipo de plantilla a utilizar
     * @returns Resultado de la generación del PDF
     */
    generate(data: any, templateType?: string): Promise<PDFResult>;
    /**
     * Renderiza una plantilla Twig con los datos proporcionados
     * @param template Contenido de la plantilla
     * @param data Datos para la plantilla
     * @returns HTML renderizado
     */
    private renderTemplate;
    /**
     * Convierte HTML a PDF
     * @param html Contenido HTML
     * @param data Datos del documento
     * @returns Resultado de la generación del PDF
     */
    private htmlToPdf;
}
/**
 * Genera un PDF a partir de los datos de un documento electrónico
 * @param data Datos del documento electrónico
 * @param options Opciones de generación del PDF
 * @param templateType Tipo de plantilla a utilizar
 * @returns Resultado de la generación del PDF
 */
export declare function generatePdf(data: any, options?: PDFOptions, templateType?: string): Promise<PDFResult>;
export { templates, getTemplateByDocumentType };
