export interface RetryOptions { maxRetries?: number; baseDelay?: number; maxDelay?: number; backoffMultiplier?: number; jitter?: boolean; retryableErrors?: string[]; onRetry?: (attempt: number, error: Error) => void; } export interface RetryResult { result: T; attempts: number; totalDelay: number; } export declare class RetryHandler { static withRetry(operation: () => Promise, options?: RetryOptions): Promise>; static withExponentialBackoff(operation: () => Promise, options?: RetryOptions): Promise; static withLinearBackoff(operation: () => Promise, options?: RetryOptions): Promise; private static shouldRetry; private static calculateDelay; private static sleep; static wrap Promise>(fn: T, options?: RetryOptions): T; } export interface CircuitBreakerOptions { failureThreshold?: number; recoveryDelay?: number; monitoringPeriod?: number; onStateChange?: (state: 'CLOSED' | 'OPEN' | 'HALF_OPEN') => void; } export declare class CircuitBreaker { private options; private state; private failureCount; private lastFailureTime; private successCount; constructor(options?: CircuitBreakerOptions); execute(operation: () => Promise): Promise; private onSuccess; private onFailure; private setState; getState(): 'CLOSED' | 'OPEN' | 'HALF_OPEN'; getFailureCount(): number; getSuccessCount(): number; reset(): void; } export declare class Bulkhead { private maxConcurrency; private running; private queue; constructor(maxConcurrency: number); execute(operation: () => Promise): Promise; private process; getRunningCount(): number; getQueueLength(): number; } //# sourceMappingURL=retry.d.ts.map