import { Router, Express, IRouterConfig, IDinoProperties, IMiddlewareProvider } from '../types';
import { IDinoRouter } from '../interfaces';
export declare class DinoRouter implements IDinoRouter {
    private router;
    private diContainer;
    private enableTaskContext;
    constructor(config: IRouterConfig);
    resolve<T>(middleware: Function, dino: IDinoProperties): T;
    registerMiddleware(middleware: IMiddlewareProvider): void;
    registerBeginActionFilter(filter: IMiddlewareProvider): void;
    registerAfterActionFilter(filter: IMiddlewareProvider): void;
    registerResultFilter(filter: IMiddlewareProvider): void;
    registerExceptionFilter(app: Express, uri: string | RegExp, middleware: IMiddlewareProvider): void;
    expressRouter(): Router;
    registerExceptionFilters(app: Express, uri: string | RegExp, filters: IMiddlewareProvider[]): void;
    registerMiddlewares(middlewares: IMiddlewareProvider[]): void;
    registerBeginActionFilters(actionFilters: IMiddlewareProvider[]): void;
    registerAfterActionFilters(actionFilters: IMiddlewareProvider[]): void;
    registerResultFilters(resultFilters: IMiddlewareProvider[]): void;
    static create(config: IRouterConfig): DinoRouter;
}
