import ApplicationComponent from "./ApplicationComponent.js"; import CacheProvider from "./CacheProvider.js"; import Controller from "./Controller.js"; import Migration, { MigrationType } from "./db/Migration.js"; import Extendable from "./Extendable.js"; import { Type } from "./Utils.js"; import WebSocketListener from "./WebSocketListener.js"; export default abstract class Application implements Extendable> { private readonly version; private coreVersion; private readonly ignoreCommandLine; private readonly controllers; private readonly webSocketListeners; private readonly components; private cacheProvider?; private ready; private started; private busy; protected constructor(version: string, ignoreCommandLine?: boolean); protected abstract getMigrations(): MigrationType[]; protected abstract init(): Promise; protected use(thing: Controller | WebSocketListener | ApplicationComponent): void; start(): Promise; protected processCommandLine(): Promise; private checkSecuritySettings; stop(): Promise; private routes; getWebSocketListeners(): { [p: string]: WebSocketListener; }; getCache(): CacheProvider | null; getComponents(): ApplicationComponent[]; as>(type: Type): C; asOptional>(type: Type): C | null; has>(type: Type): boolean; require>(type: Type): void; isInNodeModules(): Promise; isReady(): boolean; getVersion(): string; getCoreVersion(): string; }