import { Http } from 'sardines-core';
export interface KoaMiddleWare {
    (ctx?: any, next?: KoaMiddleWare): Promise<any>;
}
export interface HttpServiceProviderErrorCacher {
    (error: any, ctx: any, statusCode?: number | string): void;
}
export interface HttpServiceProviderCorsSettings {
    credentials?: boolean;
    [key: string]: any;
}
export interface HttpServiceProviderBodyParserSettings {
    formLimit?: string;
    jsonLimit?: string;
    textLimit?: string;
}
export interface HttpServiceProviderHttpHeaders {
    [key: string]: string | number;
}
export interface HttpServiceProviderSettings {
    host?: string;
    port?: number;
    protocol?: Http.Protocol;
    root?: string;
    bodyParser?: HttpServiceProviderBodyParserSettings | KoaMiddleWare;
    safeGuard?: boolean | KoaMiddleWare;
    cors?: HttpServiceProviderCorsSettings;
    syslog?: boolean | KoaMiddleWare;
    public?: Http.ServiceProviderPublicInfo;
    catcher?: HttpServiceProviderErrorCacher;
    headers?: HttpServiceProviderHttpHeaders;
    middlewares?: KoaMiddleWare[];
    postProcesses?: KoaMiddleWare[];
}
export declare const defaultSettings: HttpServiceProviderSettings;
export declare const validatePath: (path?: string | undefined) => string;
export declare class HttpServiceProviderServer {
    private publicInfoStr?;
    private errorMessageHeader?;
    protected serverSettings: HttpServiceProviderSettings;
    protected server?: any;
    protected router?: any;
    constructor(settings: HttpServiceProviderSettings);
    get info(): Http.ServiceProviderPublicInfo;
    get infoStr(): string;
    protected get logMesgHeader(): string;
    private applySafeGuard;
    private applyCORS;
    private applyHeaders;
    private applySysLogger;
    private applyBodyParser;
    private applyMiddlewares;
    private applyPostProcesses;
    init(): Promise<unknown>;
}
//# sourceMappingURL=server.d.ts.map