/// import { Context as KoaContext, Middleware as KoaMiddleware, Request as KoaRequest } from 'koa'; import { joi } from '../utility/Joi'; import { MiddlewareNext } from '../rpc/App'; export interface GatewayContext extends KoaContext { params: any; request: GatewayRequest; } export interface GatewayRequest extends KoaRequest { body: any; } export interface GatewayApiParams { [key: string]: any; } export declare abstract class GatewayApiBase { method: string; uri: string; type: string; schemaDefObj: joi.SchemaMap; abstract handle(ctx: GatewayContext, next: MiddlewareNext, params: GatewayApiParams): Promise; abstract handleMock(ctx: GatewayContext, next: MiddlewareNext, params: GatewayApiParams): Promise; register(): Array; protected _validate(): KoaMiddleware; protected _mock(): KoaMiddleware; protected _execute(): KoaMiddleware; protected _parseParams(ctx: GatewayContext): { [key: string]: any; }; }