/// <reference types="node" />
import { HttpCServer, HttpCServerOptions, IHttpCHost } from "@httpc/server";
import { ILogger } from "./logging";
export type ApplicationOptions = HttpCServerOptions & {
    port?: number;
};
export declare class Application implements IHttpCHost {
    protected readonly options: ApplicationOptions;
    protected _isInitialized: boolean;
    protected _server?: HttpCServer;
    protected _logger?: ILogger;
    constructor(options: ApplicationOptions);
    get server(): HttpCServer;
    get logger(): ILogger;
    initialize(): Promise<void>;
    getHttpCRequestProcessor(): (req: import("http").IncomingMessage, res: import("http").ServerResponse<import("http").IncomingMessage>) => void;
    start(port?: number): Promise<void>;
    stop(waitPending?: boolean): Promise<void>;
    protected _createServer(): HttpCServer;
}
