import Promise = require('bluebird'); import { NextFunction, Request, Response } from 'express'; import { IBridgeResponse } from './Response'; export declare type IRequestHandler = (req: Request, res: Response, handler: RequestHandler) => PromiseLike; export declare type IPreHandlerHook = (req: Request, res: Response, handler: RequestHandler) => any | void; export declare type IPostHandlerHook = (req: Request, res: Response, handler: RequestHandler) => any | void; export declare type IRequestHandlerPlugin = (handler: RequestHandler) => void; export declare class RequestHandler { static new(): RequestHandler; static readonly status: any; private handler; private successStatus; private hooks; constructor(); handle(): (req: Request, res: IBridgeResponse, next: NextFunction) => Promise; setHandler(fn: IRequestHandler): RequestHandler; pre(fn: IPreHandlerHook): RequestHandler; post(fn: IPreHandlerHook): RequestHandler; plugin(fn: IRequestHandlerPlugin): RequestHandler; setSuccessStatus(statusCode: number): RequestHandler; protected sendResponse(res: IBridgeResponse): void; private executePreHandlerHooks; private executePostHandlerHooks; }