/** @module TypeScript: Data Mutability */ export type DynamicObject = { [K: string]: V | undefined; }; export type ImmutablePrimitive = undefined | null | boolean | string | number | Function; export type Immutable = T extends ImmutablePrimitive ? T : T extends Array ? ImmutableArray : T extends Map ? ImmutableMap : T extends Set ? ImmutableSet : ImmutableObject; export type ImmutableArray = ReadonlyArray>; export type ImmutableMap = ReadonlyMap, Immutable>; export type ImmutableSet = ReadonlySet>; export type ImmutableObject = { readonly [K in keyof T]: Immutable; }; export type Writable = { -readonly [P in keyof T]: Writable; }; //# sourceMappingURL=data-mutability.d.ts.map