import { z } from 'zod'; /** * Canonical spec id pattern. Lowercase alphanumeric kebab-case, must start * with a letter. Used to validate `depends-on` entries in `lintSpec`; not * retroactively enforced on `SpecFrontmatter.id` itself. */ export declare const KEBAB_ID_REGEX: RegExp; export declare const SpecClassificationSchema: z.ZodEnum<["light", "deep"]>; export type SpecClassification = z.infer; export declare const SpecTypeSchema: z.ZodEnum<["feat", "fix", "refactor", "chore", "perf"]>; export type SpecType = z.infer; export declare const SpecStatusSchema: z.ZodEnum<["ready", "drafting", "blocked"]>; export type SpecStatus = z.infer; export declare const SpecExemplarSchema: z.ZodObject<{ path: z.ZodString; why: z.ZodString; }, "strict", z.ZodTypeAny, { path: string; why: string; }, { path: string; why: string; }>; export type SpecExemplar = z.infer; export declare const SpecFrontmatterSchema: z.ZodObject<{ id: z.ZodString; classification: z.ZodEnum<["light", "deep"]>; type: z.ZodEnum<["feat", "fix", "refactor", "chore", "perf"]>; status: z.ZodEnum<["ready", "drafting", "blocked"]>; exemplars: z.ZodDefault, "many">>; 'depends-on': z.ZodDefault>; 'agent-timeout-ms': z.ZodOptional; }, "strict", z.ZodTypeAny, { type: "feat" | "fix" | "refactor" | "chore" | "perf"; status: "ready" | "drafting" | "blocked"; id: string; classification: "light" | "deep"; exemplars: { path: string; why: string; }[]; 'depends-on': string[]; 'agent-timeout-ms'?: number | undefined; }, { type: "feat" | "fix" | "refactor" | "chore" | "perf"; status: "ready" | "drafting" | "blocked"; id: string; classification: "light" | "deep"; exemplars?: { path: string; why: string; }[] | undefined; 'depends-on'?: string[] | undefined; 'agent-timeout-ms'?: number | undefined; }>; export type SpecFrontmatter = z.infer; export declare const SpecScenarioSatisfactionKindSchema: z.ZodEnum<["test", "judge"]>; export type SpecScenarioSatisfactionKind = z.infer; export declare const SpecScenarioSatisfactionSchema: z.ZodObject<{ kind: z.ZodEnum<["test", "judge"]>; value: z.ZodString; line: z.ZodNumber; }, "strict", z.ZodTypeAny, { value: string; kind: "test" | "judge"; line: number; }, { value: string; kind: "test" | "judge"; line: number; }>; export type ScenarioSatisfaction = z.infer; export declare const SpecScenarioKindSchema: z.ZodEnum<["scenario", "holdout"]>; export type SpecScenarioKind = z.infer; export interface Scenario { id: string; name: string; given: string; when: string; then: string; satisfaction: ScenarioSatisfaction[]; line: number; kind: SpecScenarioKind; } export interface Spec { frontmatter: SpecFrontmatter; body: string; scenarios: Scenario[]; holdouts: Scenario[]; raw: { source: string; filename?: string; }; } //# sourceMappingURL=schema.d.ts.map