export interface AttemptOptions {
    retries?: number;
    retryDelay?: number[];
    rethrow?: boolean;
    quiet?: boolean;
}
export interface AttemptResult<T = unknown> {
    result?: T;
    error?: any;
}
export declare function attempt<T = unknown>(onTry: () => Promise<T>, onBeforeRetry?: (err: unknown) => boolean, options?: AttemptOptions): Promise<AttemptResult<T>>;
