/**
 * XMLBuilder - Clase para construir documentos XML a partir de plantillas y datos
 */
import { SignOptions } from '../core';
/**
 * Clase para construir documentos XML a partir de plantillas y datos
 */
export declare class XMLBuilder {
    /**
     * Construye una factura o boleta
     * @param invoice Datos de la factura o boleta
     * @param template Plantilla UBL 2.1
     * @param options Opciones adicionales
     * @returns Documento XML de la factura o boleta
     */
    buildInvoice(invoice: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye una nota de crédito
     * @param creditNote Datos de la nota de crédito
     * @param template Plantilla UBL 2.1
     * @param options Opciones adicionales
     * @returns Documento XML de la nota de crédito
     */
    buildCreditNote(creditNote: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye una nota de débito
     * @param debitNote Datos de la nota de débito
     * @param template Plantilla UBL 2.1
     * @param options Opciones adicionales
     * @returns Documento XML de la nota de débito
     */
    buildDebitNote(debitNote: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye un resumen diario
     * @param summary Datos del resumen diario
     * @param template Plantilla del resumen diario
     * @param options Opciones adicionales
     * @returns Documento XML del resumen diario
     */
    buildSummary(summary: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye una comunicación de baja
     * @param voided Datos de la comunicación de baja
     * @param template Plantilla de la comunicación de baja
     * @param options Opciones adicionales
     * @returns Documento XML de la comunicación de baja
     */
    buildVoidedDocuments(voided: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye una guía de remisión
     * @param dispatch Datos de la guía de remisión
     * @param templates Plantillas disponibles
     * @param options Opciones adicionales
     * @returns Documento XML de la guía de remisión
     */
    buildDispatch(dispatch: any, templates: {
        standard: string;
        '2022': string;
    }, options?: {
        version?: 'standard' | '2022';
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye un comprobante de retención
     * @param retention Datos del comprobante de retención
     * @param template Plantilla del comprobante de retención
     * @param options Opciones adicionales
     * @returns Documento XML del comprobante de retención
     */
    buildRetention(retention: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
    /**
     * Construye un comprobante de percepción
     * @param perception Datos del comprobante de percepción
     * @param template Plantilla del comprobante de percepción
     * @param options Opciones adicionales
     * @returns Documento XML del comprobante de percepción
     */
    buildPerception(perception: any, template: string, options?: {
        signOptions?: SignOptions;
    }): string;
}
