type RetryDelayFunction = (iteration: number) => number; type RetryTimeoutFunction = (callable: () => void, delayMs: number) => any; type CancelTimeoutFunction = (timeoutRef: any) => void; export declare enum RetryFailReason { MaxRetries = 0 } export default class Retry { private callable; private delayFunction; private maxDelayMs; private maxRetries; private timeoutFunction; private cancelTimeoutFunction; static linearDelay(baseDelayMs: number, baseIncrementMs?: number): RetryDelayFunction; static fibonacciDelay(baseDelayMs: number): RetryDelayFunction; static exponentialDelay(baseDelayMs: number, factor?: number): RetryDelayFunction; private awaitingTimeout; private timeoutRef; private iteration; private reject; constructor(callable: (iteration: number) => void, delayFunction: RetryDelayFunction, maxDelayMs?: number, maxRetries?: number, timeoutFunction?: RetryTimeoutFunction, cancelTimeoutFunction?: CancelTimeoutFunction); cancel(): boolean; retry(): Retry; catch(reject: (reason: RetryFailReason) => void): Retry; } export {};