/**
 * Pattern-based utterance classifier — categorizes user-said text into
 * one of: `fact` / `preference` / `correction` / `workflow_lock` /
 * `none`, with a suggested follow-up action.
 *
 * Pure regex catalog. No LLM call. Fast, deterministic, hand-tunable.
 * The full LLM-driven Stop-hook auto-classifier is task #112; this
 * tool is agent-invoked per the CLAUDE.md classify-and-act block.
 *
 * Output is structured guidance, not an action. The MCP tool returns
 * { kind, suggested_action, matched, confidence }; the agent then calls
 * the appropriate downstream tool (memorize, remember, update_memory)
 * itself.
 */
export type UtteranceKind = "fact" | "preference" | "correction" | "workflow_lock" | "none";
export type UtteranceConfidence = "high" | "medium" | "low";
export interface UtterancePattern {
    /** Stable id (e.g. "preference-always"). */
    id: string;
    /** Category this pattern signals. */
    kind: UtteranceKind;
    /** Regex matched against the utterance text. */
    pattern: string;
    /** Confidence level when this pattern fires. */
    confidence: UtteranceConfidence;
    /** Short explanation surfaced to the agent. */
    reason: string;
}
/**
 * Catalog. Ordered by SPECIFICITY — most specific patterns first so the
 * first match wins. Conservative: a miss is "agent classifies based on
 * CLAUDE.md instructions anyway", a false-fire is "spurious memorize/
 * remember call".
 */
export declare const UTTERANCE_PATTERNS: UtterancePattern[];
export interface ClassifyResult {
    kind: UtteranceKind;
    /** Recommended next action for the agent. */
    suggested_action: string;
    /** Pattern id(s) that matched. */
    matched: string[];
    /** Confidence of the strongest hit. */
    confidence: UtteranceConfidence | null;
}
/**
 * Classify an utterance. Returns the strongest-confidence match's kind
 * (high > medium > low), all matching pattern ids, and a suggested
 * downstream action.
 *
 * Empty / whitespace input → kind="none".
 */
export declare function classifyUtterance(text: string): ClassifyResult;
//# sourceMappingURL=classifier.d.ts.map