/**
 * Microservizio per sostituire URLs nei dati JSON
 */
export interface UrlMapping {
    originalUrl: string;
    newUrl: string;
    cdnUrl?: string;
    path: string;
    fieldName: string;
    itemIndex?: number;
    replacementType: 'direct' | 'variant' | 'fallback';
}
export interface ReplacementResult {
    success: boolean;
    replacedCount: number;
    failedCount: number;
    mappings: UrlMapping[];
    modifiedData: any;
    errors: string[];
}
export interface ReplacementOptions {
    preferCdnUrls?: boolean;
    preserveOriginalOnFailure?: boolean;
    validateUrls?: boolean;
    backupOriginal?: boolean;
    logReplacements?: boolean;
}
export declare class UrlReplacer {
    private static readonly URL_VALIDATION_TIMEOUT;
    /**
     * Sostituisce URLs Picsum con nuovi URLs nei dati JSON
     */
    static replaceUrls(data: any, urlMappings: Map<string, string>, cdnMappings?: Map<string, string>, options?: ReplacementOptions): Promise<ReplacementResult>;
    /**
     * Crea mappature URL da risultati di elaborazione immagini
     */
    static createUrlMappings(imageResults: Array<{
        originalUrl: string;
        newUrl: string;
        cdnUrl?: string;
        path: string;
        success: boolean;
    }>): {
        urlMappings: Map<string, string>;
        cdnMappings: Map<string, string>;
        failedUrls: string[];
    };
    /**
     * Esegue le sostituzioni ricorsivamente
     */
    private static performReplacements;
    /**
     * Sostituisce un singolo URL
     */
    private static replaceUrl;
    /**
     * Cerca mappatura per varianti (stesso contenuto, dimensioni diverse)
     */
    private static findVariantMapping;
    /**
     * Genera URL di fallback per casi non mappati
     */
    private static generateFallbackUrl;
    /**
     * Valida URLs dopo la sostituzione
     */
    private static validateReplacementUrls;
    /**
     * Verifica se una stringa è un URL Picsum
     */
    private static isPicsumUrl;
    /**
     * Normalizza URL per il confronto
     */
    private static normalizeUrl;
    /**
     * Estrae seed da URL Picsum
     */
    private static extractSeed;
    /**
     * Estrae dimensioni da URL Picsum
     */
    private static extractDimensions;
    /**
     * Clona profondamente un oggetto
     */
    private static deepClone;
    /**
     * Normalizza opzioni con valori di default
     */
    private static normalizeOptions;
    /**
     * Log dei risultati di sostituzione
     */
    private static logReplacementResults;
    /**
     * Crea statistiche di sostituzione
     */
    static getReplacementStats(result: ReplacementResult): {
        summary: string;
        successRate: number;
        typeDistribution: Record<string, number>;
        avgUrlLength: number;
    };
    /**
     * Rollback delle sostituzioni (usa backup)
     */
    static rollbackReplacements(originalData: any, result: ReplacementResult): any;
    /**
     * Imposta valore a un percorso specifico
     */
    private static setValueAtPath;
}
//# sourceMappingURL=url-replacer.d.ts.map