/// import { AddressInfo, Server } from 'net'; import * as Types from './interfaces'; /** * The kernel class is the orchestration layer of your application. * It serves as the entry point that initializes the container, prepares the Koa application, wires up middleware, and loads your controller routes. * */ export declare abstract class Kernel, App extends Types.App, Container extends Types.Container> { protected app: App; protected container: Container; protected logger: Types.Logger; protected options: Config; protected _server?: Server; protected _address?: AddressInfo; constructor(options: Config); get server(): Server; get address(): AddressInfo; boot(): Promise; serve(): Promise; shutdown(): Promise; protected createContainer(): Container; protected buildContainer(): Promise; protected addMiddlewares(): void; protected createApp(): App; protected abstract createContainerBuilder(): Types.ContainerBuilder; protected middlewares(): Types.AppMiddleware[]; protected abstract createLogger(): Types.Logger; protected loadControllers(): void; }