/// import { JSONSchema4, JSONSchema4Type, JSONSchema4TypeName } from 'json-schema'; export type SchemaType = 'ALL_OF' | 'UNNAMED_SCHEMA' | 'ANY' | 'ANY_OF' | 'BOOLEAN' | 'NAMED_ENUM' | 'NAMED_SCHEMA' | 'NEVER' | 'NULL' | 'NUMBER' | 'STRING' | 'OBJECT' | 'ONE_OF' | 'TYPED_ARRAY' | 'REFERENCE' | 'UNION' | 'UNNAMED_ENUM' | 'UNTYPED_ARRAY' | 'CUSTOM_TYPE'; export type JSONSchemaTypeName = JSONSchema4TypeName; export type JSONSchemaType = JSONSchema4Type; export interface JSONSchema extends JSONSchema4 { /** * schema extension to support numeric enums */ tsEnumNames?: string[]; /** * schema extension to support custom types */ tsType?: string; /** * property exists at least in https://json-schema.org/draft/2019-09/json-schema-validation.html#rfc.section.9.3 */ deprecated?: boolean; } export declare const Parent: unique symbol; export interface LinkedJSONSchema extends JSONSchema { /** * A reference to this schema's parent node, for convenience. * `null` when this is the root schema. */ [Parent]: LinkedJSONSchema | null; additionalItems?: boolean | LinkedJSONSchema; additionalProperties?: boolean | LinkedJSONSchema; items?: LinkedJSONSchema | LinkedJSONSchema[]; definitions?: { [k: string]: LinkedJSONSchema; }; properties?: { [k: string]: LinkedJSONSchema; }; patternProperties?: { [k: string]: LinkedJSONSchema; }; dependencies?: { [k: string]: LinkedJSONSchema | string[]; }; allOf?: LinkedJSONSchema[]; anyOf?: LinkedJSONSchema[]; oneOf?: LinkedJSONSchema[]; not?: LinkedJSONSchema; } export declare const Types: unique symbol; export declare const Intersection: unique symbol; /** * Normalized JSON schema. * * Note: `definitions` and `id` are removed by the normalizer. Use `$defs` and `$id` instead. */ export interface NormalizedJSONSchema extends Omit { [Intersection]?: NormalizedJSONSchema; [Parent]: NormalizedJSONSchema | null; [Types]: ReadonlySet; additionalItems?: boolean | NormalizedJSONSchema; additionalProperties: boolean | NormalizedJSONSchema; extends?: string[]; items?: NormalizedJSONSchema | NormalizedJSONSchema[]; $defs?: { [k: string]: NormalizedJSONSchema; }; properties?: { [k: string]: NormalizedJSONSchema; }; patternProperties?: { [k: string]: NormalizedJSONSchema; }; dependencies?: { [k: string]: NormalizedJSONSchema | string[]; }; allOf?: NormalizedJSONSchema[]; anyOf?: NormalizedJSONSchema[]; oneOf?: NormalizedJSONSchema[]; not?: NormalizedJSONSchema; required: string[]; } export interface EnumJSONSchema extends NormalizedJSONSchema { enum: JSONSchema4Type[]; } export interface NamedEnumJSONSchema extends NormalizedJSONSchema { tsEnumNames: string[]; } export interface SchemaSchema extends NormalizedJSONSchema { properties: { [k: string]: NormalizedJSONSchema; }; required: string[]; } export interface JSONSchemaWithDefinitions extends NormalizedJSONSchema { $defs: { [k: string]: NormalizedJSONSchema; }; } export interface CustomTypeJSONSchema extends NormalizedJSONSchema { tsType: string; } export declare const getRootSchema: ((schema: NormalizedJSONSchema) => NormalizedJSONSchema) & import("lodash").MemoizedFunction; export declare function isBoolean(schema: LinkedJSONSchema | JSONSchemaType): schema is boolean; export declare function isPrimitive(schema: LinkedJSONSchema | JSONSchemaType): schema is JSONSchemaType; export declare function isCompound(schema: JSONSchema): boolean;