export type Optional = T | undefined export type Nullable = T | null export type SafeReturnType = T extends (...args: any) => infer R ? R : T export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never