import { Express, Router } from "express"; import Application from "./Application.js"; import Middleware, { MiddlewareType } from "./Middleware.js"; export default abstract class ApplicationComponent { private currentRouter?; private app?; checkSecuritySettings?(): Promise; init?(): Promise; initRoutes?(router: Router): Promise; handleRoutes?(router: Router): Promise; start?(expressApp: Express): Promise; stop?(): Promise; isReady(): boolean; protected prepare(name: string, prepare: () => Promise): Promise; protected close(thingName: string, fn: (callback: (err?: Error | null) => void) => void): Promise; protected checkSecurityConfigField(field: string): void; protected use(middleware: MiddlewareType): void; setCurrentRouter(router: Router | null): void; protected getApp(): Application; setApp(app: Application): void; }