import { type RouteObject, createBrowserRouter } from 'react-router';
import type { Snapshot } from 'recoil';
import { type DaraData, type RouteDefinition, type RouteMatch, type Variable } from '../types/core';
export declare function createRoute(route: RouteDefinition, snapshot: () => Snapshot, routeDefMap: Map<string, RouteDefinition>): RouteObject;
/**
 * Find the first navigatable path in the given routes.
 * Walks the routes in a BFS and returns the first route with a path.
 */
export declare function findFirstPath(routes: RouteDefinition[]): string;
interface RouterWithRoutes {
    router: ReturnType<typeof createBrowserRouter>;
    routeDefinitions: RouteDefinition[];
    routeObjects: RouteObject[];
    routeDefMap: Map<string, RouteDefinition>;
    defaultPath: string;
    routeMatches: Variable<RouteMatch[]>;
}
/**
 * Create the router for the application
 */
export declare function createRouter(config: DaraData, snapshot: () => Snapshot): RouterWithRoutes;
export {};
//# sourceMappingURL=create-router.d.ts.map