/**
 * Agent 状态报告器
 * 负责监听 Agent 动作并通过 WebSocket 报告状态
 */
import { EventEmitter } from 'node:events';
import type { AgentStatusUpdate } from './types.js';
export interface StatusReporterConfig {
    agentId: string;
    sendStatusUpdate: (update: AgentStatusUpdate) => void;
}
/**
 * Agent 状态报告器
 * 监听 MCP 工具调用、文件操作等事件，生成细粒度状态更新
 */
export declare class StatusReporter extends EventEmitter {
    private config;
    private currentStatus;
    private currentAction;
    constructor(config: StatusReporterConfig);
    /**
     * 报告 Agent 启动
     */
    reportStarting(): void;
    /**
     * 报告 Agent 运行中
     */
    reportRunning(): void;
    /**
     * 报告 Agent 等待输入
     */
    reportWaitingInput(): void;
    /**
     * 报告 Agent 思考中
     */
    reportThinking(): void;
    /**
     * 报告 Agent 停止
     */
    reportStopped(): void;
    /**
     * 报告 Agent 错误
     */
    reportError(): void;
    /**
     * 报告工具调用
     */
    reportToolUse(toolName: string, args?: Record<string, unknown>): void;
    /**
     * 报告工具调用返回结果。
     * 主流程：沿用当前动作上下文 -> 截断返回内容 -> 通过 actionResult 写入时间线日志。
     */
    reportToolResult(result: unknown): void;
    /**
     * 报告工具调用错误。
     */
    reportToolError(error: unknown): void;
    /**
     * 解析工具名称和参数，生成动作信息
     */
    private static readonly KNOWN_MCP_TOOLS;
    private parseToolAction;
    /**
     * 更新状态
     */
    private updateStatus;
    /**
     * 清除当前动作
     */
    private clearAction;
    /**
     * 将工具返回值序列化为面板可读日志，避免超长内容影响传输。
     */
    private formatToolResult;
    /**
     * 获取当前状态
     */
    getCurrentStatus(): AgentStatusUpdate;
}
//# sourceMappingURL=status-reporter.d.ts.map