/**
 * Módulo SUNAT - Comunicación con los servicios web de SUNAT
 *
 * Este módulo proporciona funcionalidades para la comunicación con los servicios web
 * de SUNAT para el envío de documentos electrónicos.
 */
import { NodeFactError } from '../core';
/**
 * Clase para errores de comunicación con SUNAT
 */
export declare class SunatError extends NodeFactError {
    constructor(message: string);
}
/**
 * Endpoints de los servicios web de SUNAT
 */
export declare enum SunatEndpoints {
    PRODUCCION_FACTURA = "https://e-factura.sunat.gob.pe/ol-ti-itcpfegem/billService",
    PRODUCCION_GUIA = "https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem/billService",
    PRODUCCION_RETENCION = "https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem/billService",
    BETA_FACTURA = "https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService",
    BETA_GUIA = "https://e-beta.sunat.gob.pe/ol-ti-itemision-guia-gem-beta/billService",
    BETA_RETENCION = "https://e-beta.sunat.gob.pe/ol-ti-itemision-otroscpe-gem-beta/billService",
    HOMOLOGACION_FACTURA = "https://e-factura.sunat.gob.pe/ol-ti-itcpfegem-sqa/billService",
    HOMOLOGACION_GUIA = "https://e-guiaremision.sunat.gob.pe/ol-ti-itemision-guia-gem-sqa/billService",
    HOMOLOGACION_RETENCION = "https://e-factura.sunat.gob.pe/ol-ti-itemision-otroscpe-gem-sqa/billService"
}
/**
 * Credenciales para la autenticación con SUNAT
 */
export interface SunatCredentials {
    ruc: string;
    usuario: string;
    clave: string;
}
/**
 * Opciones para el cliente SUNAT
 */
export interface SunatClientOptions {
    endpoint: SunatEndpoints;
    credentials: SunatCredentials;
    timeout?: number;
}
/**
 * Resultado de una operación con SUNAT
 */
export interface SunatResult {
    success: boolean;
    cdr?: string;
    ticket?: string;
    error?: string;
}
/**
 * Cliente para la comunicación con los servicios web de SUNAT
 */
export declare class SunatClient {
    private options;
    private client;
    constructor(options: SunatClientOptions);
    /**
     * Inicializa el cliente SOAP
     */
    private initClient;
    /**
     * Envía un documento a SUNAT
     * @param fileName Nombre del archivo ZIP
     * @param contentBase64 Contenido del archivo ZIP en base64
     * @returns Resultado de la operación
     */
    sendBill(fileName: string, contentBase64: string): Promise<SunatResult>;
    /**
     * Envía un resumen diario o comunicación de baja a SUNAT
     * @param fileName Nombre del archivo ZIP
     * @param contentBase64 Contenido del archivo ZIP en base64
     * @returns Resultado de la operación
     */
    sendSummary(fileName: string, contentBase64: string): Promise<SunatResult>;
    /**
     * Consulta el estado de un ticket
     * @param ticket Número de ticket
     * @returns Resultado de la operación
     */
    getStatus(ticket: string): Promise<SunatResult>;
}
/**
 * Crea un cliente para la comunicación con los servicios web de SUNAT
 * @param options Opciones para el cliente
 * @returns Cliente SUNAT
 */
export declare function createSunatClient(options: SunatClientOptions): SunatClient;
