import { ICustomMiddleware, IUserConfigResolver, IUserConfig } from "../classes/userConfigResolver"; import { ITravelAgentServer } from "../interfaces/index"; export declare const applyMiddleware: (app: any, ...middleware: ICustomMiddleware[][]) => ICustomMiddleware[]; export interface IMiddlewareProvider { middleware(app: ITravelAgentServer): ICustomMiddleware[]; beforeRoutesMiddleware(app: ITravelAgentServer): ICustomMiddleware[]; postMiddleware(app: ITravelAgentServer): ICustomMiddleware[]; } export default class MiddlewareProvider implements IMiddlewareProvider { defaultMiddleware: (options?: IUserConfig) => ICustomMiddleware[]; defaultProductionMiddleware: (options?: IUserConfig) => ICustomMiddleware[]; defaultTestMiddleware: (options?: IUserConfig) => ICustomMiddleware[]; defaultDevMiddleware: (options?: IUserConfig) => ICustomMiddleware[]; defaultPostMiddleware: (isProdEnv: boolean, options?: IUserConfig, app?: ITravelAgentServer) => ICustomMiddleware[]; userConfigResolver: IUserConfigResolver; userConfig: IUserConfig; private nodeEnv; constructor(nodeEnv: string, customMiddlewareResolver?: IUserConfigResolver); middleware(app: ITravelAgentServer): ICustomMiddleware[]; postMiddleware(app: ITravelAgentServer): ICustomMiddleware[]; beforeRoutesMiddleware(app: ITravelAgentServer): ICustomMiddleware[]; }