import { Type } from "./type"; export declare const JSON_SCHEMA_VERSION: "https://json-schema.org/draft/2020-12/schema"; type TopLevel = T & { $schema: typeof JSON_SCHEMA_VERSION; title: string; }; type Annotated = T & { description?: string; }; export type JSONValue = null | string | number | boolean | Array | { [key: string]: JSONValue; }; export type JSONSchema = Annotated<{ type: "string"; }> | Annotated<{ type: "number"; }> | Annotated<{ type: "boolean"; }> | Annotated<{ type: "null"; }> | Annotated<{}> | Annotated<{ type: "object"; required: string[]; properties: { [key: string]: JSONSchema; }; additionalProperties?: false | JSONSchema; }> | Annotated<{ type: "object"; properties: {}; additionalProperties?: JSONSchema; }> | Annotated<{ type: "array"; items?: JSONSchema; }> | Annotated<{ allOf: JSONSchema[]; }> | Annotated<{ anyOf: JSONSchema[]; }> | Annotated<{ enum: Array; }> | Annotated<{ const: JSONValue; }>; type Options = { errorOnValidations?: boolean; errorOnIs?: boolean; errorOnNever?: boolean; }; export declare function toJSONSchema(title: string, type: Type, opts?: Options): TopLevel; export {};