declare function throat) => Promise>(size: number, fn: TFn): TFn; declare function throat) => Promise>(fn: TFn, size: number): TFn; declare function throat(size: number): (fn: () => Promise) => Promise; export = throat;