import { EventEmitter } from 'events'; import { Logger } from 'pino'; import { EnhancedAppError } from './enhanced-app-error.js'; import { ErrorTracker } from './error-tracking.js'; import { RetryManager, RecoveryContext } from './retry-manager.js'; import { RecoveryStrategy, RecoveryResult } from './recovery-strategies.js'; import { CircuitState } from './circuit-breaker.js'; export type { RecoveryStrategy, RecoveryResult } from './recovery-strategies.js'; export type { RecoveryContext, RetryState } from './retry-manager.js'; export type { CircuitBreakerConfig } from './circuit-breaker.js'; export { CircuitBreaker, CircuitState } from './circuit-breaker.js'; export { RetryManager } from './retry-manager.js'; export * from './recovery-strategies.js'; export declare enum RecoveryEvent { RECOVERY_STARTED = "recovery_started", RECOVERY_ATTEMPT = "recovery_attempt", RECOVERY_SUCCESS = "recovery_success", RECOVERY_FAILED = "recovery_failed", RETRY_STARTED = "retry_started", RETRY_ATTEMPT = "retry_attempt", RETRY_SUCCESS = "retry_success", RETRY_FAILED = "retry_failed" } export declare class ErrorRecoveryManager extends EventEmitter { private strategies; private retryManager; private logger; private errorTracker?; constructor(logger: Logger, errorTracker?: ErrorTracker); registerStrategy(strategy: RecoveryStrategy): void; recover(error: EnhancedAppError, context?: RecoveryContext): Promise; executeWithRecovery(operation: () => Promise, context?: RecoveryContext): Promise; getRetryManager(): RetryManager; resetCircuitBreaker(key: string): void; getCircuitBreakerState(key: string): CircuitState | null; private logRecoveryStart; private findApplicableStrategies; private handleNoStrategiesAvailable; private tryStrategies; private tryStrategy; private logStrategySuccess; private logStrategyFailure; private logStrategyError; private handleAllStrategiesFailed; private handleOperationError; private tryRetry; private generateCircuitBreakerKey; } export declare let defaultRecoveryManager: ErrorRecoveryManager | null; export declare function initializeRecoveryManager(logger: Logger, errorTracker?: ErrorTracker): ErrorRecoveryManager; export declare function getRecoveryManager(): ErrorRecoveryManager; //# sourceMappingURL=error-recovery.d.ts.map