import { Express, Router } from "express"; export default abstract class ApplicationComponent { private val?; abstract start(app: Express, router: Router): Promise; abstract stop(): Promise; protected export(val: T): void; import(): T; protected prepare(name: string, prepare: () => Promise): Promise; protected close(thingName: string, thing: any, fn: Function): Promise; }