import { RequestHandler } from "express"; import { NextFunction, Request, Response } from "express-serve-static-core"; import Application from "./Application.js"; import { Type } from "./Utils.js"; export default abstract class Middleware { protected readonly app: Application; constructor(app: Application); protected abstract handle(req: Request, res: Response, next: NextFunction): Promise; getRequestHandler(): RequestHandler; } export interface MiddlewareType extends Type { new (app: Application): M; }