/**
 * SKILL.md frontmatter schema — agentskills.io standard + Vauban extensions.
 *
 * Standard fields (agentskills.io spec):
 *   - `name`         1-64 chars, kebab-case
 *   - `description`  1-1024 chars
 *   - `license`      free-text (optional)
 *   - `compatibility` free-text (optional, e.g. "Requires STARKNET_RPC_URL")
 *   - `allowed-tools` space-separated string, e.g. "Bash(curl:*) Bash(jq:*) Read"
 *   - `metadata`     arbitrary k/v map (per spec — extension surface)
 *
 * Vauban extensions live UNDER `metadata` (spec-compliant — ignored gracefully
 * by other agentskills.io-conforming tools). Namespaced as `vauban.*` keys
 * for clarity:
 *   - `metadata.vauban.tier`           "official" | "verified" | "unverified"
 *   - `metadata.vauban.subagent`       agent id this skill belongs to
 *   - `metadata.vauban.model-hint`     suggested LLM (forwarded to EconomyRouter)
 *   - `metadata.vauban.proof.poseidon_hash`  hex
 *   - `metadata.vauban.proof.tsa_token`      base64 RFC3161
 *   - `metadata.vauban.proof.starknet_tx`    hex
 *   - `metadata.vauban.biscuit.required_caps` array of capability strings
 *   - `metadata.vauban.biscuit.max_scope`     "project" | "session" | "global"
 *   - `metadata.vauban.audit_status`   "approved" | "review" | "rejected"
 *
 * Spec reference: https://agentskills.io/specification
 * @see ADR-ECO-034 — skills TS↔MD coexistence
 * @public
 */
