import { Container, type ComponentInstaller, type Registry } from "@nivinjoseph/n-ject"; import { type Logger } from "@nivinjoseph/n-log"; import { type ClassHierarchy } from "@nivinjoseph/n-util"; import type { RedisClientType } from "redis"; import type { ApplicationScript } from "./application-script.js"; import { Controller } from "./controller.js"; import type { ExceptionHandler } from "./exceptions/exception-handler.js"; import type { AuthenticationHandler } from "./security/authentication-handler.js"; import type { AuthorizationHandler } from "./security/authorization-handler.js"; export declare class WebApp { private readonly _port; private readonly _host; private readonly _koa; private readonly _container; private readonly _ownsContainer; private readonly _router; private readonly _callContextKey; private readonly _exceptionHandlerKey; private readonly _authenticationHandlerKey; private _hasAuthenticationHandler; private _authHeaders; private readonly _authorizationHandlerKey; private readonly _logger; private _startupScript; private _shutdownScript; private readonly _staticFilePaths; private _enableCors; private _enableCompression; private _viewResolutionRoot; private _enableWebSockets; private _corsOrigin; private _socketServerRedisClient; private _socketServer; private readonly _disposeActions; private _server; private _isBootstrapped; private _shutdownManager; private _serverClosed; get containerRegistry(): Registry; constructor(port: number, host: string | null, container?: Container | null, logger?: Logger | null); enableCors(): this; enableCompression(): this; registerStaticFilePath(filePath: string, cache?: boolean, defer?: boolean): this; registerControllers(...controllerClasses: ReadonlyArray>): this; useInstaller(installer: ComponentInstaller): this; registerStartupScript(startupScript: ApplicationScript): this; registerShutdownScript(shutdownScript: ApplicationScript): this; registerExceptionHandler(exceptionHandlerClass: ClassHierarchy): this; registerAuthenticationHandler(authenticationHandler: ClassHierarchy, ...authHeaders: Array): this; registerAuthorizationHandler(authorizationHandler: ClassHierarchy): this; useViewResolutionRoot(path: string): this; enableWebSockets(corsOrigin: string, socketServerRedisClient: RedisClientType): this; registerDisposeAction(disposeAction: () => Promise): this; bootstrap(): Promise; private _configureCors; private _configureContainer; private _configureStartup; private _configureScoping; private _configureCallContext; private _configureCompression; private _configureExceptionHandling; private _configureErrorTrapping; private _configureAuthentication; private _configureStaticFileServing; private _configureBodyParser; private _configureRouting; private _configureWebSockets; private _configureShutDown; } //# sourceMappingURL=web-app.d.ts.map