/**
 * Infrastructure: Circuit Breaker Implementation
 */
import { ICircuitBreaker, CircuitBreakerState } from '../../domain/interfaces/ICircuitBreaker';
export interface CircuitBreakerConfig {
    readonly enabled: boolean;
    readonly failureThreshold: number;
    readonly resetTimeout: number;
    readonly halfOpenRequests: number;
}
export declare class CircuitBreaker implements ICircuitBreaker {
    private readonly config;
    private state;
    private failures;
    private successCount;
    private lastFailure?;
    private nextAttempt?;
    constructor(config: CircuitBreakerConfig);
    execute<T>(operation: () => Promise<T>): Promise<T>;
    recordSuccess(): void;
    recordFailure(): void;
    getState(): CircuitBreakerState;
    reset(): void;
    private isOpen;
}
//# sourceMappingURL=CircuitBreaker.d.ts.map