import WebSocketListener from "./WebSocketListener"; import ApplicationComponent from "./ApplicationComponent"; import Controller from "./Controller"; export default abstract class Application { private readonly version; private readonly controllers; private readonly webSocketListeners; private readonly components; private ready; protected constructor(version: string); protected abstract init(): Promise; protected use(thing: Controller | WebSocketListener | ApplicationComponent): void; start(): Promise; stop(): Promise; private routes; getWebSocketListeners(): { [p: string]: WebSocketListener; }; isReady(): boolean; }