export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export type Prettify = { [K in keyof T]: T[K]; }; export type ValueOf = T[keyof T]; export type Exact = TExpected extends unknown ? TActual extends TExpected ? TActual & Record, never> : never : never;