import { ScreensConfig, RouteNode, RouteMatch } from './types';
/**
 * Compiles a `screens` config into a tree of `RouteNode`s and resolves
 * parsed paths to a matched `RouteMatch`.
 *
 * Matching is depth-first, in insertion order. The first node whose pattern
 * (and nested children) consume the entire path wins.
 */
export declare class RouteMatcher {
    private routeTree;
    buildRouteTree(screens: ScreensConfig): RouteNode[];
    setRouteTree(tree: RouteNode[]): void;
    /**
     * Match a parsed path (e.g. `"user/42"`) against the configured tree.
     * Returns the matched chain or `null` when no route matches.
     */
    match(path: string, url: string, queryParams: Record<string, string>): RouteMatch | null;
    private buildNode;
    private splitPattern;
    private matchRecursive;
    private tryMatchNode;
}
//# sourceMappingURL=RouteMatcher.d.ts.map