import * as Types from '../typebox'; export declare type TExtends = Types.Static extends Types.Static ? T : U; export interface TExclude extends Types.TUnion { static: Exclude, Types.Static>; } export interface TExtract extends Types.TUnion { static: Extract, Types.Static>; } /** Conditional Types */ export declare namespace Conditional { /** (Experimental) Creates a conditional expression type */ function Extends(left: L, right: R, ok: T, fail: U): TExtends; /** (Experimental) Constructs a type by excluding from UnionType all union members that are assignable to ExcludedMembers. */ function Exclude(unionType: T, excludedMembers: U, options?: Types.SchemaOptions): TExclude; /** (Experimental) Constructs a type by extracting from Type all union members that are assignable to Union. */ function Extract(type: T, union: U, options?: Types.SchemaOptions): TExtract; }