export interface RetryOptions { maxRetries: number; baseDelay: number; maxDelay: number; backoffMultiplier: number; jitter: boolean; retryCondition?: (error: Error) => boolean; onRetry?: (error: Error, attempt: number) => void; } export interface CircuitBreakerOptions { failureThreshold: number; resetTimeout: number; monitoringPeriod: number; } export declare class RetryUtility { private static readonly DEFAULT_OPTIONS; static withRetry(fn: () => Promise, options?: Partial): Promise; private static calculateDelay; private static delay; static createRetryFunction(options?: Partial): (fn: () => Promise) => Promise; static retryOnCondition(fn: () => Promise, condition: (error: Error) => boolean, maxRetries?: number): Promise; static retryWithCustomDelay(fn: () => Promise, delayCalculator: (attempt: number) => number, maxRetries?: number): Promise; } export declare class CircuitBreaker { private options; private state; private failureCount; private lastFailureTime; private successCount; constructor(options: CircuitBreakerOptions); execute(fn: () => Promise): Promise; private onSuccess; private onFailure; getState(): 'CLOSED' | 'OPEN' | 'HALF_OPEN'; getStats(): { state: string; failureCount: number; successCount: number; lastFailureTime: number; }; reset(): void; } export declare class Bulkhead { private maxConcurrency; private activeRequests; private readonly queue; constructor(maxConcurrency: number); execute(fn: () => Promise): Promise; private executeImmediately; private processQueue; getStats(): { activeRequests: number; queuedRequests: number; maxConcurrency: number; }; } //# sourceMappingURL=retry-utility.d.ts.map