import type { M } from "ts-algebra"; import type { JSONSchema } from "../definitions"; import type { ParseSchema, ParseSchemaOptions } from "./index"; import type { MergeSubSchema } from "./utils"; export type AllOfSchema = JSONSchema & Readonly<{ allOf: readonly JSONSchema[]; }>; export type ParseAllOfSchema = RecurseOnAllOfSchema, OPTIONS>>; type RecurseOnAllOfSchema = SUB_SCHEMAS extends readonly [ infer SUB_SCHEMAS_HEAD, ...infer SUB_SCHEMAS_TAIL ] ? SUB_SCHEMAS_HEAD extends JSONSchema ? SUB_SCHEMAS_TAIL extends readonly JSONSchema[] ? RecurseOnAllOfSchema, SUB_SCHEMAS_HEAD>, OPTIONS>, PARSED_ROOT_ALL_OF_SCHEMA>> : never : never : PARSED_ROOT_ALL_OF_SCHEMA; export {};