import { Future } from '@quenk/noni/lib/control/monad/future'; import { Context } from '../../request/context'; import { Response } from '../../response'; /** * Plugin allow outgoing requests and incomming responses to be intercepted. */ export declare abstract class Plugin { /** * beforeRequest receives the request context before it is passed to the * transport. */ beforeRequest(ctx: Context): Future>; /** * afterResponse receives the response from the transport just before it * is returned to the caller. */ afterResponse(res: Response): Future>; }