import { Context, Next } from 'koa'; export interface IMiddleware { execute(ctx: Context, next: Next): Promise; toRawMiddleware(): (ctx: Context, next: Next) => Promise; } export declare abstract class Middleware implements IMiddleware { abstract execute(ctx: Context, next: Next): Promise; toRawMiddleware(): (ctx: Context, next: Next) => Promise; static fromRawMiddleware(rawMiddleware: (ctx: Context, next: Next) => any): { execute(ctx: Context, next: Next): Promise; toRawMiddleware(): (ctx: Context, next: Next) => Promise; }; }