export interface Limit { /** * @param fn - Promise-returning/async function. * @param arguments - Any arguments to pass through to `fn`. Support for passing arguments on to the `fn` is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a lot of functions. * @returns The promise returned by calling `fn(...arguments)`. */ ( fn: (...arguments: Arguments) => PromiseLike | ReturnType, ...arguments: Arguments ): Promise; /** * The number of promises that are currently running. */ readonly activeCount: number; /** * The number of promises that are waiting to run (i.e. their internal `fn` was not called yet). */ readonly pendingCount: number; } /** * Run multiple promise-returning & async functions with limited concurrency. * * @param concurrency - Concurrency limit. Minimum: `1`. * @returns A `limit` function. */ export default function pLimit(concurrency: number): Limit;