import type { XSchema } from '../types/schema.mjs'; import type { XStaticSchema } from './schema.mjs'; import type { XIf } from '../types/if.mjs'; import type { XElse } from '../types/else.mjs'; import type { XThen } from '../types/then.mjs'; export type XStaticIf, Then extends unknown = Schema extends XThen ? XStaticSchema : never, Else extends unknown = Schema extends XElse ? XStaticSchema : never, IsThen extends boolean = Schema extends XThen ? true : false, IsElse extends boolean = Schema extends XElse ? true : false, Result extends unknown = ([ IsThen, IsElse ] extends [true, true] ? (If & Then) | Exclude : [ IsThen, IsElse ] extends [true, false] ? (If & Then) : [ IsThen, IsElse ] extends [false, true] ? Exclude : unknown)> = Result;