/**
 * SSE Session Manager — 基于 EventSource 的流式会话管理
 *
 * 架构:
 *   POST /chat/stream → 创建 session + 后台执行 AgentRuntime → 返回 { sessionId }
 *   GET  /chat/events/:sessionId → EventSource 端点, 回放缓冲事件 + 实时推送
 *
 * 为什么不用 fetch + ReadableStream:
 *   Chrome/Safari 的 fetch() streaming 会缓冲初始响应体（~1-4KB），导致小体积
 *   SSE 事件滞留在缓冲区中不被交付给 ReadableStream reader。
 *   原生 EventSource API 是浏览器专门为 SSE 优化的消费者，不受此限制。
 *
 * @module lib/http/utils/sse-sessions
 */
import { EventEmitter } from 'node:events';
/**
 * 创建一个 stream session
 *
 * @param scene 场景标识
 */
export declare function createStreamSession(scene: string): {
    sessionId: string;
    scene: string;
    /** 事件缓冲区（供 EventSource 连接后回放） */
    buffer: Record<string, unknown>[];
    /** 会话是否已结束 */
    completed: boolean;
    createdAt: number;
    /**
     * 缓冲 + 广播一个事件
     * @param event 必须包含 type 字段
     */
    send(event: Record<string, unknown>): void;
    /** 标记会话完成，发送 stream:done */
    end(donePayload?: Record<string, unknown>): void;
    /** 标记会话错误，发送 stream:error */
    error(message: string, code: string): void;
    /**
     * 订阅实时事件
     * @returns unsubscribe 函数
     */
    on(handler: (event: Record<string, unknown>) => void): () => EventEmitter<any>;
};
/** 获取已有的 session */
export declare function getStreamSession(sessionId: string): any;
