export type RetryOptions = { maxRetries: number; baseDelay: number; maxDelay: number; backoffMultiplier: number; retryableStatusCodes: number[]; enableJitter: boolean; }; /** * Base retryable status codes for most requests */ export declare const DEFAULT_RETRYABLE_STATUS_CODES: number[]; export declare const DEFAULT_RETRY_OPTIONS: RetryOptions; /** * Returns true for transient transport-level failures (connection resets, * DNS hiccups, socket timeouts, etc.). Mirrors the Python client's behavior * of retrying `httpx.TransportError` and `httpx.TimeoutException`. */ export declare function isRetryableNetworkError(error: unknown): boolean; /** * Determines if an error is retryable based on the status code or, for * non-HTTP failures, on the underlying transport error. User-specified * timeouts (504 with X-Fal-Request-Timeout-Type: user) are NOT retryable. */ export declare function isRetryableError(error: any, retryableStatusCodes: number[]): boolean; /** * Calculates the backoff delay for a given attempt using exponential backoff */ export declare function calculateBackoffDelay(attempt: number, baseDelay: number, maxDelay: number, backoffMultiplier: number, enableJitter: boolean): number; /** * Retry metrics for tracking retry attempts */ export interface RetryMetrics { totalAttempts: number; totalDelay: number; lastError?: any; } /** * Executes an operation with retry logic and returns both result and metrics */ export declare function executeWithRetry(operation: () => Promise, options: RetryOptions, onRetry?: (attempt: number, error: any, delay: number) => void): Promise<{ result: T; metrics: RetryMetrics; }>;