import { type StaticType, type StaticDirection } from './static.mjs'; import { type TSchema, type TSchemaOptions } from './schema.mjs'; import { type TProperties } from './properties.mjs'; export type StaticUnion = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? StaticUnion> : Result); /** Represents a logical Union type. */ export interface TUnion extends TSchema { '~kind': 'Union'; anyOf: Types; } /** Creates a Union type. */ export declare function Union(anyOf: [...Types], options?: TSchemaOptions): TUnion; /** Returns true if the given value is TUnion. */ export declare function IsUnion(value: unknown): value is TUnion; /** Extracts options from a TUnion. */ export declare function UnionOptions(type: TUnion): TSchemaOptions;