export type SemaphoreReleaser = () => void; export type SemaphoreObject = { acquire(quantity?: number): Promise; tryAcquire(quantity?: number, timeout?: number): Promise; waiting: number; }; export declare function Semaphore(limit: number): SemaphoreObject;