/**
 * `opensquid hook user-prompt-submit` — Claude Code UserPromptSubmit
 * hook handler.
 *
 * Fires when the user submits a prompt (start of every new turn).
 * Surfaces TWO accumulator surfaces via stdout so the agent sees them
 * in its system context:
 *
 *   1. broken-promises.jsonl — claims from the prior assistant turn
 *      that the honesty ledger flagged as unfulfilled.
 *   2. heartbeat-pending.txt — token-threshold re-anchor nudge written
 *      by the Stop hook when the transcript grew past the configured
 *      threshold (default 20K tokens, OPENSQUID_HEARTBEAT_TOKENS).
 *
 * Both surfaces are CLEARED after surfacing — one chance per item per
 * session, no infinite nagging.
 *
 * Exit 0 always — UserPromptSubmit is observational.
 *
 * Pre-#124: this hook also surfaced auto-classify-candidates.jsonl
 * written by a detached LLM subprocess. Removed alongside the auto-
 * classifier deletion — the agent classifies utterances inline per
 * CLAUDE.md, and the heartbeat reminds it to re-anchor periodically.
 */
export declare function runUserPromptSubmitHook(): Promise<void>;
/**
 * 0.7.27 / D8 — detect a multi-task directive in the user's prompt
 * and return a "mirror back your parsed plan" reminder message.
 *
 * Trigger patterns (case-insensitive):
 *   - "<num1> then <num2>" — bare-number sequencing (the D8 incident
 *     shape: user said "166 then 168" — agent did 166 + deferred 168)
 *   - "first <ref> then <ref>"
 *   - "after <ref> do <ref>" / "after X then Y"
 *   - Two or more `#<num>` references
 *
 * Returns the surface message when a match fires, null otherwise.
 * Exported for direct testing.
 */
export declare function detectMultiTaskDirective(prompt: string): string | null;
/**
 * Extract probable task references from a user prompt. Returns the
 * distinct references in document order, capped at 10.
 *
 * Heuristics (intentionally narrow to keep false-positives low):
 *   - `#\d+` shapes always count
 *   - bare 2-4-digit numbers count IF they're connected by a
 *     sequencing word ("then" / "after" / "first" / "and then")
 *
 * Exported for testing.
 */
export declare function extractTaskRefs(prompt: string): string[];
/**
 * 0.7.10 (#164): detect resumed sessions by tracking the wall-clock
 * gap between consecutive UPS firings. Returns a re-anchor message
 * when a gap exceeds RESUME_GAP_MS, OR null when continuous /
 * first-ever firing.
 *
 * Marker file: ~/.opensquid/sessions/<sid>/ups-last-at.txt
 *   Contents: ISO 8601 timestamp of the last UPS firing.
 *
 * On EVERY call: read prior timestamp → write current timestamp.
 * First call: marker missing → write current; return null (no resume
 * happened, just the session starting).
 * Subsequent call: gap < RESUME_GAP_MS → continuous (return null).
 * Subsequent call: gap >= RESUME_GAP_MS → resumed (return message).
 *
 * Exported for direct testing.
 */
export declare function detectResumeAndUpdateMarker(sessionId: string, options?: {
    dataRoot?: string;
    now?: number;
}): Promise<string | null>;
//# sourceMappingURL=user-prompt-submit.d.ts.map