/**
 * KnowledgeCompressor — 知识条目压缩器（v3 优化版）
 *
 * 将 KnowledgeEntry（含 AI 预计算字段）格式化为 Cursor 交付格式：
 *   - Channel A: compressToRuleLine() → 一行式强制规则（含可选 language 前缀）
 *   - Channel B: compressToWhenDoDont() → When/Do/Don't/Why + Template 格式
 *
 * 原则：只做格式化，无字段 = 不输出，不做启发式猜测。
 *
 * v3 变更:
 *   - Channel A: 多语言项目中增加 [language] 前缀
 *   - Channel B: 增加 Why 行（content.rationale 首句）
 *   - Channel B: coreCode 骨架化（去注释 + 截断 ≤15 行）
 */
import type { KnowledgeEntryProps } from '../../domain/knowledge/KnowledgeEntry.js';
export declare class KnowledgeCompressor {
    /**
     * Channel A — 一行式规则（含可选 language 前缀）
     *
     * 多语言项目中增加 [language] 前缀，帮助 Agent 判断规则适用性。
     * scope='universal' 或无 language 的规则不加前缀。
     *
     * @param entries KnowledgeEntry 数组 (kind='rule')
     */
    compressToRuleLine(entries: KnowledgeEntryProps[]): string[];
    /**
     * Channel B — When/Do/Don't/Why + Template（骨架化）
     * @param entries KnowledgeEntry 数组 (kind='pattern')
     * @returns >}
     */
    compressToWhenDoDont(entries: KnowledgeEntryProps[]): {
        trigger: string;
        when: string;
        do: string;
        dont: string;
        why: string;
        template: string;
    }[];
    /**
     * 将 When/Do/Don't/Why 结果格式化为 Markdown 字符串
     * @param compressed compressToWhenDoDont 输出
     * @param [language=''] 代码围栏语言标识
     */
    formatWhenDoDont(compressed: Array<{
        trigger: string;
        when: string;
        do: string;
        dont: string;
        why: string;
        template: string;
    }>, language?: string): string;
    /**
     * Channel B — Fact 条目压缩为 "Know" 行
     *
     * fact 类型没有 trigger/whenClause/doClause 结构，
     * 采用 "Know: {title} — {description}" 的简洁格式，
     * 让 Agent 获取项目事实性知识（技术选型、架构决策等）。
     *
     * @param facts KnowledgeEntry 数组 (kind='fact')
     * @returns >}
     */
    compressToFactLines(facts: KnowledgeEntryProps[]): {
        title: string;
        summary: string;
    }[];
    /**
     * 将 Fact 压缩结果格式化为 Markdown 字符串
     * @param factLines
     */
    formatFactLines(factLines: Array<{
        title: string;
        summary: string;
    }>): string;
}
export default KnowledgeCompressor;
