| 1234567891011121314151617181920212223242526272829303132 | /** * Throttle the given function to only run `size` times in parallel. * Extra calls will be queued until one of the earlier calls completes. */declare function throat<TResult, TArgs extends any[]>(  size: number,  fn: (...args: TArgs) => Promise<TResult>): (...args: TArgs) => Promise<TResult>;/** * Throttle the given function to only run `size` times in parallel. * Extra calls will be queued until one of the earlier calls completes. */declare function throat<TResult, TArgs extends any[]>(  fn: (...args: TArgs) => Promise<TResult>,  size: number): (...args: TArgs) => Promise<TResult>;/** * Create a throttle that only allows `size` calls in parallel. * Extra calls will be queued until one of the earlier calls completes. * * To create an exclusive lock, just use a `size` of `1`. */declare function throat(  size: number): <TResult, TArgs extends any[] = []>(  fn: (...args: TArgs) => Promise<TResult>,  ...args: TArgs) => Promise<TResult>;export default throat;
 |