import { Logger } from 'pino'; import { RetryConfig } from './error-context.js'; import { CircuitState } from './circuit-breaker.js'; export interface RetryState { attempt: number; startTime: number; lastAttemptTime: number; errors: Error[]; totalDelay: number; config: RetryConfig; } export interface RecoveryContext { requestId?: string; userId?: string; sessionId?: string; operation?: string; resource?: string; originalArgs?: unknown[]; metadata?: Record; } export declare class RetryManager { private logger; private circuitBreakers; constructor(logger: Logger); executeWithRetry(operation: () => Promise, config: RetryConfig, context?: RecoveryContext, circuitBreakerKey?: string): Promise; private initializeRetryState; private checkCircuitBreaker; private executeOperation; private handleSuccess; private handleFailure; private delayBeforeRetry; private getCircuitBreaker; private calculateDelay; private sleep; resetCircuitBreaker(key: string): void; getCircuitBreakerState(key: string): CircuitState | null; } //# sourceMappingURL=retry-manager.d.ts.map