import { BooleanJsonSchema } from './BooleanJsonSchema'; import { NumberJsonSchema } from './NumberJsonSchema'; import { ObjectJsonSchema } from './ObjectJsonSchema'; import { StringJsonSchema } from './StringJsonSchema'; import { PrimitiveOrFromJsonSchema } from './PrimitiveOrFromJsonSchema'; import { FromObjectJsonSchema } from './FromObjectJsonSchema'; import { ArrayJsonSchema } from './ArrayJsonSchema'; import { EnumJsonSchemaOf } from './EnumJsonSchemaOf'; import { FromMapJsonSchema, MapJsonSchema } from './MapJsonSchema'; import { DateJsonSchema } from './DateJsonSchema'; export type FromJsonSchema = T extends DateJsonSchema ? string : T extends StringJsonSchema ? string : T extends NumberJsonSchema ? number : T extends BooleanJsonSchema ? boolean : T extends EnumJsonSchemaOf ? PrimitiveOrFromJsonSchema

: T extends ObjectJsonSchema ? FromObjectJsonSchema : T extends MapJsonSchema ? FromMapJsonSchema : T extends ArrayJsonSchema ? FromJsonSchema[] : never;