type PartialBy = Omit & Partial>; type Mutate = Partial | ((prev: T) => Partial); type Override = Omit & R; type ValueOf = T[keyof T]; type JsonValue = | string | number | boolean | null | undefined | JsonValue[] | { [key: string]: JsonValue }; type DeepPartial = { [P in keyof T]?: T[P] extends object ? DeepPartial : T[P]; };