declare type ImmutablePrimitive = undefined | null | boolean | string | number | Function; declare type ImmutableArray = readonly Immutable[]; declare type ImmutableMap = ReadonlyMap, Immutable>; declare type ImmutableSet = ReadonlySet>; declare type ImmutableObject = { readonly [K in keyof T]: Immutable; }; declare type ImmutableUint8Array = Readonly> & Iterable & ImmutableObject; /** * A deep-readonly utility type. Can be removed when a built-in alternative is * added to TypeScript. Derived from: * https://github.com/microsoft/TypeScript/issues/13923#issuecomment-557509399 */ export declare type Immutable = T extends ImmutablePrimitive ? T : T extends (infer U)[] ? ImmutableArray : T extends Map ? ImmutableMap : T extends Set ? ImmutableSet : T extends Uint8Array ? ImmutableUint8Array : ImmutableObject; export {}; //# sourceMappingURL=type-utils.d.ts.map