export interface RetryContext {
    request: Request;
    response: Response;
    attempts: number;
    cumulativeWaitMs: number;
}
export interface RetryInstruction {
    retry: boolean;
    delayMs: number;
}
export interface RetryPolicy {
    shouldRetry(context: RetryContext): Promise<RetryInstruction>;
}
export declare class DefaultRetryPolicy implements RetryPolicy {
    readonly maxAttempts: number;
    readonly maxCumulativeWaitTimeMs: number;
    readonly defaultRetryDelayMs: number;
    constructor(maxAttempts?: number, maxCumulativeWaitTimeMs?: number, defaultRetryDelayMs?: number);
    shouldRetry(context: RetryContext): Promise<RetryInstruction>;
}
export declare const defaultRetryPolicy: RetryPolicy;
