/// <reference types="node" />
import { Core } from "kamboja";
import { RequestHandler } from "express";
import { Server } from "http";
export declare type KambojaOptionKeys = keyof Core.KambojaOption;
export declare type ExpressOptionKeys = "case sensitive routing" | "env" | "etag" | "json replacer" | "json spaces" | "query parser" | "trust proxy" | "views" | "view cache" | "view engine" | "x-powered-by";
export declare type OptionKeys = KambojaOptionKeys | ExpressOptionKeys;
export declare class KambojaApplication {
    private expressEngine;
    private kamboja;
    constructor(opt: string | Core.KambojaOption);
    set(setting: OptionKeys, value: any): this;
    get<T>(setting: keyof Core.KambojaOption): T;
    apply(facility: Core.Facility | string): this;
    use(middleware: RequestHandler | Core.Middleware | string): this;
    init(): Server;
}
