/**
 * Multicast buffer for a single web agent run so multiple HTTP SSE consumers can
 * attach (initial POST /api/agent and later POST /api/agent/resume) while one
 * background pump drains processDirectStreaming.
 */
export type RelayEvent = {
    type: string;
    [key: string]: unknown;
};
export declare class AgentRunRelay {
    private runs;
    ensureRun(runId: string, sessionKey: string): void;
    getSessionKey(runId: string): string | undefined;
    hasRun(runId: string): boolean;
    publish(runId: string, event: RelayEvent): void;
    complete(runId: string): void;
    subscribe(runId: string): AsyncGenerator<RelayEvent>;
}
