/** * @oshon-ai/primitives — component manifest contract. * * Ported verbatim from MCP_SCHEMA.md §6. Every shipping component in * `@oshon-ai/primitives` and `@oshon-ai/components` declares a manifest * validated against `ComponentManifestSchema` at test time; downstream * tooling (MCP server, Figma Code Connect, docs generator, Skills bundle) * consumes the same schema to render the component without hand-rolled * metadata per surface. * * This is principle #8 ("manifest-driven") and principle #9 ("trust- * boundary Zod") from the Oshon engineering principles. */ import { z } from 'zod'; /** Six density regimes defined by ARCHITECTURE.md §8 principle #1. */ export declare const DENSITY_REGIMES: readonly ["card", "standard", "paginated", "virtualized", "server", "infinite"]; export declare const ComponentManifestSchema: z.ZodObject<{ name: z.ZodString; package: z.ZodString; version: z.ZodString; license: z.ZodEnum<["MIT", "commercial"]>; purpose: z.ZodString; dataShape: z.ZodOptional; }, "strip", z.ZodTypeAny, { primary: string; secondary?: string | undefined; }, { primary: string; secondary?: string | undefined; }>>; densitySupport: z.ZodOptional, "many">>; permissionsRequired: z.ZodDefault>; permissionsOptional: z.ZodDefault>; auditEvents: z.ZodDefault>; a11y: z.ZodObject<{ wcagLevel: z.ZodString; keyboardMap: z.ZodString; screenReadersTested: z.ZodArray; lastAudit: z.ZodString; }, "strip", z.ZodTypeAny, { wcagLevel: string; keyboardMap: string; screenReadersTested: string[]; lastAudit: string; }, { wcagLevel: string; keyboardMap: string; screenReadersTested: string[]; lastAudit: string; }>; variants: z.ZodDefault, "many">>; slots: z.ZodDefault, "many">>; doExamples: z.ZodDefault, "many">>; dontExamples: z.ZodDefault, "many">>; figmaNode: z.ZodOptional; designRationale: z.ZodString; relatedComponents: z.ZodDefault>; breakingChanges: z.ZodDefault, "many">>; }, "strip", z.ZodTypeAny, { name: string; version: string; package: string; license: "MIT" | "commercial"; purpose: string; permissionsRequired: string[]; permissionsOptional: string[]; auditEvents: string[]; a11y: { wcagLevel: string; keyboardMap: string; screenReadersTested: string[]; lastAudit: string; }; variants: { name: string; description: string; }[]; slots: { name: string; description: string; }[]; doExamples: { label: string; code: string; }[]; dontExamples: { label: string; code: string; why: string; }[]; designRationale: string; relatedComponents: string[]; breakingChanges: { version: string; change: string; migration: string; }[]; dataShape?: { primary: string; secondary?: string | undefined; } | undefined; densitySupport?: ("card" | "standard" | "paginated" | "virtualized" | "server" | "infinite")[] | undefined; figmaNode?: string | undefined; }, { name: string; version: string; package: string; license: "MIT" | "commercial"; purpose: string; a11y: { wcagLevel: string; keyboardMap: string; screenReadersTested: string[]; lastAudit: string; }; designRationale: string; dataShape?: { primary: string; secondary?: string | undefined; } | undefined; densitySupport?: ("card" | "standard" | "paginated" | "virtualized" | "server" | "infinite")[] | undefined; permissionsRequired?: string[] | undefined; permissionsOptional?: string[] | undefined; auditEvents?: string[] | undefined; variants?: { name: string; description: string; }[] | undefined; slots?: { name: string; description: string; }[] | undefined; doExamples?: { label: string; code: string; }[] | undefined; dontExamples?: { label: string; code: string; why: string; }[] | undefined; figmaNode?: string | undefined; relatedComponents?: string[] | undefined; breakingChanges?: { version: string; change: string; migration: string; }[] | undefined; }>; export type ComponentManifest = z.infer; export type ComponentManifestInput = z.input; /** * Validate a manifest and throw a descriptive error if it fails. Designed * for `scripts/validate-manifests.mjs` and per-primitive tests — failures * carry the full Zod issue list so the author knows exactly what's wrong. */ export declare function assertValidManifest(manifest: unknown, context: string): ComponentManifest; //# sourceMappingURL=manifest-schema.d.ts.map