export type AbstractConstructor = Function & { prototype: T; }; export type Constructor = new (...args: any[]) => T;