export declare enum DataType { Array = "array", Boolean = "boolean", Integer = "integer", Object = "object", Null = "null", Number = "number", String = "string" } declare enum SchemaVersion { Draft4 = "http://json-schema.org/draft-04/schema#", Draft6 = "http://json-schema.org/draft-06/schema#", Draft7 = "http://json-schema.org/draft-07/schema#", Draft2019_09 = "https://json-schema.org/draft/2019-09/schema" } declare enum StringFormat { Date = "date", DateTime = "date-time", Duration = "duration", Email = "email", IdnEmail = "idn-email", Time = "time" } export default interface RootJsonSchema { $id: string; $schema: SchemaVersion; } interface BaseDataTypeSchema { description?: string; title?: string; format?: string; } export interface ArrayTypeSchema extends BaseDataTypeSchema { type: DataType.Array; items: { type: DataType; }; } export interface BooleanTypeSchema extends BaseDataTypeSchema { type: DataType.Boolean; anyOf?: BooleanTypeSchema[]; enum?: boolean[]; } export interface IntegerTypeSchema extends BaseDataTypeSchema { type: DataType.Integer; anyOf?: NumberTypeSchema[]; enum?: number[]; } export interface ObjectTypeSchema extends BaseDataTypeSchema { type: DataType.Object; properties: Record; required?: string[]; } export interface NullTypeSchema extends BaseDataTypeSchema { type: DataType.Null; } export interface NumberTypeSchema extends BaseDataTypeSchema { type: DataType.Number; anyOf?: NumberTypeSchema[]; enum?: number[]; } export interface StringTypeSchema extends BaseDataTypeSchema { type: DataType.String; format?: StringFormat; anyOf?: StringTypeSchema[]; enum?: string[]; } export declare type JsonTypeSchema = ArrayTypeSchema | BooleanTypeSchema | IntegerTypeSchema | ObjectTypeSchema | NullTypeSchema | NumberTypeSchema | StringTypeSchema; interface RootArrayTypeSchema extends RootJsonSchema, ArrayTypeSchema { } interface RootBooleanTypeSchema extends RootJsonSchema, BooleanTypeSchema { } interface RootIntegerTypeSchema extends RootJsonSchema, IntegerTypeSchema { } interface RootObjectTypeSchema extends RootJsonSchema, ObjectTypeSchema { } interface RootNullTypeSchema extends RootJsonSchema, NullTypeSchema { } interface RootNumberTypeSchema extends RootJsonSchema, NumberTypeSchema { } interface RootStringTypeSchema extends RootJsonSchema, StringTypeSchema { } export declare type JsonSchema = RootArrayTypeSchema | RootBooleanTypeSchema | RootIntegerTypeSchema | RootObjectTypeSchema | RootNullTypeSchema | RootNumberTypeSchema | RootStringTypeSchema; export {}; //# sourceMappingURL=json-schema.d.ts.map