/**
 * 任务上下文 — 高级 setter 方法（产物/修复/返工/证据等）
 *
 * 通过 applySetterMethods 将这些方法混入 TaskContextManager 实例。
 * 这样可以将大型类拆分为多个文件，同时保持单一公共 API。
 */
import type { TaskContext } from "../../../types/index.js";
import type { CodeReviewResult, PlanResult, DeliveryResult } from "../../../types/index.js";
import type { OutputArtifact } from "../../contracts/artifact_contract_registry.js";
import type { ToolTrace, ToolInvocationViolation } from "../../contracts/tool_invocation_contract_registry.js";
import type { PlanProposalGateResult, PlanProposalEvidence } from "../plan_proposal_gate.js";
type LoadFn = (taskId: string) => Promise<TaskContext | null>;
type SaveFn = (ctx: TaskContext) => Promise<void>;
export interface SetterMethods {
    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>;
    setPlanProposalGate(taskId: string, gate: PlanProposalGateResult, existingCtx?: TaskContext): Promise<TaskContext | null>;
    setPlanProposalEvidence(taskId: string, evidence: PlanProposalEvidence): Promise<TaskContext | null>;
    checkPlanGateBeforeWrite(ctx: TaskContext): {
        allowed: boolean;
        reason_zh: string;
    };
    setArtifact(taskId: string, artifact: OutputArtifact, existingCtx?: TaskContext): Promise<TaskContext | null>;
    updateArtifactStatus(taskId: string, params: {
        status: OutputArtifact["status"];
        evidenceRef?: string;
        hasVerification?: boolean;
        hasAcceptance?: boolean;
    } | OutputArtifact["status"]): Promise<TaskContext | null>;
    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>;
    recordRework(taskId: string, fromPhase: string, toPhase: string, reason: string): Promise<TaskContext | null>;
}
export declare function createSetterMethods(load: LoadFn, save: SaveFn): SetterMethods;
export {};
//# sourceMappingURL=manager_setters.d.ts.map