/** Result of an acquire attempt, with the queue depth it observed. */ export interface SemaphoreAcquireReport { acquired: boolean; /** * For a timed-out waiter, queue depth at the moment it settled, including * that waiter. Other reports count waiters that remain queued. * A timed-out waiter leaves the queue before its caller resumes, so reading * {@link Semaphore.waiting} afterwards understates the depth it observed. */ waiting: number; } export declare class Semaphore { private permits; private readonly maxQueueSize; private waitQueue; constructor(permits: number, options?: { maxQueueSize?: number; }); tryAcquire(timeoutMs?: number, options?: { signal?: AbortSignal; }): Promise; /** * Acquire a permit and report the queue depth the attempt observed. Use this * instead of {@link tryAcquire} when a failure needs an accurate diagnostic. */ tryAcquireWithReport(timeoutMs?: number, options?: { signal?: AbortSignal; }): Promise; release(): void; get available(): number; get waiting(): number; } //# sourceMappingURL=semaphore.d.ts.map