/**
 * Circuit Breaker Pattern Implementation
 * Provides fault tolerance and resilience for external service calls
 */
export type CircuitBreakerState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
export interface CircuitBreakerConfig {
    failureThreshold: number;
    resetTimeout: number;
    monitor?: (state: CircuitBreakerState) => void;
}
export declare class CircuitBreaker {
    private state;
    private failureCount;
    private lastFailureTime;
    private config;
    constructor(config: CircuitBreakerConfig);
    execute<T>(operation: () => Promise<T>): Promise<T>;
    private onSuccess;
    private onFailure;
    private shouldAttemptReset;
    private notifyStateChange;
    getState(): CircuitBreakerState;
    getFailureCount(): number;
}
export declare const circuitBreaker: CircuitBreaker;
//# sourceMappingURL=circuit-breaker.d.ts.map