export declare enum CircuitState { CLOSED = "CLOSED", OPEN = "OPEN", HALF_OPEN = "HALF_OPEN" } export interface CircuitBreakerConfig { failureThreshold: number; successThreshold: number; timeout: number; operationTimeout: number; monitoringWindow: number; } export interface CircuitBreakerStats { state: CircuitState; failures: number; successes: number; totalRequests: number; lastFailureTime?: number; lastSuccessTime?: number; nextAttemptTime?: number; failureRate: number; } export interface OperationResult { success: boolean; result?: T; error?: Error; usedFallback: boolean; circuitState: CircuitState; executionTime: number; } export declare class OperationCircuitBreaker { private name; private config; private static circuits; private static readonly DEFAULT_CONFIG; private state; private failures; private successes; private lastFailureTime?; private lastSuccessTime?; private nextAttemptTime?; private recentOperations; constructor(name: string, config?: CircuitBreakerConfig); static getCircuit(name: string, config?: Partial): OperationCircuitBreaker; static safeExecute(operationName: string, operation: () => Promise, fallback: T | (() => T | Promise), config?: Partial): Promise>; execute(operation: () => Promise, fallback: T | (() => T | Promise)): Promise>; private shouldAllowOperation; private executeWithTimeout; private executeFallback; private recordSuccess; private recordFailure; private addToRecentOperations; private calculateFailureRate; getStats(): CircuitBreakerStats; reset(): void; forceState(state: CircuitState): void; static getAllStats(): Record; static resetAll(): void; static removeCircuit(name: string): boolean; } //# sourceMappingURL=operation-circuit-breaker.d.ts.map