import type { DireccionType, Calle } from './types';
export interface NormalizadorAMBAOptions {
    debug?: boolean;
    exclude?: string;
    server?: string;
    maxSuggestions?: number;
    serverTimeout?: number;
    maxRetries?: number;
    afterAbort?: (error: Error) => void;
    afterRetry?: (attempt: number) => void;
    afterServerRequest?: (url: string) => void;
    afterServerResponse?: (response: any) => void;
}
export declare class NormalizadorAMBA {
    private static instance;
    private options;
    private lastRequest;
    private retryCount;
    private constructor();
    /**
     * Obtiene la instancia única del normalizador AMBA
     * @param options - Opciones de configuración
     * @returns Instancia del normalizador
     */
    static getInstance(options?: NormalizadorAMBAOptions): NormalizadorAMBA;
    /**
     * Inicializa el normalizador con las opciones especificadas
     * @param options - Opciones de configuración
     * @returns Instancia del normalizador
     */
    init(options?: NormalizadorAMBAOptions): NormalizadorAMBA;
    /**
     * Busca y normaliza una dirección de forma asíncrona
     * @param text - Texto a buscar
     * @param success - Callback de éxito
     * @param error - Callback de error
     * @param maxSug - Máximo número de sugerencias
     */
    buscar(text: string, success?: (results: Array<DireccionType | Calle>) => void, error?: (error: Error) => void, maxSug?: number): Promise<void>;
    /**
     * Realiza una petición al servidor
     * @param data - Datos de la petición
     * @returns Promise con la respuesta
     */
    private makeRequest;
    /**
     * Procesa los resultados de la búsqueda
     * @param results - Resultados de la búsqueda
     * @param maxSuggestions - Máximo número de sugerencias
     * @returns Array de direcciones o calles normalizadas
     */
    private processResults;
}
declare const _default: NormalizadorAMBA;
export default _default;
