export type RequireAllOrNone = | (T & Required>) | (T & { [P in K]?: never }); export type RequiredPresent = Omit & Required>; export type Nullable = T | null; export type Nullish = T | null | undefined; export type NestedArray = (T | NestedArray)[]; export type NonEmptyString = T extends '' ? never : T;