/**
 * 任务上下文管理器 — 管理任务的完整生命周期状态持久化。
 *
 * 核心职责:
 * - 创建/加载/保存任务上下文（JSON 文件存储）
 * - 管理状态机转换（classifying → expanding → executing → verifying → learning → done）
 * - 追踪执行结果（变更文件、失败记录）
 * - 修复循环追踪（能力 3: 自动修复尝试计数和复发检测）
 * - 返工历史追踪（能力 6: 返工次数阈值检查和阶段指令计算）
 * - 任务清理（过期任务和超量任务淘汰）
 *
 * 状态转换遵循 VALID_TRANSITIONS 严格定义的合法路径。
 */
import type { OutputArtifact } from "../../contracts/artifact_contract_registry.js";
import type { TaskContext, ClassifyResult, ExpandResult, VerifyResult, FailureRecord, PlanResult, CodeReviewResult, DeliveryResult } from "../../../types/index.js";
import type { ToolTrace, ToolInvocationViolation } from "../../contracts/tool_invocation_contract_registry.js";
import { AuditPool } from "../../audit/audit_pool.js";
import { DiffOwnershipStore } from "../diff_ownership_store.js";
import { ScopeLeaseStore } from "../scope_lease.js";
import { ConflictGate } from "../conflict_gate.js";
import type { PlanProposalGateResult, PlanProposalEvidence } from "../plan_proposal_gate.js";
export declare class TaskContextManager {
    private stateDir;
    private auditPool;
    private diffOwnership;
    private scopeLease;
    private conflictGate;
    private templatesDir?;
    private systemType?;
    private _setters;
    constructor(stateDir: string, options?: {
        templatesDir?: string;
        systemType?: "new_system" | "existing_system";
    });
    /** 获取状态存储目录路径 */
    getStateDir(): string;
    /** 获取审计池实例 */
    getAuditPool(): AuditPool;
    /** 获取 Diff 归属追踪实例 */
    getDiffOwnership(): DiffOwnershipStore;
    /** 获取 Scope Lease 实例 */
    getScopeLease(): ScopeLeaseStore;
    /** 获取冲突合并门实例 */
    getConflictGate(): ConflictGate;
    /**
     * 创建新任务上下文，生成唯一 ID 并持久化到磁盘。
     */
    create(intent: string, productProfile: string): Promise<TaskContext>;
    /**
     * 从磁盘加载任务上下文。
     */
    load(taskId: string): Promise<TaskContext | null>;
    /**
     * 持久化任务上下文到磁盘（先写临时文件再 rename，保证原子性）。
     */
    save(ctx: TaskContext): Promise<void>;
    /**
     * 更新任务状态，严格校验状态转换合法性。
     */
    updateStatus(taskId: string, status: TaskContext["status"], existingCtx?: TaskContext): Promise<TaskContext | null>;
    /**
     * 设置任务的分类结果。
     */
    setClassification(taskId: string, result: ClassifyResult): Promise<TaskContext | null>;
    /**
     * 设置任务的意图膨胀结果。
     */
    setExpansion(taskId: string, result: ExpandResult, existingCtx?: TaskContext): Promise<TaskContext | null>;
    /**
     * 记录执行结果: 变更文件列表和可选的失败记录。
     */
    setExecution(taskId: string, changedFiles: string[], failure?: FailureRecord): Promise<TaskContext | null>;
    /**
     * 设置任务的验证结果。
     */
    setVerification(taskId: string, result: VerifyResult): Promise<TaskContext | null>;
    /**
     * 获取当前活跃任务。
     */
    getCurrentTask(): Promise<TaskContext | null>;
    /**
     * 取消/关闭任务。
     */
    cancel(taskId: string): Promise<boolean>;
    /**
     * 将失败任务恢复到 expanding 状态以重试 sf_expand。
     */
    retryExpand(taskId: string): Promise<boolean>;
    /**
     * 判断任务是否可恢复。
     */
    isResumable(ctx: TaskContext): boolean;
    /**
     * 根据当前状态生成恢复提示信息。
     */
    getResumeHint(ctx: TaskContext): string;
    /**
     * 列出最近的任务。
     */
    listRecent(limit?: number): Promise<Array<{
        task_id: string;
        intent: string;
        status: string;
        created_at: string;
    }>>;
    /**
     * 自动终结陈旧的非终态任务。
     */
    autoFailStale(): Promise<string[]>;
    /**
     * 清理过期和超量任务。
     */
    cleanup(dryRun?: boolean): Promise<{
        removed: number;
        protected: number;
        forbidden_content_hits: string[];
        dry_run: boolean;
    }>;
    /** 设置任务计划结果 */
    setPlanning(taskId: string, result: PlanResult): Promise<TaskContext | null>;
    /** 设置代码审查结果 */
    setCodeReview(taskId: string, result: CodeReviewResult): Promise<TaskContext | null>;
    /** 设置交付结果 */
    setDelivery(taskId: string, result: DeliveryResult): Promise<TaskContext | null>;
    /** 设置工具调用追踪和违规记录 */
    setToolTrace(taskId: string, trace: ToolTrace, violations?: ToolInvocationViolation[]): Promise<TaskContext | null>;
    /** 持久化 Plan Proposal Gate 评估结果 */
    setPlanProposalGate(taskId: string, gate: PlanProposalGateResult, existingCtx?: TaskContext): Promise<TaskContext | null>;
    /** 持久化 Plan Proposal Evidence */
    setPlanProposalEvidence(taskId: string, evidence: PlanProposalEvidence): Promise<TaskContext | null>;
    /** 在执行动作前检查 Plan Gate */
    checkPlanGateBeforeWrite(ctx: TaskContext): {
        allowed: boolean;
        reason_zh: string;
    };
    /** 设置任务产物输出 */
    setArtifact(taskId: string, artifact: OutputArtifact, existingCtx?: TaskContext): Promise<TaskContext | null>;
    /** 更新产物状态并追加 evidence_ref */
    updateArtifactStatus(taskId: string, params: {
        status: OutputArtifact["status"];
        evidenceRef?: string;
        hasVerification?: boolean;
        hasAcceptance?: boolean;
    } | OutputArtifact["status"]): Promise<TaskContext | null>;
    /** 更新修复循环状态（能力 3） */
    updateRepairLoop(taskId: string, failurePhase: string, autoRepairable: boolean, escalationReason?: string): Promise<TaskContext | null>;
    /** 证据驱动门禁结果写入 */
    setEvidenceGroundingResult(taskId: string, payload: {
        evidence_matrix?: TaskContext["evidence_matrix"];
        evidence_gate_result?: TaskContext["evidence_gate_result"];
        unsupported_claims?: string[];
        conflict_resolutions?: TaskContext["conflict_resolutions"];
    }): Promise<TaskContext | null>;
    /** 记录返工事件（能力 6） */
    recordRework(taskId: string, fromPhase: string, toPhase: string, reason: string): Promise<TaskContext | null>;
    private clearCurrentPointerIfMatches;
    private taskFilePath;
    private get pointerPath();
    private writeCurrentPointer;
}
//# sourceMappingURL=manager.d.ts.map