import express from 'express'; import { AuthenticationTypes, ResourcePermission } from './permission'; export type RouteHTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'ALL' | 'OPTIONS' | string; export type RouteHandler = (req: express.Request, res: express.Response, next?: express.NextFunction) => any; export type RouteMiddleware = (req: express.Request, res: express.Response, next: express.NextFunction) => any; export interface RouteConfig { method: RouteHTTPMethod; path: string; handler: RouteHandler; isPublicRoute?: boolean; beforeAuthMiddlewares?: RouteMiddleware[]; afterAuthMiddlewares?: RouteMiddleware[]; authenticationTypes: AuthenticationTypes[]; permissions: ResourcePermission[]; } export interface RouteGroupConfig { servicePrefix: string; routes: RouteConfig[]; }