/**
 * Zod schema for `chat_agent.yaml` — the pack's chat-agent binding side-file.
 *
 * Authoritative source: `docs/tasks/T-warm-agent-chat-bridge.md` §WAB.6
 * "Key code shapes". This file is the schema slice (WAB.6 prep); the loader
 * delta + runtime binding land in WAB.6 proper.
 *
 * Position in the pack format: parallel side-file to `models.yaml`,
 * `channels.yaml`, `notifications.yaml`, `drift_response.yaml`. A pack that
 * does NOT ship `chat_agent.yaml` falls back to built-in defaults in the
 * runtime (`pack_binding.ts`, WAB.6) — the schema layer doesn't materialize
 * those defaults because "no file" is the bind-time signal, not "empty
 * document" (which IS a valid declaration the author meant to write).
 *
 * Field semantics (one per field; defaults applied at parse time):
 *   - `default_model` — REQUIRED alias name from the pack's `models.yaml`.
 *     Schema accepts any non-empty string; alias-existence validation runs
 *     at resolve time in WAB.6's `pack_binding.ts` (the alias resolver is
 *     the right layer — it can cross-reference the loaded `ModelsConfig`).
 *     Schema deliberately does NOT enumerate model names (matches the
 *     `project_opensquid_model_neutral_subagent_primitive` lock: the schema
 *     stays model-neutral; concrete model names appear ONLY in
 *     `models.yaml`).
 *   - `system_prompt` — optional file path relative to pack root. Loader
 *     resolves + reads at session creation. Empty / absent → built-in
 *     terse prompt (defined in WAB.6 runtime, not here).
 *   - `skills` — opt-in skills beyond the three built-ins. Names match
 *     skill IDs declared in the pack's `skills/`. Empty by default.
 *   - `disable_builtins` — subset of the three built-ins to remove from
 *     the chat agent's tool surface. Enum is sealed at the three names
 *     `chat_send | recall | store_lesson` per WAB.1 decision (e) — adding
 *     a future built-in is a deliberate schema change.
 *   - `max_tool_iterations` — caps the agent-loop iteration count
 *     (WAB.4 dispatcher tunable). Bounded 1..32; default 8.
 *   - `max_tokens` — per-turn token cap forwarded to Anthropic
 *     `messages.create`. Bounded 64..8192; default 1024.
 *
 * `.strict()` is mandatory — a typo like `defualt_model:` or `skllls:` must
 * fail loudly at load. Same posture as every other pack-config schema.
 *
 * The bounds on `max_tool_iterations` (32) and `max_tokens` (8192) are
 * pragmatic safety rails, not API limits. The Anthropic API supports higher
 * `max_tokens`; we cap at the chat-bridge use case (terse replies) so a
 * misconfigured pack can't accidentally bill thousands of tokens per turn.
 * A future use case that needs a higher cap is a deliberate schema change
 * (memory `project_opensquid_runtime_failure_handling` favors validate-early
 * over silent-fail-open).
 *
 * Imports from: zod only (self-contained per audit constraint).
 * Imported by: src/packs/schemas/index.ts.
 */
import { z } from 'zod';
export declare const BuiltinToolName: z.ZodEnum<["chat_send", "recall", "store_lesson"]>;
export type BuiltinToolName = z.infer<typeof BuiltinToolName>;
export declare const ChatAgentSchema: z.ZodObject<{
    default_model: z.ZodString;
    system_prompt: z.ZodOptional<z.ZodString>;
    skills: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    disable_builtins: z.ZodDefault<z.ZodArray<z.ZodEnum<["chat_send", "recall", "store_lesson"]>, "many">>;
    max_tool_iterations: z.ZodDefault<z.ZodNumber>;
    max_tokens: z.ZodDefault<z.ZodNumber>;
}, "strict", z.ZodTypeAny, {
    default_model: string;
    skills: string[];
    disable_builtins: ("chat_send" | "recall" | "store_lesson")[];
    max_tool_iterations: number;
    max_tokens: number;
    system_prompt?: string | undefined;
}, {
    default_model: string;
    system_prompt?: string | undefined;
    skills?: string[] | undefined;
    disable_builtins?: ("chat_send" | "recall" | "store_lesson")[] | undefined;
    max_tool_iterations?: number | undefined;
    max_tokens?: number | undefined;
}>;
export type ChatAgentConfig = z.infer<typeof ChatAgentSchema>;
//# sourceMappingURL=chat_agent.d.ts.map