//#region src/utils/retryManager.d.ts
type RetryManagerOptions = {
  /** maximum number of retries before giving up */maxRetry?: number; /** delay between attempts, in milliseconds */
  delay?: number; /** function to call when an error occurs */
  onError?: (details: {
    error: string;
    attempt: number;
    maxRetry: number;
  }) => void; /** function to call when the maximum number of retries is reached */
  onMaxTryReached?: (details: {
    error: string;
    attempt: number;
    maxRetry: number;
  }) => void;
};
/**
 * Wrap an async function `fn` so it’s retried on failure.
 *
 * @param fn       The async function to wrap
 * @param options  { maxRetry, delay }
 * @returns        A new function with the same signature as `fn`
 */
declare const retryManager: <Args extends any[], R>(fn: (...args: Args) => Promise<R>, {
  maxRetry,
  delay,
  onError,
  onMaxTryReached
}?: RetryManagerOptions) => ((...args: Args) => Promise<R>);
//#endregion
export { RetryManagerOptions, retryManager };
//# sourceMappingURL=retryManager.d.ts.map