import type { M } from "ts-algebra"; import type { DeserializationPattern, JSONSchema } from "../definitions"; import type { ParseSchemaOptions } from "./index"; export type DeserializeSchema & { deserialize: DeserializationPattern[]; }> = RecurseOnDeserializationPatterns; type RecurseOnDeserializationPatterns = DESERIALIZATION_PATTERNS extends [ infer DESERIALIZATION_PATTERNS_HEAD, ...infer DESERIALIZATION_PATTERNS_TAIL ] ? DESERIALIZATION_PATTERNS_HEAD extends DeserializationPattern ? DESERIALIZATION_PATTERNS_TAIL extends DeserializationPattern[] ? RecurseOnDeserializationPatterns, RESULT> : RESULT> : never : never : RESULT; export {};