import { ProtocolFunctionInterface } from '@marsupialtail/idl'; import express from 'express'; import { AuthMetadataMiddlewareFunction, PostRequestMiddlewareFunction, PreRequestMiddlewareFunction } from '../middleware'; import { ExpressRequest, ExpressResponse } from './express'; import { Response, ResponseBody } from './response'; export declare type FunctionCallback = (req: RequestType, res: Response, data: MetadataType) => Promise; export declare type CachedResponses = { [requestKey: string]: CachedResponse; }; export declare type CachedResponse = { code: number; body?: ResponseBody; }; export declare type ExpressRouteHandler = (req: ExpressRequest, res: ExpressResponse) => Promise; export declare class Route { private router; private cache; private preRequestMiddleware; private postRequestMiddleware; private authMetadataMiddleware; constructor(); get expressRouter(): express.Router; function: (protocol: ProtocolFunctionInterface, callback: FunctionCallback) => void; setAuthMetadataMiddleware: (...middleware: AuthMetadataMiddlewareFunction[]) => void; setPreRequestMiddleware: (...middleware: PreRequestMiddlewareFunction[]) => void; setPostRequestMiddleware: (...middleware: PostRequestMiddlewareFunction[]) => void; private getRequestKey; private callbackWithTimeout; }