/**
 * Zod schema for `models.yaml` — the pack's model-alias declarations.
 *
 * Authoritative source: `docs/opensquid-real-design.md` §"Five LLM call modes"
 * + §"models.yaml shape" + memory `project_opensquid_model_neutral_subagent_primitive`.
 *
 * Packs declare task-purpose aliases (`fast_classifier`, `reasoning`, etc.) +
 * suggested implementations; user config overrides at `~/.opensquid/models.yaml`.
 * Rules NEVER reference a concrete model by name — they go through aliases.
 * This schema validates the alias map; per-alias semantics (e.g. `cli` is
 * required when `mode=subscription` + `impl=cli`) are NOT enforced here —
 * they belong to a higher-level cross-field check in Task 2.4 once the
 * alias resolver lands.
 *
 * `.passthrough()` is NOT applied; the alias object stays as-is (default
 * permissive) because future modes may want extra fields. We keep this
 * permissive at the schema layer per the spec "Skill permissive on opaque
 * fields" pattern — model adapters land in later phases.
 *
 * `ModelsConfig` is `z.record(string, ModelAlias).default({})` so an empty
 * `models.yaml` (or no `models.yaml` at all) parses to `{}` — see the
 * out-of-the-box constraint that an empty user config must validate.
 *
 * Imports from: zod only (self-contained per audit constraint).
 * Imported by: src/packs/schemas/index.ts.
 */
import { z } from 'zod';
export declare const ModelMode: z.ZodEnum<["subscription", "api", "local", "mcp"]>;
export type ModelMode = z.infer<typeof ModelMode>;
export declare const ModelImpl: z.ZodEnum<["cli", "sdk"]>;
export type ModelImpl = z.infer<typeof ModelImpl>;
export declare const ModelAlias: z.ZodObject<{
    description: z.ZodDefault<z.ZodString>;
    mode: z.ZodEnum<["subscription", "api", "local", "mcp"]>;
    impl: z.ZodOptional<z.ZodEnum<["cli", "sdk"]>>;
    cli: z.ZodOptional<z.ZodString>;
    args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    sdk: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    provider: z.ZodOptional<z.ZodString>;
    server: z.ZodOptional<z.ZodString>;
    tool: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    args: string[];
    description: string;
    mode: "subscription" | "api" | "local" | "mcp";
    tool?: string | undefined;
    cli?: string | undefined;
    sdk?: string | undefined;
    impl?: "cli" | "sdk" | undefined;
    model?: string | undefined;
    endpoint?: string | undefined;
    provider?: string | undefined;
    server?: string | undefined;
}, {
    mode: "subscription" | "api" | "local" | "mcp";
    tool?: string | undefined;
    args?: string[] | undefined;
    cli?: string | undefined;
    sdk?: string | undefined;
    description?: string | undefined;
    impl?: "cli" | "sdk" | undefined;
    model?: string | undefined;
    endpoint?: string | undefined;
    provider?: string | undefined;
    server?: string | undefined;
}>;
export type ModelAlias = z.infer<typeof ModelAlias>;
export declare const ModelsConfig: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
    description: z.ZodDefault<z.ZodString>;
    mode: z.ZodEnum<["subscription", "api", "local", "mcp"]>;
    impl: z.ZodOptional<z.ZodEnum<["cli", "sdk"]>>;
    cli: z.ZodOptional<z.ZodString>;
    args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    sdk: z.ZodOptional<z.ZodString>;
    model: z.ZodOptional<z.ZodString>;
    endpoint: z.ZodOptional<z.ZodString>;
    provider: z.ZodOptional<z.ZodString>;
    server: z.ZodOptional<z.ZodString>;
    tool: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    args: string[];
    description: string;
    mode: "subscription" | "api" | "local" | "mcp";
    tool?: string | undefined;
    cli?: string | undefined;
    sdk?: string | undefined;
    impl?: "cli" | "sdk" | undefined;
    model?: string | undefined;
    endpoint?: string | undefined;
    provider?: string | undefined;
    server?: string | undefined;
}, {
    mode: "subscription" | "api" | "local" | "mcp";
    tool?: string | undefined;
    args?: string[] | undefined;
    cli?: string | undefined;
    sdk?: string | undefined;
    description?: string | undefined;
    impl?: "cli" | "sdk" | undefined;
    model?: string | undefined;
    endpoint?: string | undefined;
    provider?: string | undefined;
    server?: string | undefined;
}>>>;
export type ModelsConfig = z.infer<typeof ModelsConfig>;
//# sourceMappingURL=models.d.ts.map