export class LazyModule { constructor(private importCallback: () => Promise) {} } export class LazyAction< TAction extends (...args: any[]) => any, TModule > { constructor(_lazyModule: LazyModule, _getter: (module: TModule) => TAction) { } }