declare type RetryType = {
    result?: any;
    error?: Error | undefined;
    success: boolean;
};
declare const retryAsync: <R>(task: (lastRetry: RetryType | undefined, index: number, retries: RetryType[]) => R | Promise<R>, maxRetry?: number, options?: {
    doEachFail?: ((error: Error, index: number, retries: RetryType[]) => void | Promise<void>) | undefined;
    delayExecutionMs?: number | undefined;
} | undefined) => Promise<R>;
declare const retrySync: <R>(task: (lastRetry: RetryType | undefined, index: number, retries: RetryType[]) => R, maxRetry?: number, options?: {
    doEachFail?: ((error: Error, index: number, retries: RetryType[]) => void | Promise<void>) | undefined;
} | undefined) => R;

export { retryAsync, retrySync };
