interface AsyncRetryOptions<T> {
    asyncCallable: () => Promise<T>;
    maxRetries?: number;
    delayFn?: () => number;
    validator?: (promiseResult: T) => void | never;
    expectedErrorHandler?: (error: any) => boolean;
}
interface DelayOptions {
    initialDelay?: number;
    variation?: number;
    delayLimit?: number;
}
export declare const increasingDelay: ({ delayLimit: upperDelayLimit, initialDelay, variation, }: DelayOptions) => () => number;
export declare const decreasingDelay: ({ delayLimit: bottomDelayLimit, initialDelay, variation, }: DelayOptions) => () => number;
export declare const constDelay: ({ initialDelay, }: Pick<DelayOptions, "initialDelay">) => () => number;
export declare const asyncRetry: <T>({ asyncCallable, maxRetries: retries, delayFn, validator, expectedErrorHandler, }: AsyncRetryOptions<T>) => Promise<T>;
export {};
//# sourceMappingURL=asyncRetry.d.ts.map