import { type TSchema } from '../schema/index'; import { type TArgument } from '../argument/index'; import { type TUnknown } from '../unknown/index'; import { type TReadonlyOptional } from '../readonly-optional/index'; import { type TReadonly } from '../readonly/index'; import { type TOptional } from '../optional/index'; import { type TConstructor } from '../constructor/index'; import { type TFunction } from '../function/index'; import { type TIntersect } from '../intersect/index'; import { type TUnion } from '../union/index'; import { type TTuple } from '../tuple/index'; import { type TArray } from '../array/index'; import { type TAsyncIterator } from '../async-iterator/index'; import { type TIterator } from '../iterator/index'; import { type TPromise } from '../promise/index'; import { type TObject, type TProperties } from '../object/index'; import { type TRecordOrObject, type TRecord } from '../record/index'; type TFromConstructor, TFromType>> = Result; type TFromFunction, TFromType>> = Result; type TFromIntersect>> = Result; type TFromUnion>> = Result; type TFromTuple>> = Result; type TFromArray>> = Result; type TFromAsyncIterator>> = Result; type TFromIterator>> = Result; type TFromPromise>> = Result; type TFromObject, Result extends TSchema = TObject> = Result; type TFromRecord, MappedValue extends TSchema = TFromType, Result extends TSchema = TRecordOrObject> = Result; type TFromArgument = Result; type TFromProperty ? true : false, IsOptional extends boolean = Type extends TOptional ? true : false, Mapped extends TSchema = TFromType, Result extends TSchema = ([ IsReadonly, IsOptional ] extends [true, true] ? TReadonlyOptional : [ IsReadonly, IsOptional ] extends [true, false] ? TReadonly : [ IsReadonly, IsOptional ] extends [false, true] ? TOptional : Mapped)> = Result; type TFromProperties; }> = Result; export type TFromTypes = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromTypes]> : Result); export declare function FromTypes(args: [...Args], types: [...Types]): TFromTypes; export type TFromType = (Type extends TConstructor ? TFromConstructor : Type extends TFunction ? TFromFunction : Type extends TIntersect ? TFromIntersect : Type extends TUnion ? TFromUnion : Type extends TTuple ? TFromTuple : Type extends TArray ? TFromArray : Type extends TAsyncIterator ? TFromAsyncIterator : Type extends TIterator ? TFromIterator : Type extends TPromise ? TFromPromise : Type extends TObject ? TFromObject : Type extends TRecord ? TFromRecord : Type extends TArgument ? TFromArgument : Type); /** `[JavaScript]` Instantiates a type with the given parameters */ export type TInstantiate> = Result; /** `[JavaScript]` Instantiates a type with the given parameters */ export declare function Instantiate(type: Type, args: [...Args]): TInstantiate; export {};