import { ErrorRequestHandler, Request, RequestHandler } from 'express'; import { Router } from 'express'; import { Container, ContainerModule } from 'inversify'; import { Class, IMiddleware, IRoute } from './interfaces'; import { IProfilingSession } from "@ts-awesome/profiler"; export type IoCSetup = (req?: Request) => readonly ContainerModule[]; export declare function useProfilingSession(Class?: Class): RequestHandler; export declare function useProfilingSessionStop(): RequestHandler; export declare function useRequestContainer(container: Container): RequestHandler; export declare function useContainerModules(setup?: IoCSetup): RequestHandler; export declare function useErrorHandler(): ErrorRequestHandler; export declare function useIoC(container: Container): RequestHandler; export declare function useIoC(setup: IoCSetup): RequestHandler; export declare function useRestServer(setupRequestModules: IoCSetup): Router; export declare function useRoute(Class: Class): RequestHandler; export declare function useMiddleware(Class: Class): RequestHandler; export declare function useRoutes(...routes: Class[]): Router; export declare function useMiddlewares(...middlewares: Class[]): Router;