import * as Koa from "koa"; declare function compose( middleware: [Koa.Middleware, Koa.Middleware], ): Koa.Middleware; declare function compose( middleware: [Koa.Middleware, Koa.Middleware, Koa.Middleware], ): Koa.Middleware; declare function compose( middleware: [Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware], ): Koa.Middleware; declare function compose( middleware: [ Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, ], ): Koa.Middleware; declare function compose( middleware: [ Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, ], ): Koa.Middleware; declare function compose( middleware: [ Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, ], ): Koa.Middleware; declare function compose( middleware: [ Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, Koa.Middleware, ], ): Koa.Middleware; declare function compose(middleware: Array>): compose.ComposedMiddleware; declare namespace compose { type Middleware = (context: T, next: Koa.Next) => any; type ComposedMiddleware = (context: T, next?: Koa.Next) => Promise; } export = compose;