import * as next from 'next'; import { NextApiRequest, NextApiResponse } from 'next'; type Middleware = (req: Request, res: Response, next: () => Promise) => Promise; type LabeledMiddleware = { [name: string]: Middleware | Array>; }; declare function label(middleware: T, defaults?: (keyof T)[]): (...chosenMiddleware: (keyof T | Middleware | Middleware[])[]) => (apiRouteFn: next.NextApiHandler) => next.NextApiHandler; declare function use(...middleware: (Middleware | Middleware[])[]): (apiRouteFn: next.NextApiHandler) => next.NextApiHandler; export { LabeledMiddleware, Middleware, label, use };