/**
 * @module CircuitBreaker
 */
import { type BackoffPolicy } from "../../../../backoff-policies/_module.js";
import { type CircuitBreakerPolicy } from "../../../../circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-policy.js";
import { type DatabaseCircuitBreakerUpdateStateFn } from "../../../../circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/types.js";
/**
 * @internal
 */
export declare class CircuitBreakerStateManager<TMetrics = unknown> {
    private readonly circuitBreakerPolicy;
    private readonly backoffPolicy;
    constructor(circuitBreakerPolicy: CircuitBreakerPolicy<TMetrics>, backoffPolicy: BackoffPolicy);
    updateState: DatabaseCircuitBreakerUpdateStateFn<TMetrics>;
    trackFailure: DatabaseCircuitBreakerUpdateStateFn<TMetrics>;
    trackSuccess: DatabaseCircuitBreakerUpdateStateFn<TMetrics>;
    isolate: DatabaseCircuitBreakerUpdateStateFn<TMetrics>;
}
