/** 归一化的 issue 形态(三种结构统一映射到此) */ export interface NormalizedIssue { /** 'critical' | 'error' | 'warning' | 'info';未知 severity 归入 'info' */ severity: string; /** 文件路径或 location 字符串;无则空串 */ location: string; message: string; suggestion?: string; } /** * 把 issue 列表格式化为人类可读的 severity 分组文本。 * 风格对齐 formatLintResults:分组标题 + 缩进列表 + → suggestion。 * * @param issues 归一化的 issue 列表 * @param opts.truncate 每组最多显示条数(超出加 "... and N more" 提示),默认不截断 */ export declare function formatIssues(issues: NormalizedIssue[], opts?: { truncate?: number; }): string; /** * 把人类可读文本 + 原始数据拼成双轨输出。 * 格式:`\n\n---JSON---\n<紧凑 JSON>` * 程序/测试从 ---JSON--- 分隔符后解析(紧凑 JSON 比 pretty-JSON 省 ~30% 体积)。 */ export declare function dualTrackOutput(humanText: string, data: unknown): string; /** * 从双轨输出文本中解析尾部 JSON。 * 容错:若无 ---JSON--- 分隔符(旧格式或错误输出),回退直接 parse 整个文本。 */ export declare function parseDualTrack(text: string): unknown;