/**
 * LLM primitives: `subagent_call` + `llm_classify`. Skills compose these
 * into rule processes via YAML; the runtime dispatches each call through
 * the model dispatcher to whichever backend the user's `models.yaml`
 * mapped the alias to.
 *
 * Model neutrality (per `project_opensquid_model_neutral_subagent_primitive`
 * and the model-name-drift feedback memory): packs say `model:
 * fast_classifier`, never a vendor model id. Vendor identity lives in
 * user config. This file names no vendors and the dispatch path is
 * identical for every backend.
 *
 * Primitives:
 *
 *   subagent_call({ model, prompt, timeout_ms? }) → ok(stdout) | err
 *     Calls the strategy and returns its raw output. The only failure
 *     surfaces are `arg_invalid` (unknown alias) and `runtime` (spawn /
 *     timeout / non-zero exit). Use this when the pack needs the full
 *     model response — narrative generation, structured-output tasks,
 *     long-form reasoning.
 *
 *   llm_classify({ model, prompt, allowed_labels, timeout_ms? }) → ok(label)
 *     Wraps `prompt` with a "respond with exactly one of …" suffix, calls
 *     the strategy, takes the first whitespace-delimited token of the
 *     output, and case-insensitively matches it against `allowed_labels`.
 *     Returns `ok('UNCERTAIN')` if no match — and crucially, also clamps
 *     to `'UNCERTAIN'` on EVERY thrown error (timeout, spawn failure,
 *     non-zero exit). A classifier that throws would force every caller
 *     to wrap try/catch; clamping keeps the pack YAML simple. The cost
 *     is that real misconfiguration (alias points at a dead binary)
 *     looks the same as "model couldn't decide" — auditors should grep
 *     for the `'UNCERTAIN'` rate to catch that.
 *
 *   The one `arg_invalid` exception (unknown alias) is intentional:
 *   that's a config error, not a classifier judgment, and it should
 *   surface loudly so the user fixes their `models.yaml`.
 *
 * Imports from: zod, ../runtime/result.js, ../models/dispatcher.js,
 *   ../models/load_config.js, ./registry.js.
 * Imported by: src/functions/index.ts.
 */
import type { FunctionRegistry } from './registry.js';
export declare function registerLlmFunctions(registry: FunctionRegistry): void;
//# sourceMappingURL=llm.d.ts.map