export interface RouterResponseLike { writeHead: (statusCode: number, headers?: Record) => unknown; end: (chunk?: unknown) => unknown; } export type RouteHandler = (req: TReq, res: TRes, next: (err?: Error) => void) => void | Promise; export type MiddlewareHandler = RouteHandler; export interface RouteMatch { handler: RouteHandler; params: Record; query: Record; pattern: string; } interface RouterRouteEntry { method: string; pattern: string; regex: RegExp; paramNames: string[]; handler: RouteHandler; isWildcard: boolean; literalCount: number; totalSegments: number; } /** * Simple pattern-matching HTTP router. * P11: Includes a route matching cache. */ export declare class Router { routes: Map[]>; middleware: MiddlewareHandler[]; _cache: Map>; constructor(); use(fn: MiddlewareHandler): void; get(pattern: string, handler: RouteHandler): void; post(pattern: string, handler: RouteHandler): void; put(pattern: string, handler: RouteHandler): void; patch(pattern: string, handler: RouteHandler): void; delete(pattern: string, handler: RouteHandler): void; _add(method: string, pattern: string, handler: RouteHandler): void; _parseQuery(searchParams: URLSearchParams): Record; _autoOptions(normalized: string, query: Record): RouteMatch | null; match(method: string, url: string): RouteMatch | null; _matchUncached(method: string, url: string): RouteMatch | null; } export {}; //# sourceMappingURL=Router.d.ts.map