/**
 * EventChannel - Generic Async Push/Pull Queue
 *
 * Bridges event producers (push) and async iteration consumers (for-await-of).
 * Used by the streaming infrastructure to forward agent execution events
 * from the StreamingExecutorProxy to the AgentRunnerService caller.
 *
 * @example
 * ```typescript
 * const channel = new EventChannel<string>();
 *
 * // Producer side
 * channel.push('progress update');
 * channel.push('done');
 * channel.close();
 *
 * // Consumer side
 * for await (const event of channel) {
 *   console.log(event);
 * }
 * ```
 */
export declare class EventChannel<T> implements AsyncIterable<T> {
    private queue;
    private closed;
    private resolve;
    /**
     * Push an event into the channel.
     * Ignored if the channel is already closed.
     */
    push(event: T): void;
    /**
     * Close the channel, signaling no more events will be pushed.
     * Safe to call multiple times.
     */
    close(): void;
    [Symbol.asyncIterator](): AsyncIterator<T>;
}
//# sourceMappingURL=event-channel.d.ts.map