import { z } from "zod";
export declare const VaubanSkillTier: z.ZodEnum<["official", "verified", "unverified"]>;
export type VaubanSkillTier = z.infer<typeof VaubanSkillTier>;
export declare const VaubanBiscuitScope: z.ZodEnum<["project", "session", "global"]>;
export type VaubanBiscuitScope = z.infer<typeof VaubanBiscuitScope>;
export declare const VaubanAuditStatus: z.ZodEnum<["approved", "review", "rejected"]>;
export type VaubanAuditStatus = z.infer<typeof VaubanAuditStatus>;
export declare const SkillManifestSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodString;
    license: z.ZodOptional<z.ZodString>;
    compatibility: z.ZodOptional<z.ZodString>;
    "allowed-tools": z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodObject<{
        version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        category: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
        author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-required": z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-mode": z.ZodOptional<z.ZodOptional<z.ZodEnum<["all", "at-least-one"]>>>;
        vauban: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            tier: z.ZodOptional<z.ZodOptional<z.ZodEnum<["official", "verified", "unverified"]>>>;
            subagent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            "model-hint": z.ZodOptional<z.ZodOptional<z.ZodString>>;
            proof: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                poseidon_hash: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                tsa_token: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                starknet_tx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                anchored_at: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }>>>;
            biscuit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                required_caps: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
                max_scope: z.ZodOptional<z.ZodOptional<z.ZodEnum<["project", "session", "global"]>>>;
            }, "strict", z.ZodTypeAny, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }>>>;
            audit_status: z.ZodOptional<z.ZodOptional<z.ZodEnum<["approved", "review", "rejected"]>>>;
            observability_metric: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }>>>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        category: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
        author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-required": z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-mode": z.ZodOptional<z.ZodOptional<z.ZodEnum<["all", "at-least-one"]>>>;
        vauban: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            tier: z.ZodOptional<z.ZodOptional<z.ZodEnum<["official", "verified", "unverified"]>>>;
            subagent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            "model-hint": z.ZodOptional<z.ZodOptional<z.ZodString>>;
            proof: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                poseidon_hash: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                tsa_token: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                starknet_tx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                anchored_at: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }>>>;
            biscuit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                required_caps: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
                max_scope: z.ZodOptional<z.ZodOptional<z.ZodEnum<["project", "session", "global"]>>>;
            }, "strict", z.ZodTypeAny, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }>>>;
            audit_status: z.ZodOptional<z.ZodOptional<z.ZodEnum<["approved", "review", "rejected"]>>>;
            observability_metric: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }>>>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        category: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
        author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-required": z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-mode": z.ZodOptional<z.ZodOptional<z.ZodEnum<["all", "at-least-one"]>>>;
        vauban: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            tier: z.ZodOptional<z.ZodOptional<z.ZodEnum<["official", "verified", "unverified"]>>>;
            subagent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            "model-hint": z.ZodOptional<z.ZodOptional<z.ZodString>>;
            proof: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                poseidon_hash: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                tsa_token: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                starknet_tx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                anchored_at: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }>>>;
            biscuit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                required_caps: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
                max_scope: z.ZodOptional<z.ZodOptional<z.ZodEnum<["project", "session", "global"]>>>;
            }, "strict", z.ZodTypeAny, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }>>>;
            audit_status: z.ZodOptional<z.ZodOptional<z.ZodEnum<["approved", "review", "rejected"]>>>;
            observability_metric: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }>>>;
    }, z.ZodTypeAny, "passthrough">>>;
}, "strict", z.ZodTypeAny, {
    name: string;
    description: string;
    metadata?: z.objectOutputType<{
        version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        category: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
        author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-required": z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-mode": z.ZodOptional<z.ZodOptional<z.ZodEnum<["all", "at-least-one"]>>>;
        vauban: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            tier: z.ZodOptional<z.ZodOptional<z.ZodEnum<["official", "verified", "unverified"]>>>;
            subagent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            "model-hint": z.ZodOptional<z.ZodOptional<z.ZodString>>;
            proof: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                poseidon_hash: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                tsa_token: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                starknet_tx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                anchored_at: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }>>>;
            biscuit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                required_caps: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
                max_scope: z.ZodOptional<z.ZodOptional<z.ZodEnum<["project", "session", "global"]>>>;
            }, "strict", z.ZodTypeAny, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }>>>;
            audit_status: z.ZodOptional<z.ZodOptional<z.ZodEnum<["approved", "review", "rejected"]>>>;
            observability_metric: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }>>>;
    }, z.ZodTypeAny, "passthrough"> | undefined;
    license?: string | undefined;
    compatibility?: string | undefined;
    "allowed-tools"?: string | undefined;
}, {
    name: string;
    description: string;
    metadata?: z.objectInputType<{
        version: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        category: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        tags: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>>;
        author: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-required": z.ZodOptional<z.ZodOptional<z.ZodString>>;
        "env-mode": z.ZodOptional<z.ZodOptional<z.ZodEnum<["all", "at-least-one"]>>>;
        vauban: z.ZodOptional<z.ZodOptional<z.ZodObject<{
            tier: z.ZodOptional<z.ZodOptional<z.ZodEnum<["official", "verified", "unverified"]>>>;
            subagent: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            "model-hint": z.ZodOptional<z.ZodOptional<z.ZodString>>;
            proof: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                poseidon_hash: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                tsa_token: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                starknet_tx: z.ZodOptional<z.ZodOptional<z.ZodString>>;
                anchored_at: z.ZodOptional<z.ZodOptional<z.ZodString>>;
            }, "strict", z.ZodTypeAny, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }, {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            }>>>;
            biscuit: z.ZodOptional<z.ZodOptional<z.ZodObject<{
                required_caps: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
                max_scope: z.ZodOptional<z.ZodOptional<z.ZodEnum<["project", "session", "global"]>>>;
            }, "strict", z.ZodTypeAny, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }, {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            }>>>;
            audit_status: z.ZodOptional<z.ZodOptional<z.ZodEnum<["approved", "review", "rejected"]>>>;
            observability_metric: z.ZodOptional<z.ZodOptional<z.ZodString>>;
        }, "strict", z.ZodTypeAny, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }, {
            proof?: {
                poseidon_hash?: string | undefined;
                tsa_token?: string | undefined;
                starknet_tx?: string | undefined;
                anchored_at?: string | undefined;
            } | undefined;
            tier?: "verified" | "unverified" | "official" | undefined;
            subagent?: string | undefined;
            "model-hint"?: string | undefined;
            biscuit?: {
                required_caps?: string[] | undefined;
                max_scope?: "session" | "project" | "global" | undefined;
            } | undefined;
            audit_status?: "rejected" | "approved" | "review" | undefined;
            observability_metric?: string | undefined;
        }>>>;
    }, z.ZodTypeAny, "passthrough"> | undefined;
    license?: string | undefined;
    compatibility?: string | undefined;
    "allowed-tools"?: string | undefined;
}>;
export type SkillManifest = z.infer<typeof SkillManifestSchema>;
/**
 * Resolve the Vauban tier from a manifest, defaulting to `unverified` per
 * the trust-stratification rule: any skill without an explicit tier MUST be
 * sandboxed as community-untrusted.
 */
export declare function resolveTier(manifest: SkillManifest): VaubanSkillTier;
/**
 * Parse the space-separated `allowed-tools` string into an array. Empty string
 * returns []. Whitespace runs collapse. Examples:
 *   "Bash(curl:*) Read"      → ["Bash(curl:*)", "Read"]
 *   "Bash(curl:*)  Bash(jq)" → ["Bash(curl:*)", "Bash(jq)"]
 */
export declare function parseAllowedTools(manifest: SkillManifest): string[];
//# sourceMappingURL=schema.d.ts.map