/**
 * Subagent template schema — types, validation, and schema descriptor.
 *
 * Templates are user-authored YAML, so validation is manual (not TypeBox).
 */
export type SubagentTemplate = {
    version: number;
    name: string;
    description: string;
    icon?: string;
    color?: string;
    tags?: string[];
    model?: string | {
        primary: string;
        fallbacks?: string[];
    };
    thinking?: string;
    tools?: {
        allow?: string[];
        deny?: string[];
    };
    skills?: string[];
    systemPrompt?: string;
    runtime?: {
        timeoutSeconds?: number;
        cleanup?: "delete" | "keep";
        maxSpawnDepth?: number;
    };
    env?: Record<string, string>;
    /** When true, template can only be used inside orchestrations (standalone spawn rejected). */
    orchestrationOnly?: boolean;
};
export type ResolvedTemplate = SubagentTemplate & {
    /** Filesystem path or "embedded" for built-in templates. */
    source: string;
    /** Tracks which _base.yaml files were merged (paths, deepest-first). */
    resolvedFrom?: string[];
};
export type ValidationResult = {
    valid: boolean;
    template?: SubagentTemplate;
    warnings: string[];
    errors: string[];
};
export declare const TemplateSchema: {
    readonly required: readonly ["version", "name", "description"];
    readonly optional: readonly ["icon", "color", "tags", "model", "thinking", "tools", "skills", "systemPrompt", "runtime", "env", "orchestrationOnly"];
    readonly sensitiveEnvPattern: string;
};
export declare function validateTemplate(raw: unknown): ValidationResult;
