/** * Sistema de recuperación automática para errores no críticos * Maneja fallos de manera inteligente con estrategias de recuperación */ import { DetailedError } from './error-handler'; export interface RecoveryStrategy { name: string; description: string; canRecover: (error: DetailedError) => boolean; recover: (error: DetailedError, context?: any) => Promise; maxAttempts: number; retryDelay: number; priority: number; } export interface RecoveryResult { success: boolean; message: string; data?: any; fallbackUsed?: boolean; nextStrategy?: string; shouldRetry?: boolean; retryAfter?: number; } export interface RecoveryAttempt { errorCode: string; strategy: string; attempt: number; timestamp: Date; success: boolean; duration: number; result?: RecoveryResult; } export declare class ErrorRecoveryEngine { private static strategies; private static recoveryHistory; private static readonly MAX_HISTORY; private static readonly MAX_CONCURRENT_RECOVERIES; private static activeRecoveries; private static initialized; private static ensureInitialized; /** * Intenta recuperarse de un error usando las estrategias disponibles */ static attemptRecovery(error: DetailedError, context?: any): Promise; /** * Ejecuta una estrategia de recuperación específica */ private static executeStrategy; /** * Determina si un error es recuperable */ private static isRecoverable; /** * Obtiene estrategias aplicables para un error */ private static getApplicableStrategies; /** * Registra un intento de recuperación */ private static recordAttempt; /** * Utilidad para esperar un tiempo determinado */ private static delay; /** * Inicializa las estrategias de recuperación por defecto */ private static initializeDefaultStrategies; /** * Registra una nueva estrategia de recuperación */ static registerStrategy(strategy: RecoveryStrategy): void; /** * Obtiene estadísticas de recuperación */ static getRecoveryStatistics(): { totalAttempts: number; successRate: number; strategiesUsed: Record; mostSuccessfulStrategy: string; averageRecoveryTime: number; }; /** * Obtiene el historial de recuperación filtrado */ static getRecoveryHistory(filter?: { errorCode?: string; strategy?: string; success?: boolean; limit?: number; }): RecoveryAttempt[]; /** * Limpia el historial de recuperación */ static clearHistory(): void; } //# sourceMappingURL=error-recovery.d.ts.map