export interface RetryOptions {
    maxRetries: number;
    baseDelay: number;
    maxDelay: number;
    exponential?: boolean;
    onRetry?: (attempt: number, error: Error) => void;
}
export interface RetryStrategy {
    shouldRetry: (error: Error, attempt: number) => boolean;
    getDelay: (attempt: number) => number;
}
export declare class RetryHandler {
    private options;
    private strategy;
    constructor(options: RetryOptions);
    execute<T>(fn: () => Promise<T>): Promise<T>;
    setStrategy(strategy: Partial<RetryStrategy>): void;
    private defaultShouldRetry;
    private defaultGetDelay;
    private delay;
}
