import { RequestHandler, Router } from "express"; import { PathParams } from "express-serve-static-core"; import Application from "./Application.js"; import Middleware, { MiddlewareType } from "./Middleware.js"; export default abstract class Controller { private readonly router; private readonly fileUploadFormRouter; private app?; getGlobalMiddlewares(): Middleware[]; hasGlobalMiddlewares(): boolean; setupGlobalHandlers(router: Router): void; getRoutesPrefix(): string; abstract routes(): void; setupRoutes(): { mainRouter: Router; fileUploadFormRouter: Router; }; protected use(handler: RequestHandler): void; protected useMiddleware(...middlewares: MiddlewareType[]): void; protected get(path: PathParams, handler: RequestHandler, routeName?: string, ...middlewares: (MiddlewareType)[]): void; protected post(path: PathParams, handler: RequestHandler, routeName?: string, ...middlewares: (MiddlewareType)[]): void; protected put(path: PathParams, handler: RequestHandler, routeName?: string, ...middlewares: (MiddlewareType)[]): void; protected delete(path: PathParams, handler: RequestHandler, routeName?: string, ...middlewares: (MiddlewareType)[]): void; private handle; private wrap; private registerRoutes; protected getApp(): Application; setApp(app: Application): void; }