/**
 * 会话输出缓冲服务
 *
 * 管理终端会话的输出缓冲和刷新机制
 */
import type { Session } from '../types.js';
interface RuntimeStatusActionInfo {
    actionType?: string;
    actionLabel?: string;
    actionDetail?: string;
    actionResult?: string;
    actionId?: string;
}
/** 活跃会话存储 */
export declare const sessions: Map<string, Session>;
/**
 * 发送状态更新到调度器
 *
 * @param agentId - Agent ID
 * @param sessionId - 会话 ID
 * @param status - 状态
 * @param actionInfo - 可选的动作详情
 */
export declare function sendStatus(agentId: string, sessionId: string | null, status: string, actionInfo?: RuntimeStatusActionInfo, usage?: {
    inputTokens: number;
    outputTokens: number;
}): Promise<void | {
    data: unknown;
}>;
/**
 * 发送输出到调度器
 *
 * @param agentId - Agent ID
 * @param output - 输出内容
 * @param sessionId - 会话 ID
 * @param seq - 序列号
 */
export declare function sendOutput(agentId: string, output: string, sessionId: string, seq: number): Promise<void>;
/**
 * 发送 AskUserQuestion 事件到调度器。
 *
 * @param agentId - Agent ID
 * @param sessionId - SDK 会话 ID
 * @param questions - 结构化问题列表
 */
export declare function sendQuestionRequest(agentId: string, sessionId: string, questions: unknown[]): Promise<void>;
export interface RuntimeFileChangedPayload {
    bridgeBaseUrl?: string;
    workspacePath: string;
    filePath: string;
    eventType: string;
    size?: number;
    mtimeMs?: number;
}
/**
 * 发送工作区文件变更事件到调度器，由调度器通过 WebSocket 通知前端刷新预览。
 */
export declare function sendFileChanged(payload: RuntimeFileChangedPayload): Promise<void>;
/**
 * 追加会话输出到有界缓冲区。
 *
 * 主流程：拼接新输出 -> 超过上限时丢弃最旧终端噪声并保留截断提示 -> 等待 flush pump 批量发送。
 */
export declare function appendSessionOutput(sessionId: string, data: string): void;
/**
 * 调度输出刷新
 *
 * @param sessionId - 会话 ID
 */
export declare function scheduleOutputFlush(sessionId: string): void;
/**
 * 刷新会话输出
 *
 * @param sessionId - 会话 ID
 */
export declare function flushSessionOutput(sessionId: string): Promise<void>;
export {};
//# sourceMappingURL=session-output.d.ts.map