/**
 * Zod schema for `team.yaml` — Mode A team-pack manifest extension.
 *
 * Authoritative source: `docs/opensquid-real-design.md` §"Team modes" Mode A
 * + memory `project_opensquid_team_modes` (Mode A = one agent + Agent-tool
 * subagents for profession-instantiation; Mode B = multi-tenant, future).
 *
 * A team pack declares a list of subagent ROLES that the parent agent can
 * spawn via the `spawn_subagent` primitive (Task 6.2). Each role binds:
 *
 *   - `name`           — role identifier the parent references when spawning.
 *   - `pack`           — the profession pack the subagent loads (e.g.
 *                        `profession/code-reviewer`). The subagent's universal
 *                        pinned skills come from its OWN pack set, NOT the
 *                        parent's — see context inheritance (Task 6.3).
 *   - `model_alias`    — model-neutral task-purpose label (e.g. `reasoning`,
 *                        `fast_classifier`). Resolved against the user's
 *                        `models.yaml` at spawn time, never hardcoded to a
 *                        vendor model name.
 *   - `handoff_signal` — optional sentinel string the subagent emits to
 *                        signal completion (e.g. `'REVIEW_COMPLETE'`). Parent
 *                        scans subagent stdout for this signal.
 *   - `instructions`   — optional role-specific system prompt addendum.
 *
 * Model neutrality (per `project_opensquid_model_neutral_subagent_primitive`):
 * `model_alias` is a USER-SUPPLIED alias name, never a concrete vendor model
 * id. The schema validates only that it's a non-empty string — the alias
 * resolution happens at spawn time against the active models config.
 *
 * `.min(1)` on `roles` enforces "a team has at least one role". An empty
 * team pack is a configuration error (no subagents to spawn means the
 * Mode-A orchestration this file exists to support is silently broken).
 *
 * Imports from: zod only (self-contained per audit constraint).
 * Imported by: src/packs/schemas/index.ts.
 */
import { z } from 'zod';
export declare const SubagentRole: z.ZodObject<{
    name: z.ZodString;
    pack: z.ZodString;
    model_alias: z.ZodString;
    handoff_signal: z.ZodOptional<z.ZodString>;
    instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    pack: string;
    model_alias: string;
    handoff_signal?: string | undefined;
    instructions?: string | undefined;
}, {
    name: string;
    pack: string;
    model_alias: string;
    handoff_signal?: string | undefined;
    instructions?: string | undefined;
}>;
export type SubagentRole = z.infer<typeof SubagentRole>;
export declare const Team: z.ZodObject<{
    name: z.ZodString;
    roles: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        pack: z.ZodString;
        model_alias: z.ZodString;
        handoff_signal: z.ZodOptional<z.ZodString>;
        instructions: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        pack: string;
        model_alias: string;
        handoff_signal?: string | undefined;
        instructions?: string | undefined;
    }, {
        name: string;
        pack: string;
        model_alias: string;
        handoff_signal?: string | undefined;
        instructions?: string | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    name: string;
    roles: {
        name: string;
        pack: string;
        model_alias: string;
        handoff_signal?: string | undefined;
        instructions?: string | undefined;
    }[];
}, {
    name: string;
    roles: {
        name: string;
        pack: string;
        model_alias: string;
        handoff_signal?: string | undefined;
        instructions?: string | undefined;
    }[];
}>;
export type Team = z.infer<typeof Team>;
//# sourceMappingURL=team.d.ts.map