@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
18 lines (17 loc) • 1.05 kB
TypeScript
/**
* @module CircuitBreaker
*/
import { type ICircuitBreakerStorageAdapter, type CircuitBreakerStateTransition } from "../../../../circuit-breaker/contracts/_module.js";
import { type AllCircuitBreakerState, 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 CircuitBreakerStorage<TMetrics = unknown> {
private readonly adapter;
private readonly circuitBreakerPolicy;
constructor(adapter: ICircuitBreakerStorageAdapter<AllCircuitBreakerState<TMetrics>>, circuitBreakerPolicy: CircuitBreakerPolicy<TMetrics>);
atomicUpdate(key: string, update: DatabaseCircuitBreakerUpdateStateFn<TMetrics>): Promise<CircuitBreakerStateTransition>;
find(key: string): Promise<AllCircuitBreakerState<TMetrics>>;
remove(key: string): Promise<void>;
}