import { JSONSchema7Type, JSONSchema7TypeName } from 'json-schema' export type TypeName = JSONSchema7TypeName export type JsonType = JSONSchema7Type export type CommonType = { ignoreUnusedValues?: true ignoreUnusedProperty?: true } export type AnyType = { type: 'null' | 'object' $ref?: string } export type BooleanType = { type: 'boolean' } export type StringType = { type: 'string' $ref?: string id?: true multiple?: true minLength?: number maxLength?: number pattern?: string } export type NumberType = { type: 'number' | 'integer' $ref?: string id?: true multiple?: true minimum?: number exclusiveMinimum?: number maximum?: number exclusiveMaximum?: number } export type EnumType = { type: 'string' ignoreUnusedValues?: true enum: Array } export type ObjectType = { type: 'object' required: string[] properties: ObjectProperties } export type ArrayType = { type: 'array' minItems?: number maxItems?: number items: ItemsType & CommonType } export type ItemsType = StringType | BooleanType | NumberType | EnumType | ObjectType | AnyType export type ValueType = StringType | BooleanType | NumberType | EnumType | ObjectType | ArrayType | AnyType export type Schema = ValueType & CommonType export type ObjectProperties = { [key: string]: Schema } export type RootSchema = { $ref: string definitions: { [key: string]: ObjectType | EnumType } }