In Typescript it is possible to define static interfaces and even reference them and pass the classes as objects to be used.

interface IInstance {}
 
interface IStaticClass {
  new(): IInstance;
  start();
  show();
  end();
}
 
class StaticMembersClass implements IStaticClass {
  static start() {};
  static show() {};
  static end() {};
}
 
// in some code
function myFunction (staticClass: IStaticClass) {
  staticClass.start();
}
 
myFunction(StaticMembersClass);

Some more info: https://stackoverflow.com/a/43674389/147507