import { ModuleType } from '../type/classes/ModuleType'; import { Value } from './Value'; import { FnValue } from './FnValue'; import type { Printable } from 'tree-dump/lib/types'; import type * as classes from '../type'; import type { TypeBuilder } from '../type/TypeBuilder'; export type UnObjType = T extends classes.ObjType ? U : never; export type UnObjValue = T extends ObjValue ? U : never; export type UnObjFieldTypeVal = T extends classes.KeyType ? U : never; export type ObjFieldToTuple = F extends classes.KeyType ? [K, V] : never; export type ToObject = T extends [string, unknown][] ? { [K in T[number] as K[0]]: K[1]; } : never; export type ObjValueToTypeMap = ToObject<{ [K in keyof F]: ObjFieldToTuple; }>; export type Ensure = T extends X ? T : X; export declare class ObjValue> extends Value implements Printable { static new: (system?: ModuleType) => ObjValue>; get system(): classes.ModuleType; get t(): TypeBuilder; keys(): string[]; get>>(key: K): Value>[K] extends classes.Type ? ObjValueToTypeMap>[K] : classes.Type>; fn>>(key: K): FnValue>[K] extends classes.Type ? ObjValueToTypeMap>[K] : classes.Type, classes.FnType>>; field>(field: F | ((t: TypeBuilder) => F), data: classes.ResolveType>): ObjValue, F]>>; add(key: K, type: V | ((t: TypeBuilder) => V), data: classes.ResolveType): ObjValue, classes.KeyType]>>; set(key: K, value: Value): ObjValue, classes.KeyType]>>; merge>(obj: O): ObjValue, ...UnObjType]>>; name(): string; } //# sourceMappingURL=ObjValue.d.ts.map