/**
 * EpisodicConsolidator — Episodic → Semantic 固化引擎
 *
 * Bootstrap 完成后，将 SessionStore (Tier 2) 中的维度分析结果
 * 提炼为结构化记忆，固化到 PersistentMemory (Tier 3)。
 *
 * 固化策略 (规则化，无需额外 AI 调用):
 *   1. 从每个维度的 findings 提取 fact 记忆
 *   2. 从 Tier Reflections 的 crossDimensionPatterns 提取 insight 记忆
 *   3. 从 analysisText 中提取项目级别事实 (正则匹配)
 *   4. 使用 PersistentMemory.consolidate() 进行去重和合并
 *
 * @module EpisodicConsolidator
 */
/** Logger 最小接口 */
interface ConsolidatorLogger {
    info(msg: string): void;
}
/** PersistentMemory 最小接口 */
interface PersistentMemoryLike {
    clearBootstrapMemories(): number;
    compact(): void;
    consolidate(candidates: CandidateMemoryEntry[], opts?: {
        bootstrapSession?: string;
    }): ConsolidateResult;
}
/** 固化结果 */
interface ConsolidateResult {
    added: number;
    updated: number;
    merged: number;
    skipped: number;
}
/** 候选记忆条目 */
interface CandidateMemoryEntry {
    type: string;
    content: string;
    source: string;
    importance: number;
    sourceDimension?: string;
    sourceEvidence?: string;
    relatedEntities?: string[];
    tags: string[];
}
/** 维度发现 */
interface FindingLike {
    finding?: string;
    evidence?: string;
    importance?: number;
    dimId?: string;
}
/** 维度报告 */
interface DimensionReportLike {
    analysisText?: string;
    findings?: FindingLike[];
}
/** Tier 反思 */
interface TierReflectionLike {
    tierIndex: number;
    completedDimensions?: string[];
    topFindings?: FindingLike[];
    crossDimensionPatterns?: string[];
    suggestionsForNextTier?: string[];
}
/** SessionStore 最小接口 */
interface SessionStoreLike {
    getCompletedDimensions(): string[];
    getDimensionReport(dimId: string): DimensionReportLike | undefined;
    toJSON(): {
        tierReflections?: TierReflectionLike[];
    };
}
export declare class EpisodicConsolidator {
    #private;
    constructor(semanticMemory: PersistentMemoryLike, { logger }?: {
        logger?: ConsolidatorLogger;
    });
    /**
     * 执行固化: SessionStore → PersistentMemory
     *
     * @param [opts.bootstrapSession] Bootstrap session ID
     * @param [opts.clearPrevious=false] 是否先清除旧的 bootstrap 记忆
     * @returns }
     */
    consolidate(sessionStore: SessionStoreLike, { bootstrapSession, clearPrevious, }?: {
        bootstrapSession?: string;
        clearPrevious?: boolean;
    }): {
        findings: {
            extracted: number;
        };
        insights: {
            extracted: number;
        };
        textFacts: {
            extracted: number;
        };
        total: ConsolidateResult;
        durationMs: number;
        perDimension: {
            [k: string]: number;
        };
        importanceDistribution: Record<number, number>;
        entityCount: number;
    };
}
export default EpisodicConsolidator;
