import { HttpMethod } from '@gaman/common/enums/http-method.enum.js'; import { Interceptor, InterceptorHandler, Middleware, MiddlewareHandler, RequestHandler } from '@gaman/common/types/index.js'; import { ExceptionHandler } from '@gaman/core/exception/index.js'; import { MatchFunction } from 'path-to-regexp'; import { Websocket, WebsocketMiddleware } from './websocket.types.js'; export interface Route { path: string; methods: HttpMethod[]; handler: RequestHandler | null; websocket: Websocket | null; websocketMiddlewares: WebsocketMiddleware[]; middlewares: Middleware[]; interceptors: Interceptor[]; exceptions: ExceptionHandler[]; match: MatchFunction>>; pipes: Array; name?: string; } export type Routes = Array; export interface RouteDefinition { middleware(fn: Middleware | WebsocketMiddleware | Array): RouteDefinition; interceptor(fn: Interceptor | Array): RouteDefinition; exception(eh: ExceptionHandler | Array): RouteDefinition; name(s: string): RouteDefinition; }