/** * DesignIntent — versioned, validated user requirements model. * * A DesignIntent captures what the user wants to build at a high level: * project goal, functional blocks, electrical requirements, power rails, * mechanical constraints, manufacturing intent, and safety/regulatory notes. * * DesignIntent is the **input** to the compile pipeline. It is compiled * into a CircuitIR (the validated, machine-readable source of truth) which * downstream EasyEDA tools consume. * * @schema design-intent/v1 */ import { z } from 'zod'; import { BoardType } from './types.js'; export declare const DESIGN_INTENT_SCHEMA_VERSION = "design-intent/v1"; export declare const DesignIntentSchema: z.ZodObject<{ $schema: z.ZodDefault>; project: z.ZodObject<{ name: z.ZodString; goal: z.ZodString; boardType: z.ZodEnum; }, z.core.$strip>; requirements: z.ZodObject<{ functionalBlocks: z.ZodArray; }, z.core.$strip>>; electrical: z.ZodDefault; vinMax: z.ZodOptional; currentMaxAmps: z.ZodOptional; frequencyMaxHz: z.ZodOptional; notes: z.ZodOptional; }, z.core.$strip>>; power: z.ZodObject<{ rails: z.ZodArray; maxCurrentAmps: z.ZodOptional; description: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; mechanical: z.ZodDefault; heightMm: z.ZodOptional; layers: z.ZodOptional; mountingHoles: z.ZodOptional; notes: z.ZodOptional; }, z.core.$strip>>; manufacturing: z.ZodDefault>; process: z.ZodOptional>; timelineWeeks: z.ZodOptional; notes: z.ZodOptional; }, z.core.$strip>>; safety: z.ZodDefault; certifications: z.ZodOptional>; regulatory: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; assumptions: z.ZodDefault>; unknowns: z.ZodDefault>; metadata: z.ZodOptional>; createdAt: z.ZodOptional; }, z.core.$strip>>; referenceDesign: z.ZodOptional; usbRole: z.ZodDefault>; isolation: z.ZodDefault>; inputVoltage: z.ZodDefault; inputCurrentAmps: z.ZodDefault; rs485BusVoltage: z.ZodDefault; terminationOhms: z.ZodDefault; biasResistorOhms: z.ZodDefault; usbDataRateMbps: z.ZodDefault; isolationClearanceMm: z.ZodDefault; notes: z.ZodDefault>; }, z.core.$strip>>; }, z.core.$strict>; export type DesignIntent = z.infer; /** * Parse and validate an unknown input as a DesignIntent. * * Returns the validated DesignIntent on success. * Throws `CircuitError` with structured errors on failure. */ export declare function validateDesignIntent(input: unknown): DesignIntent; /** * Type guard: check whether an unknown value is a valid DesignIntent. */ export declare function isDesignIntent(value: unknown): value is DesignIntent;