/**
 * Retry backoff strategies
 */
import type { TBackoffStrategy } from '../webrequest.types.js';
export interface IBackoffCalculator {
    calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
 * Exponential backoff strategy
 * Delay increases exponentially: initialDelay * 2^attempt
 */
export declare class ExponentialBackoff implements IBackoffCalculator {
    calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
 * Linear backoff strategy
 * Delay increases linearly: initialDelay * attempt
 */
export declare class LinearBackoff implements IBackoffCalculator {
    calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
 * Constant backoff strategy
 * Delay stays constant: initialDelay
 */
export declare class ConstantBackoff implements IBackoffCalculator {
    calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
 * Get backoff calculator for a given strategy
 */
export declare function getBackoffCalculator(strategy: TBackoffStrategy): IBackoffCalculator;
/**
 * Add jitter to delay to prevent thundering herd
 */
export declare function addJitter(delay: number, jitterFactor?: number): number;
