import { ApplicationConfig } from '../app/application-config';
import { ContainerIoC } from '../core/injector';
import { Injector } from '../core/injector/injector';
import { Module } from '../core/injector/module';
import { MiddlewareContainer } from './container';
import { ApplicationContextOptionsInterface, HttpServer, MiddlewareConfigurationInterface, RouteInfo } from '../contracts';
import { GraphInspector } from '../inspector';
export declare class MiddlewareModule<TAppOptions extends ApplicationContextOptionsInterface = ApplicationContextOptionsInterface> {
    private readonly routerProxy;
    private readonly exceptionFiltersCache;
    private readonly logger;
    private injector;
    private routerExceptionFilter;
    private routesMapper;
    private resolver;
    private container;
    private httpAdapter;
    private graphInspector;
    private appOptions;
    private routeInfoPathExtractor;
    register(middlewareContainer: MiddlewareContainer, container: ContainerIoC, config: ApplicationConfig, injector: Injector, httpAdapter: HttpServer, graphInspector: GraphInspector, options: TAppOptions): Promise<void>;
    resolveMiddleware(middlewareContainer: MiddlewareContainer, modules: Map<string, Module>): Promise<void>;
    loadConfiguration(middlewareContainer: MiddlewareContainer, moduleRef: Module, moduleKey: string): Promise<void>;
    registerMiddleware(middlewareContainer: MiddlewareContainer, applicationRef: any): Promise<void>;
    registerMiddlewareConfig(middlewareContainer: MiddlewareContainer, config: MiddlewareConfigurationInterface, moduleKey: string, applicationRef: any): Promise<void>;
    registerRouteMiddleware(middlewareContainer: MiddlewareContainer, routeInfo: RouteInfo, config: MiddlewareConfigurationInterface, moduleKey: string, applicationRef: any): Promise<void>;
    private bindHandler;
    private createProxy;
    private registerHandler;
    private getContextId;
}
//# sourceMappingURL=middleware-module.d.ts.map