/** * Agent Retry Policy - Configurable retry strategies with circuit breaker. * * Supports fixed, linear, and exponential backoff strategies. * Includes circuit breaker pattern to prevent cascading failures. */ export type RetryStrategy = 'fixed' | 'linear' | 'exponential'; export type RetryableError = 'timeout' | 'rate_limit' | 'server_error' | 'network_error' | 'unknown'; export interface CircuitBreakerConfig { /** Number of failures before opening circuit */ threshold: number; /** Time in ms before attempting reset */ reset_ms: number; } export interface RetryPolicyConfig { strategy: RetryStrategy; max_attempts: number; base_delay_ms: number; max_delay_ms: number; retry_on: RetryableError[]; jitter?: boolean; circuit_breaker?: CircuitBreakerConfig; } export declare const DEFAULT_RETRY_CONFIG: RetryPolicyConfig; export declare enum CircuitState { CLOSED = "closed", OPEN = "open", HALF_OPEN = "half_open" } export declare class CircuitBreaker { private state; private failureCount; private lastFailureTime; private threshold; private resetMs; constructor(config: CircuitBreakerConfig); getState(): CircuitState; canExecute(): boolean; recordSuccess(): void; recordFailure(): void; reset(): void; getFailureCount(): number; } export declare function calculateDelay(attempt: number, config: RetryPolicyConfig): number; export declare function classifyError(error: any): RetryableError; export declare function isRetryable(error: any, config: RetryPolicyConfig): boolean; export interface RetryResult { success: boolean; result?: T; error?: Error; attempts: number; totalDelay: number; errors: Array<{ attempt: number; error: any; delay: number; }>; } export declare class RetryPolicy { private config; private circuitBreaker?; constructor(config?: Partial); execute(fn: () => Promise): Promise>; getCircuitBreaker(): CircuitBreaker | undefined; getConfig(): RetryPolicyConfig; } export declare function parseRetryConfig(yamlConfig: Record): RetryPolicyConfig; //# sourceMappingURL=retry-policy.d.ts.map