export type ConcreteClass = T extends abstract new (...args: infer A) => infer R ? { new (...args: A): R } & Omit : never;