/**
 * Deliverable Contract Classifier — Slice 0, Deliverable Contract v1 (0.14.18+)
 *
 * Classifies the requested deliverable shape BEFORE progress gates fire.
 * This solves two distinct problems:
 *
 * 1. Read-only review / analysis / chat-summary tasks must NOT be hard-stopped
 *    solely because `touchedPaths.length === 0`.
 * 2. Durable file/code artifact tasks must still require artifact evidence
 *    before completion.
 *
 * Callsites MUST use the exported wrapper functions (isDurableArtifactDeliverable,
 * allowsChatFinal, shouldCreateStructuredTaskPlan, shouldHardStopOnNoTouchedPaths).
 * Do NOT inline `.mode === 'file_artifact_delivery'` at callsites — that bypasses
 * compound-intent arbitration, confidence gating, and future mode extensions.
 *
 * Priority chain (highest → lowest):
 *   code_change > file_artifact_delivery > command_job > text_deliverable
 *     > read_only_review > mixed_unknown
 *
 * Compound-intent: collect ALL mode signals first, then select the highest-priority
 * mode. mixed_unknown is reserved only for zero/weak signal — not for multi-mode hits.
 */
export type DeliverableMode = 'read_only_review' | 'text_deliverable' | 'file_artifact_delivery' | 'code_change' | 'command_job' | 'mixed_unknown';
export type DeliverableConfidence = 'high' | 'medium' | 'low';
/**
 * Optional manifest hint for classifyDeliverableContract.
 * When provided with confidence !== 'low', the hint deliverableMode is adopted
 * directly; local signal collection still enriches matchedModes / signalSummary.
 */
export interface ManifestHint {
    deliverableMode: DeliverableMode;
    confidence: DeliverableConfidence;
}
export interface DeliverableSignalSummary {
    codeChange: string[];
    fileArtifact: string[];
    commandJob: string[];
    textDeliverable: string[];
    readOnlyReview: string[];
    pathLike: string[];
    explicitArtifactVerb: string[];
    artifactTypeOnly: string[];
}
export interface DeliverableContractClassification {
    mode: DeliverableMode;
    confidence: DeliverableConfidence;
    requiresDurableArtifact: boolean;
    allowsChatFinal: boolean;
    shouldCreateTaskPlan: boolean;
    hardStopOnNoTouchedPaths: boolean;
    reasons: string[];
    matchedModes: DeliverableMode[];
    signalSummary: DeliverableSignalSummary;
}
/**
 * Classify the deliverable mode from the request text.
 *
 * Collects ALL matching mode signals first, then arbitrates by priority.
 * Does NOT return on first phrase match.
 *
 * @param manifestHint — optional hint from RunWorkspace manifest. When present
 *   and confidence is not 'low', the hint can break ambiguous ties but cannot
 *   override an explicit source-code mutation target such as "修改 src/foo.ts".
 *   Local signal collection still runs so matchedModes / signalSummary are
 *   enriched for telemetry.
 */
export declare function classifyDeliverableContract(text: string, opts?: {
    manifestHint?: ManifestHint;
}): DeliverableContractClassification;
/**
 * Returns true for high-confidence durable artifact modes (code_change,
 * file_artifact_delivery/high). Used to decide whether progress gates apply.
 */
export declare function isDurableArtifactDeliverable(contract: DeliverableContractClassification): boolean;
/**
 * Returns true when the task requires durable artifact progress (touched paths).
 * Equivalent to: high-confidence code_change or file_artifact_delivery.
 */
export declare function taskRequiresDurableProgress(contract: DeliverableContractClassification): boolean;
/**
 * Returns true when the task is allowed to complete in chat without touched paths.
 * text_deliverable, read_only_review, command_job, mixed_unknown all return true.
 * file_artifact_delivery/high and code_change return false.
 */
export declare function allowsChatFinal(contract: DeliverableContractClassification): boolean;
/**
 * Returns true when a structured task plan (with steps, verification) should be
 * created. Only for durable artifact modes with medium+ confidence.
 */
export declare function shouldCreateStructuredTaskPlan(contract: DeliverableContractClassification): boolean;
/**
 * Returns true when the task_no_progress hard stop should fire if touchedPaths=0
 * after the iteration limit. Only for high-confidence durable artifact modes.
 */
export declare function shouldHardStopOnNoTouchedPaths(contract: DeliverableContractClassification): boolean;
