import { Config, Effect, Schema } from "effect"; export type CircuitState = "closed" | "open" | "half-open"; export type CircuitBreakerConfig = { failureThreshold?: number; resetTimeout?: number; successThreshold?: number; }; export declare const CircuitBreakerConfigFromEnv: Config.Config<{ failureThreshold: number; resetTimeout: number; successThreshold: number; }>; declare const CircuitOpenError_base: Schema.TaggedErrorClass; } & { message: typeof Schema.String; openedAt: typeof Schema.Number; }>; export declare class CircuitOpenError extends CircuitOpenError_base { } export type CircuitBreaker = { readonly execute: (effect: Effect.Effect) => Effect.Effect; readonly getState: Effect.Effect; readonly reset: Effect.Effect; }; export declare const makeCircuitBreaker: (config?: CircuitBreakerConfig) => Effect.Effect; export {}; //# sourceMappingURL=circuit-breaker.d.ts.map