import CircuitBreaker from 'opossum';
export interface CircuitBreakerOptions {
    timeout?: number;
    errorThresholdPercentage?: number;
    resetTimeout?: number;
    enabled?: boolean;
}
export declare function createCircuitBreaker<T extends any[], R>(fn: (...args: T) => Promise<R>, serviceName: string, options?: CircuitBreakerOptions): CircuitBreaker<T, R>;
export declare const openAICircuitBreaker: CircuitBreaker<T, R>;
export declare const anthropicCircuitBreaker: CircuitBreaker<T, R>;
export declare const httpCircuitBreaker: CircuitBreaker<T, R>;
export declare function executeWithCircuitBreaker<T>(breaker: CircuitBreaker<any[], T>, fn: () => Promise<T>): Promise<T>;
//# sourceMappingURL=circuit-breaker.d.ts.map