import { Controller, ControllerResponse } from '../controller-contract'; import { ErrorRequestHandler, Request, RequestHandler, Response } from 'express'; export type InputMapper = (req: Request, res: Response) => ControllerInput; export type Newable = { new (...args: any[]): T; }; export type Delegator = (controllerResponse: ControllerResponse, req: Request, res: Response) => void; export interface ExpressResponder { responseType: Newable; applyToResponse(controllerResponse: T, req: Request, res: Response, delegator: Delegator): void; } export declare class ControllerSupportExpress { private mapInput; private responders; constructor(mapInput: InputMapper); addResponder(responder: ExpressResponder): ControllerSupportExpress; requestHandlerFrom(controller: Controller): RequestHandler; errorRequestHandlerFrom(controller: Controller): ErrorRequestHandler; }