UNPKG

japanpost-api

Version:
59 lines 1.78 kB
/** * Retry configuration options */ export interface RetryOptions { /** Maximum number of retries (default: 3) */ maxRetries?: number; /** Base delay time in milliseconds (default: 1000) */ baseDelay?: number; /** Exponential backoff multiplier (default: 2) */ backoffMultiplier?: number; /** Maximum delay time in milliseconds (default: 30000) */ maxDelay?: number; /** Maximum jitter (random element) in milliseconds (default: 1000) */ jitter?: number; /** Error types to retry */ retryableErrors?: Array<new (...args: any[]) => Error>; } /** * Function that executes retry with exponential backoff */ export declare function withRetry<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T>; /** * Circuit breaker state */ export declare enum CircuitBreakerState { CLOSED = "CLOSED", OPEN = "OPEN", HALF_OPEN = "HALF_OPEN" } /** * Circuit breaker configuration */ export interface CircuitBreakerOptions { /** Failure threshold (circuit opens after this many failures) */ failureThreshold?: number; /** Reset timeout in milliseconds */ resetTimeout?: number; /** Monitoring period in milliseconds */ monitoringPeriod?: number; } /** * Basic circuit breaker implementation * Protects the system from cascading failures */ export declare class CircuitBreaker { private state; private failureCount; private lastFailureTime; private readonly options; constructor(options?: CircuitBreakerOptions); execute<T>(operation: () => Promise<T>): Promise<T>; private shouldAttemptReset; private onSuccess; private onFailure; getState(): CircuitBreakerState; getFailureCount(): number; reset(): void; } //# sourceMappingURL=retry.d.ts.map