/**
 * Async FIFO queue with `for await` support.
 *
 * Replaces the ad-hoc `eventQueue + resolveWaiting` single-slot pattern that
 * the streaming direct turn used to manage SSE events. The previous pattern was
 * lossy if two pushes landed before the single waiter resumed; this queue keeps
 * the buffer growing until consumed, and closes cleanly so the iterator drains.
 */
export declare class AsyncQueue<T> implements AsyncIterable<T> {
    private readonly buffer;
    private readonly waiters;
    private closed;
    /** Push a value to the queue. No-op when the queue is closed. */
    push(value: T): void;
    /** Close the queue. Pending iterators drain any buffered values and then complete. */
    close(): void;
    /** True if the queue is closed and the internal buffer is drained. */
    get isDrained(): boolean;
    [Symbol.asyncIterator](): AsyncIterator<T>;
}
