import type { FormElement, FormSpec } from "@formspec/core"; import type { ConstraintConfig, ValidationResult } from "../types.js"; /** * Options for validating FormSpec elements. * * @public */ export interface FormSpecValidationOptions { /** Constraint configuration (will be merged with defaults) */ constraints?: ConstraintConfig; } /** * Validates FormSpec elements against constraints. * * This is the main entry point for validating a form specification * against a constraint configuration. It walks through all elements * and checks each one against the configured constraints. * * @param elements - FormSpec elements to validate * @param options - Validation options including constraints * @returns Validation result with all issues found * * @example * ```ts * import { formspec, field, group } from '@formspec/dsl'; * import { validateFormSpecElements, defineConstraints } from '@formspec/config'; * * const form = formspec( * group("Contact", * field.text("name"), * field.dynamicEnum("country", "countries"), * ), * ); * * const result = validateFormSpecElements(form.elements, { * constraints: { * fieldTypes: { dynamicEnum: 'error' }, * layout: { group: 'error' }, * }, * }); * * if (!result.valid) { * console.error('Validation failed:', result.issues); * } * ``` * * @public */ export declare function validateFormSpecElements(elements: readonly FormElement[], options?: FormSpecValidationOptions): ValidationResult; /** * Validates a complete FormSpec against constraints. * * @param formSpec - The FormSpec to validate * @param options - Validation options including constraints * @returns Validation result with all issues found * * @public */ export declare function validateFormSpec(formSpec: FormSpec, options?: FormSpecValidationOptions): ValidationResult; //# sourceMappingURL=formspec.d.ts.map