/** * Route matching utilities for compiling paths and extracting parameters. */ import type { Route } from "./types/index.js"; /** * Result of compiling a path pattern. */ export interface CompiledPath { /** Regex pattern for matching */ pattern: RegExp; /** Parameter names in order */ paramNames: string[]; /** Names of optional parameters */ optionalParams: string[]; /** Whether this path ends with a wildcard catch-all */ isWildcard: boolean; } /** * Compile a path pattern into a regex and extract parameter names. * Supports optional parameters with :param? syntax. * * @param path - Route path pattern (e.g., "/users/:id" or "/users/:id?") * @returns Object with regex pattern, parameter names, and optional param names * * @example * ```ts * const { pattern, paramNames, optionalParams } = compilePath("/users/:id?"); * // pattern matches "/users" and "/users/123" * // paramNames = ["id"] * // optionalParams = ["id"] * ``` */ export declare function compilePath(path: string): CompiledPath; /** * Extract path parameters from a matched route. * Handles optional parameters by only including them if they have values. * Applies `decodeURIComponent` to each captured value (standard behaviour). * * @param path - The request path * @param route - The matched route * @returns Record of parameter names to decoded values (undefined for missing optional params) */ export declare function extractParams(path: string, route: Route): Record; /** * Check if route constraints are satisfied. * * @param params - Extracted route parameters * @param constraints - Parameter constraints (regex patterns) * @returns True if all constraints pass */ export declare function checkConstraints(params: Record, constraints?: Record): boolean; //# sourceMappingURL=router.d.ts.map