export interface SemaphoreAwaiter { executor(): Promise | T; resolve(value: T): void; reject(error: Error): void; } export declare class Semaphore { #private; private readonly concurrency; private readonly delay; private readonly awaiters; private running; constructor(concurrency?: number, delay?: number); run(executor: () => Promise | T): Promise; }