import type { AssertRest, Evaluate } from '../helpers/index'; import type { TSchema, SchemaOptions } from '../schema/index'; import { type TAny } from '../any/index'; import { type TBigInt } from '../bigint/index'; import { type TDate } from '../date/index'; import { type TFunction } from '../function/index'; import { type TLiteral } from '../literal/index'; import { type TNever } from '../never/index'; import { type TNull } from '../null/index'; import { type TObject } from '../object/index'; import { type TSymbol } from '../symbol/index'; import { type TTuple } from '../tuple/index'; import { type TReadonly } from '../readonly/index'; import { type TUndefined } from '../undefined/index'; import { type TUint8Array } from '../uint8array/index'; import { type TUnknown } from '../unknown/index'; type TFromArray = T extends readonly [infer L extends unknown, ...infer R extends unknown[]] ? [FromValue, ...TFromArray] : T; type TFromProperties> = { -readonly [K in keyof T]: FromValue extends infer R extends TSchema ? TReadonly : TReadonly; }; type TConditionalReadonly = Root extends true ? T : TReadonly; type FromValue = T extends AsyncIterableIterator ? TConditionalReadonly : T extends IterableIterator ? TConditionalReadonly : T extends readonly unknown[] ? TReadonly>>> : T extends Uint8Array ? TUint8Array : T extends Date ? TDate : T extends Record ? TConditionalReadonly>>, Root> : T extends Function ? TConditionalReadonly, Root> : T extends undefined ? TUndefined : T extends null ? TNull : T extends symbol ? TSymbol : T extends number ? TLiteral : T extends boolean ? TLiteral : T extends string ? TLiteral : T extends bigint ? TBigInt : TObject<{}>; declare function FromValue(value: T, root: Root): FromValue; export type TConst = FromValue; /** `[JavaScript]` Creates a readonly const type from the given value. */ export declare function Const(T: T, options?: SchemaOptions): TConst; export {};