/// import bluebird = require("bluebird"); import { EventEmitter } from "events"; export default class Semaphore extends EventEmitter { count: number; max: number | null; timeout: number; private _zeroPromiseResolver; private _resolvers; constructor(options?: { max?: number; timeout?: number; }); withLock(coroutine: any): any; wrap(promise: Promise): Promise; increment(): bluebird; decrement(): void; take(): bluebird; release(): void; setMax(max: any): void; getCount(): number; getRequestedCount(): number; waitForZero(): any; }