//#region src/utils/async_caller.d.ts type ResponseCallback = (response?: Response) => Promise; interface AsyncCallerParams { /** * The maximum number of concurrent calls that can be made. * Defaults to `Infinity`, which means no limit. */ maxConcurrency?: number; /** * The maximum number of retries that can be made for a single call, * with an exponential backoff between each attempt. Defaults to 6. */ maxRetries?: number; onFailedResponseHook?: ResponseCallback; /** * Specify a custom fetch implementation. * * By default we expect the `fetch` is available in the global scope. */ fetch?: typeof fetch | ((...args: any[]) => any); } interface AsyncCallerCallOptions { signal?: AbortSignal; } /** * A class that can be used to make async calls with concurrency and retry logic. * * This is useful for making calls to any kind of "expensive" external resource, * be it because it's rate-limited, subject to network issues, etc. * * Concurrent calls are limited by the `maxConcurrency` parameter, which defaults * to `Infinity`. This means that by default, all calls will be made in parallel. * * Retries are limited by the `maxRetries` parameter, which defaults to 5. This * means that by default, each call will be retried up to 5 times, with an * exponential backoff between each attempt. */ declare class AsyncCaller { protected maxConcurrency: AsyncCallerParams["maxConcurrency"]; protected maxRetries: AsyncCallerParams["maxRetries"]; private queue; private onFailedResponseHook?; private customFetch?; constructor(params: AsyncCallerParams); call Promise>(callable: T, ...args: Parameters): Promise>>; callWithOptions Promise>(options: AsyncCallerCallOptions, callable: T, ...args: Parameters): Promise>>; fetch(...args: Parameters): ReturnType; } //#endregion export { AsyncCaller, AsyncCallerParams }; //# sourceMappingURL=async_caller.d.ts.map