/** * 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;