/**
 * Retry strategies for different scenarios
 */
import type { ApiError, RetryConfig } from '../types';
/**
 * Exponential backoff strategy
 */
export declare function exponentialBackoff(baseDelay?: number, maxDelay?: number, multiplier?: number): (retryCount: number) => number;
/**
 * Linear backoff strategy
 */
export declare function linearBackoff(baseDelay?: number, increment?: number): (retryCount: number) => number;
/**
 * Fixed delay strategy
 */
export declare function fixedDelay(delay?: number): (retryCount: number) => number;
/**
 * Jittered exponential backoff to avoid thundering herd
 */
export declare function jitteredExponentialBackoff(baseDelay?: number, maxDelay?: number, jitterFactor?: number): (retryCount: number) => number;
/**
 * Retry condition for network errors only
 */
export declare function networkErrorsOnly(error: ApiError): boolean;
/**
 * Retry condition for server errors only
 */
export declare function serverErrorsOnly(error: ApiError): boolean;
/**
 * Retry condition for specific status codes
 */
export declare function statusCodesOnly(codes: number[]): (error: ApiError) => boolean;
/**
 * Retry condition for timeout errors
 */
export declare function timeoutErrorsOnly(error: ApiError): boolean;
/**
 * Retry condition that respects Retry-After headers
 */
export declare function respectRetryAfter(error: ApiError): boolean;
/**
 * Comprehensive retry condition for production use
 */
export declare function productionRetryCondition(error: ApiError): boolean;
/**
 * Conservative retry condition for critical operations
 */
export declare function conservativeRetryCondition(error: ApiError): boolean;
/**
 * Aggressive retry condition for non-critical operations
 */
export declare function aggressiveRetryCondition(error: ApiError): boolean;
/**
 * Creates a retry strategy that respects Retry-After headers
 */
export declare function createRetryAfterStrategy(): RetryConfig;
/**
 * Creates a retry strategy for API rate limiting
 */
export declare function createRateLimitStrategy(): RetryConfig;
/**
 * Creates a retry strategy for unreliable networks
 */
export declare function createUnreliableNetworkStrategy(): RetryConfig;
/**
 * Creates a retry strategy for critical operations
 */
export declare function createCriticalOperationStrategy(): RetryConfig;
/**
 * Creates a retry strategy for background operations
 */
export declare function createBackgroundOperationStrategy(): RetryConfig;
//# sourceMappingURL=retry-strategies.d.ts.map