export type MiddlewareExchange = (req: T) => Promise; export type RequestMiddleware = (req: T) => Promise; export type ResultMiddleware = (res: T) => Promise; export declare class MiddlewareChain { middlewareChain: MiddlewareExchange; constructor(requestChain: MiddlewareExchange); prepend(middleware: RequestMiddleware): void; append(middleware: ResultMiddleware): void; request(req: T): Promise; }