import { type MessageStreamEvent } from "#protocol/message.js";
/**
 * Follows accepted messages through their boundary, including a send racing
 * settlement. Delivery responses may overlap; stream event IDs deduplicate them.
 */
export declare class SteeringStream implements AsyncIterable<MessageStreamEvent> {
    private readonly session;
    private readonly streams;
    private closed;
    private readonly controller;
    constructor(initial: AsyncIterable<MessageStreamEvent>, session: SteeringStream["session"]);
    send(message: string): Promise<void>;
    abort(): void;
    [Symbol.asyncIterator](): AsyncGenerator<MessageStreamEvent>;
}
