import { GlobalContext, ScopedContext } from './context-util'; import { RequestHandler } from 'express'; export declare enum Hooks { BEFORE_REQUEST = "beforeRequestHooks", AFTER_SEND = "afterSend", CREATED = "created" } export interface TransformerFunc { (body: any): void; } export interface HookParamFunc { (globalCtx: GlobalContext, scopedCtx?: ScopedContext): void; } export interface PluginAPiFunc { (api: PluginApi): void; } export declare class PluginApi { private ctx; middleware: Array; transformer: Array; private [Hooks.BEFORE_REQUEST]; private [Hooks.AFTER_SEND]; private [Hooks.CREATED]; constructor(ctx: GlobalContext); registerMiddleware(creator: (ctx: GlobalContext) => RequestHandler): void; transformResponse(transformer: TransformerFunc): void; applyTransformer(res: any): any; emit(hook: Hooks, scopedContext?: ScopedContext): void; on(hook: Hooks, handler: HookParamFunc): void; initPluginApi(ctx: GlobalContext): void; }