export type Awaitable = T | Promise; export type AnyClass = new (...args: any[]) => any; export type ClassType = new (...args: any[]) => T; export interface Empty { } export type Prettify = T extends infer O ? { [K in keyof O]: O[K]; } : never;