export type Primitives = number | string | boolean | bigint | undefined | symbol; export type Nullable = T | null | undefined; export type Cast = X extends Y ? X : Y; export type MaybePromise = T | Promise; export type Mutable = { -readonly [K in keyof T]: T[K] }; export type DeepMutable = { -readonly [K in keyof T]: DeepMutable }; export type MaybeMutable = Mutable | Readonly;