import { type TProperties } from '../types/properties.mjs'; import { type TSchema } from '../types/schema.mjs'; import { type TUnion } from '../types/union.mjs'; import { type TExtendsLeft } from './extends_left.mjs'; import * as Result from './result.mjs'; import { type TInferable, type TTryInferable, type TInferUnionResult } from './inference.mjs'; type TExtendsUnionSome = (UnionTypes extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsLeft extends Result.TExtendsTrueLike ? Result.TExtendsTrue : TExtendsUnionSome : Result.TExtendsFalse); type TExtendsUnionLeft = (Left extends [infer Head extends TSchema, ...infer Tail extends TSchema[]] ? TExtendsUnionSome extends Result.TExtendsTrueLike ? TExtendsUnionLeft : Result.TExtendsFalse : Result.TExtendsTrue); export type TExtendsUnion> = (Inferrable extends TInferable ? TInferUnionResult : Right extends TUnion ? TExtendsUnionLeft : TExtendsUnionLeft); export declare function ExtendsUnion(inferred: Inferred, left: [...Left], right: Right): TExtendsUnion; export {};