import type { TSchema, SchemaOptions } from '../schema/index.mjs'; import type { AssertRest, AssertType, UnionToTuple } from '../helpers/index.mjs'; import type { TMappedResult } from '../mapped/index.mjs'; import { type TUnion } from '../union/index.mjs'; import { type Static } from '../static/index.mjs'; import { type TNever } from '../never/index.mjs'; import { type TUnionEvaluated } from '../union/index.mjs'; import { type TTemplateLiteral } from '../template-literal/index.mjs'; import { type TExtractFromMappedResult } from './extract-from-mapped-result.mjs'; import { type TExtractFromTemplateLiteral } from './extract-from-template-literal.mjs'; type TExtractRest = AssertRest> extends Static ? L[K] : never; }[number]>> extends infer R extends TSchema[] ? TUnionEvaluated : never; export type TExtract = (L extends TUnion ? TExtractRest : L extends U ? L : TNever); /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */ export declare function Extract(type: L, union: R, options?: SchemaOptions): TExtractFromMappedResult; /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */ export declare function Extract(type: L, union: R, options?: SchemaOptions): TExtractFromTemplateLiteral; /** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */ export declare function Extract(type: L, union: R, options?: SchemaOptions): TExtract; export {};