import type { Segment } from "./normalize.js"; export type RouteDefinition = { method: string; matchPath: string; routePath: string; segments: Segment[]; captureNames: string[]; createParams: ((...values: string[]) => Record) | null; storeId: number; priority: number; allowExactStaticOverlap: boolean; }; export type DynamicTrieNode = { terminal: RouteDefinition | null; wildcardRoute: RouteDefinition | null; readonly staticChildren: Map; readonly patternChildren: DynamicPatternChild[]; paramChild: DynamicTrieNode | null; }; export type DynamicPatternChild = { segment: Extract; node: DynamicTrieNode; }; export declare function createRouteDefinition(method: string, routePath: string, segments: Segment[], storeId: number, options?: { priority?: number; allowExactStaticOverlap?: boolean; }): RouteDefinition; export declare function buildMatchPath(segments: Segment[]): string; export declare function isExactStaticRoute(route: RouteDefinition): boolean; export declare function getExactStaticPath(route: RouteDefinition): string; export declare function getCaptureNames(route: RouteDefinition): string[]; export declare function getLeadingStaticPrefix(route: RouteDefinition): string; export declare function getSegmentCount(route: RouteDefinition): number; export declare function getRootStaticSegment(route: RouteDefinition): string | null; export declare function getTrailingWildcardSegmentCount(route: RouteDefinition): number | null; export declare function hasPatternSegments(route: RouteDefinition): boolean; export declare function createDynamicTrieNode(): DynamicTrieNode; export declare function buildDynamicTrie(routes: RouteDefinition[]): DynamicTrieNode;