import type { TSchema } from '../schema/index'; import type { Ensure, Evaluate, Assert } from '../helpers/index'; import { type TArray } from '../array/index'; import { type TAsyncIterator } from '../async-iterator/index'; import { type TConstructor } from '../constructor/index'; import { type TEnum, type TEnumRecord } from '../enum/index'; import { type TFunction } from '../function/index'; import { type TIndexPropertyKeys } from '../indexed/index'; import { type TIntersect } from '../intersect/index'; import { type TIterator } from '../iterator/index'; import { type TLiteral, type TLiteralValue } from '../literal/index'; import { type TObject, type TProperties, type ObjectOptions } from '../object/index'; import { type TOptional } from '../optional/index'; import { type TPromise } from '../promise/index'; import { type TReadonly } from '../readonly/index'; import { type TTuple } from '../tuple/index'; import { type TUnion } from '../union/index'; import { type TSetIncludes } from '../sets/index'; import { type TMappedResult } from './mapped-result'; import type { TMappedKey } from './mapped-key'; type TFromMappedResult = (K extends keyof P ? FromSchemaType : TMappedResult

); type TMappedKeyToKnownMappedResultProperties = { [_ in K]: TLiteral>; }; type TMappedKeyToUnknownMappedResultProperties

= (P extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TMappedKeyToUnknownMappedResultProperties>; }> : Acc); type TMappedKeyToMappedResultProperties = (TSetIncludes extends true ? TMappedKeyToKnownMappedResultProperties : TMappedKeyToUnknownMappedResultProperties

); type TFromMappedKey> = (TFromMappedResult); type TFromRest = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TFromRest]> : Acc); type FromProperties; }>> = R; declare function FromProperties(K: K, T: T): FromProperties; type FromSchemaType = (T extends TReadonly ? TReadonly> : T extends TOptional ? TOptional> : T extends TMappedResult ? TFromMappedResult : T extends TMappedKey ? TFromMappedKey : T extends TConstructor ? TConstructor, FromSchemaType> : T extends TFunction ? TFunction, FromSchemaType> : T extends TAsyncIterator ? TAsyncIterator> : T extends TIterator ? TIterator> : T extends TIntersect ? TIntersect> : T extends TEnum ? TEnum : T extends TUnion ? TUnion> : T extends TTuple ? TTuple> : T extends TObject ? TObject> : T extends TArray ? TArray> : T extends TPromise ? TPromise> : T); declare function FromSchemaType(K: K, T: T): FromSchemaType; export type TMappedFunctionReturnType = (K extends [infer L extends PropertyKey, ...infer R extends PropertyKey[]] ? TMappedFunctionReturnType; }> : Acc); export declare function MappedFunctionReturnType(K: [...K], T: T): TMappedFunctionReturnType; export type TMappedFunction> = (T: I) => TSchema; export type TMapped, R extends TProperties = Evaluate>>> = Ensure>; /** `[Json]` Creates a Mapped object type */ export declare function Mapped, F extends TMappedFunction = TMappedFunction, R extends TMapped = TMapped>(key: K, map: F, options?: ObjectOptions): R; /** `[Json]` Creates a Mapped object type */ export declare function Mapped = TMappedFunction, R extends TMapped = TMapped>(key: [...K], map: F, options?: ObjectOptions): R; export {};