import { RetryErrorProcessor } from './RetryErrorProcessor';
export interface RetryOptionsBase<ThrowOnElement extends string> {
    intervalFunc?: {
        (i: number): Promise<void>;
    };
    throwOn?: ThrowOnElement[];
    errorFunc?: RetryErrorProcessor;
}
export interface RetryUntilTimeoutOptionsMain {
    timeout?: number;
    interval?: number;
}
export interface RetryUntilTimeoutOptions extends RetryUntilTimeoutOptionsMain, RetryOptionsBase<'catch' | 'timeout'> {
}
export declare const isRetryUntilTimeoutOptions: (x?: RetryOptions) => x is RetryUntilTimeoutOptions;
export interface RetryAttemptOptionsMain {
    maxAttempts?: number;
    interval?: number;
}
export interface RetryAttemptOptions extends RetryAttemptOptionsMain, RetryOptionsBase<'catch' | 'exceeded'> {
}
export declare const isRetryAttemptOptions: (x?: RetryOptions) => x is RetryAttemptOptions;
export type RetryOptions = RetryUntilTimeoutOptions | RetryAttemptOptions;
//# sourceMappingURL=retryOptions.d.ts.map