/// <reference types="connect" />
/// <reference types="node" />
import express from "express";
import { Server as HttpServer } from "http";
import { LogModule, LogModuleConfig } from "../modules/Log";
import { _BaseKernel } from "../_BaseKernel";
import { ExpressRouterWrapper } from "../components/ExpressRouterWrapper";
export declare type ExpressKernelConfig = {
    id?: string;
    logger?: LogModuleConfig;
    host: string;
    port: number;
    path: string;
    cors?: {
        allowedOrigins: string[];
    };
};
export declare class ExpressKernel extends _BaseKernel<ExpressKernel, ExpressKernelConfig> {
    private _expressRouterWrappers;
    private readonly _expressApp;
    private readonly _httpServer;
    constructor(config: ExpressKernelConfig, _expressRouterWrappers: ExpressRouterWrapper[], logger?: LogModule);
    static getMiddleware(mw: "bodyparser_json" | "bodyparser_urlencoded", mwOptions?: any): import("connect").NextHandleFunction;
    use(...args: any[]): this;
    enable(setting: string): this;
    disable(setting: string): this;
    set(setting: string, val: any): this;
    boot(): Promise<boolean>;
    halt(): Promise<boolean>;
    get app(): express.Application;
    get httpServer(): HttpServer;
}
