/**
 * Circuit Breaker implementation for fault tolerance
 */
import { CircuitBreakerOptions, CircuitBreakerStats, CircuitState, ICircuitBreaker, ICircuitBreakerEventEmitter } from './types.js';
export declare class CircuitBreaker<T = any> implements ICircuitBreaker<T> {
    private state;
    private readonly options;
    private readonly eventEmitter;
    private readonly rollingWindow;
    private nextAttempt;
    private consecutiveFailures;
    private consecutiveSuccesses;
    private lastFailureTime?;
    private lastSuccessTime?;
    private totalRequests;
    private totalFailures;
    private totalSuccesses;
    private totalRejections;
    constructor(options: CircuitBreakerOptions);
    execute<R>(fn: (...args: T[]) => Promise<R>, ...args: T[]): Promise<R>;
    getState(): CircuitState;
    getStats(): CircuitBreakerStats;
    open(): void;
    close(): void;
    reset(): void;
    isOpen(): boolean;
    getEventEmitter(): ICircuitBreakerEventEmitter;
    healthCheck(): Promise<CircuitBreakerStats>;
    private executeWithTimeout;
    private handleSuccess;
    private handleFailure;
    private handleRejection;
    private checkThresholds;
    private transitionTo;
    private emitEvent;
    private mergeWithDefaults;
}
/**
 * Factory function to create a circuit breaker
 */
export declare function createCircuitBreaker<T = any>(options: CircuitBreakerOptions): ICircuitBreaker<T>;
/**
 * Wrapper function to wrap any async function with a circuit breaker
 */
export declare function withCircuitBreaker<T extends (...args: any[]) => Promise<any>>(fn: T, options?: Partial<CircuitBreakerOptions>): T;
//# sourceMappingURL=circuit-breaker.d.ts.map