import { ClassType } from '../base/type';
import { BaseController } from '../controller/base.controller';
import { SaveLogger } from '../base/logger';
import { RouteConfig } from '../base/route.config';
import { RoutesRegister } from '../base/routes.register';
import { BaseWrapper } from '../wrapper/base.wrapper';
import { IocLoadOptions } from '../mvc/ioc.load.options';
/** 服务配置 */
export declare class ServerConfig {
    /** 服务监听端口, ，默认 `8080` */
    port?: number;
    /** 服务名称 */
    name?: string;
    /** 控制器注册 */
    controller?: ClassType<BaseController>[];
    /** 可执行的 wrapper 注册 */
    wrappers?: Map<string, ClassType<BaseWrapper<any>>>;
    /** 路由配置信息注册 */
    routes?: ClassType<RouteConfig>[];
    /** 设置允许的自定义HTTP请求头 */
    allowHeader?: string[];
    /** 是否允许跨域，默认 `true` */
    allowCrossDomain?: boolean;
    /** 日志写入, 默认 `MysqlLogger` */
    logger?: SaveLogger;
    /** 限制 Body 大小， 默认 `10000kb` */
    limitBodySize?: string;
    /** 限制 Url 大小， 默认 `10000kb` */
    limitUrlSize?: string;
    /** 设置 etag，默认 `false` */
    setETag?: boolean;
    /** 接口地址 */
    apiBaseUrl?: string;
    /** 自动扫描加载选项 */
    loadOpts?: IocLoadOptions;
}
/** WEB 服务 */
export declare class WebServer {
    readonly options: ServerConfig;
    private static _express;
    private static get express();
    readonly registerRoutes: RoutesRegister;
    /** 服务监听端口 */
    readonly port: number;
    /**
     * WEB 服务
     * @param options 配置选项
     */
    constructor(options: ServerConfig);
    private isController;
    private isRouteConfig;
    private isWrapper;
    private ConfigCors;
    private ConfigAction;
    private Config404;
    private Config500;
}
