/**
 * Codex JSON 输出解析器
 * 将 Codex 的 JSONL 输出转换为标准化日志
 */
import type { MsgStore } from './msg-store.js';
/**
 * Codex 解析器
 */
export declare class CodexParser {
    private msgStore;
    private buffer;
    private currentToolUseId;
    private currentToolIndex;
    private toolOutputBuffer;
    /** 收集非 JSON 行，用于进程异常退出时作为错误信息 */
    private nonJsonLines;
    /** 是否已通过 JSON 事件推送过错误（用于 finish 去重） */
    private hasJsonError;
    /** 已推送的错误消息集合（用于 error / turn.failed 去重） */
    private pushedErrors;
    /** 重试类错误的 entry index（用于原地更新而非创建新条目） */
    private retryErrorIndex;
    constructor(msgStore: MsgStore);
    private get indexProvider();
    /**
     * 处理数据流
     */
    processData(data: string): void;
    /**
     * 解析一行中可能包含的多个 JSON 对象
     * Codex 有时会在同一行输出多个 JSON: {"type":"error",...} {"type":"turn.failed",...}
     */
    private parseJsonSegments;
    /**
     * 处理事件
     */
    private handleEvent;
    /**
     * 处理 item.started 事件
     */
    private handleItemStarted;
    /**
     * 处理 item.completed 事件
     */
    private handleItemCompleted;
    /**
     * 处理 token 使用信息
     */
    private handleUsage;
    /**
     * 检测是否为重试类消息（如 "Reconnecting... 3/5 (reason)"）
     */
    private isRetryMessage;
    /**
     * 处理错误事件（type: error / turn.failed）
     * - 重试类消息（Reconnecting... N/M）：原地更新同一个 entry
     * - 普通错误：去重后创建新 entry
     */
    private handleError;
    /**
     * 完成解析
     */
    finish(exitCode?: number): void;
}
/**
 * 创建 Codex 解析器
 */
export declare function createCodexParser(msgStore: MsgStore): CodexParser;
//# sourceMappingURL=codex-parser.d.ts.map