/**
 * Task contract classifier (Slice-E, 0.13.85+).
 *
 * Replaces the boolean `taskLikelyRequiresWrites` regex stack with a typed
 * classification: `{ kind, confidence }`. The classifier is pure-function:
 * no I/O, no module-level mutable state, deterministic for any input string.
 *
 * History: pre-Slice-E, three module-level regexes in `conversation.ts`
 * (`TASK_WRITE_INTENT_RE`, `TASK_NEGATED_WRITE_INTENT_RE`, `TASK_TEXT_DELIVERABLE_RE`)
 * collectively decided write-required vs not. The Chinese-language case
 * "审计 X，给出 N 条改进建议" tripped a false-positive: 改 (a substring of
 * 改进, "improvement") fired `TASK_WRITE_INTENT_RE`, the text-deliverable
 * regex didn't match 建议, and the negation regex needed an explicit prohibition
 * to strip the write intent — so a read-only audit prompt was classified as
 * write-required and hit `task-no-progress` hard-stop at iter 9.
 *
 * Slice 0 (Deliverable Contract v1, 0.14.18+):
 * New code should prefer `classifyDeliverableContract()` from
 * `./deliverable-contract.ts` and use its canonical wrappers:
 *   - isDurableArtifactDeliverable()
 *   - allowsChatFinal()
 *   - shouldCreateStructuredTaskPlan()
 *   - shouldHardStopOnNoTouchedPaths()
 *
 * `classifyTaskContract()` is preserved for backward compatibility — the
 * Slice 0 classifier delegates to it internally for `write_required` /
 * `read_only` / `text_deliverable` / `mixed` signal extraction.
 */
export type TaskContractKind = 'write_required' | 'read_only' | 'text_deliverable' | 'mixed';
export type TaskContractConfidence = 'high' | 'low';
export interface TaskContractClassification {
    kind: TaskContractKind;
    confidence: TaskContractConfidence;
}
export declare const TASK_EXPLICIT_FILE_WRITE_TARGET_RE: RegExp;
export declare function classifyTaskContract(text: string): TaskContractClassification;
