import { HttpMethod, IncomingMessage, ServerResponse, Middleware } from '../types';
import { WebServerContext } from '../middleware/context';
export type RouteHandler
= (context: WebServerContext) => void | Promise;
export type RouteArg = Route | Route[] | RouteGroup | RouteGroup[];
export interface Route {
method: HttpMethod;
path: string;
handler: RouteHandler;
isPublic?: boolean;
}
export interface RouteGroup {
routes: RouteArg;
pathPrefix?: string;
isPublic?: boolean;
}
export interface Router {
add(routes: RouteArg);
setAuthMiddleware(strategy: string, mw: Middleware);
routeIsPublicDefault: boolean;
}