declare class Info {
    count: number;
    constructor(num: number);
}
export declare class AsyncRetryable {
    protected config: Polly;
    constructor(polly: Polly);
    forever(): AsyncRetryable;
    executeForPromise<T>(fn: (info: Info) => Promise<T>): Promise<T>;
}
export declare class Retryable extends AsyncRetryable {
    constructor(polly: Polly);
    execute(fn: (info: Info) => any): any;
}
export default class Polly {
    handleFn: (err: any) => boolean;
    numRetries: number;
    delays: number[];
    isForever: boolean;
    handle(fn: (err: any) => boolean): Polly;
    retry(numRetries: number): Retryable;
    forever(): Polly;
    waitAndRetry(delays: number | number[]): AsyncRetryable;
    private static getDelays;
}
export {};
