import { type TArray } from '../../types/array.mjs'; import { type TConstructor } from '../../types/constructor.mjs'; import { type TFunction } from '../../types/function.mjs'; import { type TIntersect } from '../../types/intersect.mjs'; import { type TObject } from '../../types/object.mjs'; import { type TProperties } from '../../types/properties.mjs'; import { type TSchema } from '../../types/schema.mjs'; import { type TTuple } from '../../types/tuple.mjs'; import { type TThis } from '../../types/this.mjs'; import { type TUnion } from '../../types/union.mjs'; type TFromTypes = (Types extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TFromTypes]> : Result); export type TFromType = (Type extends TArray ? TArray> : Type extends TConstructor ? TConstructor, TFromType> : Type extends TFunction ? TFunction, TFromType> : Type extends TTuple ? TTuple> : Type extends TUnion ? TUnion> : Type extends TIntersect ? TIntersect> : Type extends TThis ? TObject : Type); export declare function FromType(properties: Properties, type: Type): TFromType; export type TExpandThis> = Result; export declare function ExpandThis(properties: TProperties, type: Type): TExpandThis; export {};