export { lift } from './lift'; export { update, toDraft } from './immupdate'; export { range } from './array'; export { createUnion } from './union'; export { createEnum } from './enum'; export { identity, noop } from './function'; import * as isType from './is'; export declare const is: typeof isType; export declare function immutable(obj: T): Immutable; export declare type Immutable = T extends ImmutablePrimitive ? T : T extends Array ? ImmutableArray : T extends Map ? ImmutableMap : T extends Set ? ImmutableSet : ImmutableObject; declare type ImmutablePrimitive = undefined | null | boolean | string | number | Function; declare type ImmutableArray = ReadonlyArray>; declare type ImmutableMap = ReadonlyMap, Immutable>; declare type ImmutableSet = ReadonlySet>; declare type ImmutableObject = { readonly [K in keyof T]: Immutable; }; export declare type Result = { ok: true; value: T; } | { ok: false; error: E; }; export declare function Ok(value: T): Result; export declare function Err(error: E): Result;