/** Fluent JSON Schema builders following the classic Workers schema-builder API. */ declare const SCHEMA: unique symbol; declare const KIND: unique symbol; declare const VALUE: unique symbol; export type StringFormat = "date-time" | "date" | "time" | "duration" | "email" | "hostname" | "ipv4" | "ipv6" | "uuid"; type Kind = "object" | "value"; type JsonSchema = { title?: string; description?: string; } & ({ type: "string" | "number" | "integer" | "boolean" | "null"; enum?: readonly (string | number)[]; format?: StringFormat; } | { type: "array"; items: JsonSchema; minItems?: 0 | 1; } | { type: "object"; properties: Record; required: string[]; additionalProperties: false; } | { anyOf: JsonSchema[]; }); export interface SchemaBuilder { readonly [SCHEMA]: JsonSchema; readonly [KIND]: K; readonly [VALUE]?: T; describe(text: string): SchemaBuilder; label(text: string): SchemaBuilder; nullable(): SchemaBuilder; } export type Infer = S extends SchemaBuilder ? T : never; /** Returns a copy so callers cannot mutate the builder's validation contract. */ export declare function getSchema(builder: SchemaBuilder): JsonSchema; declare function string(): SchemaBuilder; declare function number(): SchemaBuilder; declare function integer(): SchemaBuilder; declare function boolean(): SchemaBuilder; declare function enumBuilder(first: T, ...rest: T[]): SchemaBuilder; declare function enumBuilder(first: T, ...rest: T[]): SchemaBuilder; declare function array(items: SchemaBuilder, options?: { minItems?: 0 | 1; }): SchemaBuilder; declare function object

>>(properties: P): SchemaBuilder<{ -readonly [K in keyof P]: Infer; }, "object">; export declare const j: { string: typeof string; number: typeof number; integer: typeof integer; boolean: typeof boolean; enum: typeof enumBuilder; array: typeof array; object: typeof object; datetime: () => SchemaBuilder; date: () => SchemaBuilder; time: () => SchemaBuilder; duration: () => SchemaBuilder; email: () => SchemaBuilder; hostname: () => SchemaBuilder; ipv4: () => SchemaBuilder; ipv6: () => SchemaBuilder; uuid: () => SchemaBuilder; }; export {}; //# sourceMappingURL=schema-builder.d.ts.map