import { RetryOptionsBase, RetryUntilTimeoutOptions, RetryAttemptOptions } from './retryOptions';
declare class RetryOptionsDefaultBase<ThrowOnElement extends string> {
    private readonly base;
    constructor(base: Required<RetryOptionsBase<ThrowOnElement>>);
    asObject(): Required<RetryOptionsBase<ThrowOnElement>>;
}
export declare class RetryUntilTimeoutOptionsDefault extends RetryOptionsDefaultBase<'catch' | 'timeout'> {
    private readonly timeoutFn;
    private readonly intervalFn;
    constructor(timeoutFn: {
        (): number;
    }, intervalFn: {
        (): number;
    }, base: Omit<Required<RetryUntilTimeoutOptions>, 'timeout' | 'interval'>);
    asObject(): Required<RetryUntilTimeoutOptions>;
}
export declare class RetryAttemptOptionsDefault extends RetryOptionsDefaultBase<'catch' | 'exceeded'> {
    private readonly maxAttemptsFn;
    private readonly intervalFn;
    constructor(maxAttemptsFn: {
        (): number;
    }, intervalFn: {
        (): number;
    }, base: Omit<Required<RetryAttemptOptions>, 'maxAttempts' | 'interval'>);
    asObject(): Required<RetryAttemptOptions>;
}
export {};
//# sourceMappingURL=retryOptionsDefault.d.ts.map