import type { TSchema, SchemaOptions } from '../schema/index'; import type { UnionToTuple, AssertRest, AssertType } from '../helpers/index'; import type { TMappedResult } from '../mapped/index'; import { type TTemplateLiteral } from '../template-literal/index'; import { type TUnion } from '../union/index'; import { type TNever } from '../never/index'; import { type Static } from '../static/index'; import { type TUnionEvaluated } from '../union/index'; import { type TExcludeFromMappedResult } from './exclude-from-mapped-result'; import { type TExcludeFromTemplateLiteral } from './exclude-from-template-literal'; type TExcludeRest = AssertRest> extends Static ? never : L[K]; }[number]>> extends infer R extends TSchema[] ? TUnionEvaluated : never; export type TExclude = (L extends TUnion ? TExcludeRest : L extends R ? TNever : L); /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */ export declare function Exclude(unionType: L, excludedMembers: R, options?: SchemaOptions): TExcludeFromMappedResult; /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */ export declare function Exclude(unionType: L, excludedMembers: R, options?: SchemaOptions): TExcludeFromTemplateLiteral; /** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */ export declare function Exclude(unionType: L, excludedMembers: R, options?: SchemaOptions): TExclude; export {};