/**
 * IncrementalBootstrap — 增量冷启动控制器
 *
 * 基于 BootstrapSnapshot 存储的文件指纹，检测项目变更范围，
 * 推断受影响维度，并控制 fillDimensionsV3 仅执行受影响维度。
 *
 * 流程:
 *   1. 加载上次成功快照
 *   2. 扫描当前文件 → 计算 diff (added/modified/deleted)
 *   3. 推断受影响维度 → { mode, dimensions, skippedDimensions }
 *   4. 从快照恢复未变更维度的 EpisodicMemory
 *   5. 只对受影响维度执行 Analyst → Producer
 *   6. 完成后保存新快照
 *
 * @module pipeline/IncrementalBootstrap
 */
import { SessionStore } from '#agent/memory/SessionStore.js';
import type { BootstrapFile, LoggerLike, SaveSnapshotParams } from '../../types.js';
import { BootstrapSnapshot } from './BootstrapSnapshot.js';
export declare class IncrementalBootstrap {
    #private;
    constructor(db: unknown, projectRoot: string, { logger }?: {
        logger?: LoggerLike | null;
    });
    /**
     * 评估增量可行性 — 在 bootstrap 流程最开始调用
     *
     * @param currentFiles 当前扫描到的文件
     * @param allDimIds 所有可用维度 ID
     */
    evaluate(currentFiles: BootstrapFile[], allDimIds: string[]): {
        canIncremental: boolean;
        mode: string;
        affectedDimensions: string[];
        skippedDimensions: never[];
        previousSnapshot: null;
        diff: null;
        reason: string;
        restoredEpisodic: null;
    } | {
        canIncremental: boolean;
        mode: string;
        affectedDimensions: string[];
        skippedDimensions: string[];
        previousSnapshot: import("./BootstrapSnapshot.js").SnapshotData;
        diff: import("./BootstrapSnapshot.js").DiffResult;
        reason: string;
        restoredEpisodic: SessionStore | null;
    };
    /**
     * 保存快照 — 在 bootstrap 完成后调用
     *
     * @param [params.meta] { durationMs, candidateCount, primaryLang }
     * @param [params.plan] evaluate() 返回的计划 (增量时)
     * @returns 快照 ID
     */
    saveSnapshot(params: SaveSnapshotParams): string;
    /** 获取快照管理器 (用于直接查询) */
    getSnapshotManager(): BootstrapSnapshot;
}
export default IncrementalBootstrap;
