import type { Schema, SchemaKey, Value } from "@featurevisor/types"; import { z } from "zod"; type SchemaLike = { type?: string; enum?: unknown[]; const?: unknown; minimum?: number; maximum?: number; minLength?: number; maxLength?: number; pattern?: string; minItems?: number; maxItems?: number; uniqueItems?: boolean; items?: unknown; properties?: Record; additionalProperties?: unknown; oneOf?: unknown[]; }; /** * Recursively validates that when a schema has both `type` and `enum`, every enum value matches the type. * Also recurses into oneOf branches. */ export declare function refineEnumMatchesType(schema: SchemaLike, pathPrefix: (string | number)[], ctx: z.RefinementCtx): void; /** * Validates that when a schema has type "integer" or "double", minimum <= maximum when both set, * and const/enum values (if present) fall within the range. */ export declare function refineMinimumMaximum(schema: SchemaLike, pathPrefix: (string | number)[], ctx: z.RefinementCtx): void; /** * Validates that when a schema has type "string", minLength <= maxLength when both set, * pattern is a valid RegExp (if set), and const/enum string values satisfy length and pattern. */ export declare function refineStringLengthPattern(schema: SchemaLike, pathPrefix: (string | number)[], ctx: z.RefinementCtx): void; /** * Validates that when a schema has type "array", minItems <= maxItems when both set, * and const/enum array values (if present) satisfy length and uniqueItems. */ export declare function refineArrayItems(schema: SchemaLike, pathPrefix: (string | number)[], ctx: z.RefinementCtx): void; export declare const valueZodSchema: z.ZodType; export declare const propertyTypeEnum: z.ZodEnum<{ string: "string"; boolean: "boolean"; object: "object"; integer: "integer"; double: "double"; array: "array"; }>; export declare function getSchemaZodSchema(schemaKeys?: SchemaKey[]): z.ZodType>; export {};