/** * Async counting semaphore with FIFO fairness for global concurrency control. * * Module-level singleton shared across all groups. * Supports AbortSignal for timeout/shutdown cancellation. */ export declare class AsyncSemaphore { private permits; readonly maxPermits: number; private readonly queue; private disposed; constructor(maxPermits?: number); /** * Acquire a permit. Resolves immediately if available, * otherwise FIFO-queues until a permit is released. * * Rejects if: * - The semaphore has been disposed * - The provided AbortSignal fires while queued */ acquire(signal?: AbortSignal): Promise; /** * Release a permit. Wakes the oldest queued waiter (FIFO) * or increments the available permit count. */ release(): void; /** * Dispose the semaphore: reject all queued waiters and prevent * future acquisitions. Called on server shutdown. */ dispose(): void; /** Number of permits currently available. */ get available(): number; /** Number of waiters currently queued. */ get waiting(): number; /** Whether the semaphore has been disposed. */ get isDisposed(): boolean; /** Reset for testing. */ resetForTesting(): void; } export declare const concurrencySemaphore: AsyncSemaphore; //# sourceMappingURL=semaphore.d.ts.map