/**
 * pipeline/dimension-context.js — 跨维度上下文管理 (v6)
 *
 * ⚠️ 内部 Agent 专用 — 被 orchestrator.js 的 PipelineStrategy analyze 阶段调用。
 *    外部 Agent 不使用此模块（外部 Agent 的跨维度上下文由 BootstrapSession.js + EpisodicMemory 管理）。
 *
 * 在 PipelineStrategy 按维度分批执行时，维护跨维度的上下文:
 *   - 项目基础信息 (不变)
 *   - 已完成维度的 DimensionDigest (累积)
 *   - 已提交候选的摘要列表 (累积)
 *
 * 确保每个维度的 Analyst 阶段都能看到前序维度的分析结论，
 * 实现跨维度透明互补。
 *
 * @module pipeline/dimension-context
 */
/** Project base info (immutable during a bootstrap session) */
interface ProjectContext {
    projectName: string;
    primaryLang: string;
    fileCount: number;
    targetCount: number;
    modules: string[];
    depGraph?: Record<string, unknown>;
    astMetrics?: Record<string, unknown>;
    guardSummary?: Record<string, unknown>;
}
/** Summary of a completed dimension's analysis */
interface DimensionDigest {
    summary?: string;
    candidateCount?: number;
    candidateTitles?: string[];
    keyFindings?: string[];
    crossRefs?: Record<string, string>;
    gaps?: string[];
    remainingTasks?: Array<{
        signal?: string;
    } | string>;
    dimId?: string;
    completedAt?: number;
}
/** Summary of a submitted candidate */
interface CandidateSummary {
    dimId: string;
    title: string;
    subTopic: string;
    summary?: string;
}
/** Serialized form of DimensionContext (for checkpoint restore) */
interface DimensionContextJSON {
    projectContext: ProjectContext;
    completedDimensions?: Record<string, DimensionDigest>;
    submittedCandidates?: CandidateSummary[];
}
/**
 * DimensionContext — 跨维度上下文容器
 *
 * 在单次 bootstrap 会话中创建一次，按维度累积上下文。
 */
export declare class DimensionContext {
    completedDimensions: Map<string, DimensionDigest>;
    projectContext: ProjectContext;
    submittedCandidates: CandidateSummary[];
    /** @param projectContext 项目基础信息 (全程不变) */
    constructor(projectContext: ProjectContext);
    /**
     * 维度完成后存储其摘要
     *
     * @param dimId 维度 ID
     * @param digest 维度分析摘要
     */
    addDimensionDigest(dimId: string, digest: DimensionDigest): void;
    /**
     * 记录已提交的候选
     *
     * @param candidateInfo { title, subTopic, summary }
     */
    addSubmittedCandidate(dimId: string, candidateInfo: {
        title?: string;
        subTopic?: string;
        summary?: string;
    }): void;
    /**
     * 构建给 Agent 的上下文快照
     *
     * @param currentDimId 当前维度 ID
     */
    buildContextForDimension(currentDimId: string): {
        project: ProjectContext;
        previousDimensions: Record<string, Partial<DimensionDigest>>;
        existingCandidates: {
            dimId: string;
            title: string;
            subTopic: string;
        }[];
        currentDimension: string;
    };
    /** 重算某维度时，获取该维度已有候选 */
    getExistingCandidatesForDimension(dimId: string): CandidateSummary[];
    /**
     * 获取所有维度摘要的紧凑文本表示
     * 用于 Agent prompt 中注入
     */
    getDigestsSummaryText(): string;
    /** 将完整上下文序列化为 JSON (用于断点恢复) */
    toJSON(): {
        projectContext: ProjectContext;
        completedDimensions: {
            [k: string]: DimensionDigest;
        };
        submittedCandidates: CandidateSummary[];
    };
    /** 从 JSON 恢复上下文 (断点恢复) */
    static fromJSON(json: DimensionContextJSON): DimensionContext;
}
/**
 * 从 Agent 的最终回复中解析 DimensionDigest
 *
 * Agent 被要求在回复末尾包含 JSON 格式的 dimensionDigest。
 * 此函数从自由格式文本中提取该 JSON 块。
 *
 * @param reply Agent 的完整回复文本
 */
export declare function parseDimensionDigest(reply: string | null | undefined): DimensionDigest | null;
export {};
