import { AbstractHttpAdapter, ContainerIoC } from '../core';
import { ApplicationConfig } from './application-config';
import { ApplicationContext } from './application-context';
import { AccessResourceInterface, ExceptionFilterInterface, HttpServer, ApplicationInterface, ApplicationOptionsInterface, InterceptorInterface, GlobalPrefixOptionsInterface, CorsOptions, CorsOptionsDelegate, HandlerTransform, WebSocketAdapter } from '../contracts';
import { Logger } from '../services';
import { GraphInspector } from '../inspector';
export declare class Application extends ApplicationContext<ApplicationOptionsInterface> implements ApplicationInterface {
    private readonly httpAdapter;
    private readonly config;
    private readonly graphInspector;
    protected readonly logger: Logger;
    private readonly middlewareModule;
    private readonly middlewareContainer;
    private readonly socketModule;
    private readonly routesResolver;
    private httpServer;
    private isListening;
    constructor(container: ContainerIoC, httpAdapter: HttpServer, config: ApplicationConfig, graphInspector: GraphInspector, appOptions?: ApplicationOptionsInterface);
    protected dispose(): Promise<void>;
    getHttpAdapter(): AbstractHttpAdapter;
    registerHttpServer(): void;
    getUnderlyingHttpServer<T>(): T;
    applyOptions(): void;
    createServer<T = any>(): T;
    registerModules(): Promise<void>;
    registerWsModule(): void;
    init(): Promise<this>;
    registerParserMiddleware(): void;
    registerRouter(): Promise<void>;
    registerRouterHooks(): Promise<void>;
    getHttpServer(): any;
    use(...args: [any, any?]): this;
    enableCors(options?: CorsOptions | CorsOptionsDelegate<any>): void;
    listen(port: number | string): Promise<any>;
    listen(port: number | string, hostname: string): Promise<any>;
    getUrl(): Promise<string>;
    private formatAddress;
    setGlobalPrefix(prefix: string, options?: GlobalPrefixOptionsInterface): this;
    useWebSocketAdapter(adapter: WebSocketAdapter): this;
    useGlobalFilters(...filters: ExceptionFilterInterface[]): this;
    useGlobalHandler(...handlers: HandlerTransform<any>[]): this;
    useGlobalInterceptors(...interceptors: InterceptorInterface[]): this;
    useGlobalAccessResources(...guards: AccessResourceInterface[]): this;
    private host;
    private getProtocol;
    private registerMiddleware;
}
//# sourceMappingURL=application.d.ts.map