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;