import { RouteObject } from 'react-router-dom'; import { ComponentType, LazyExoticComponent, ReactNode } from 'react'; import { DiscoveredRoute, RouteDefinition, RouteMetadata, RouteAccessConfig, RouteModule, RouteParams } from './types'; /** * Build a parameterized path from a pattern and params * @see core/path-utils.ts for implementation details * * @example * buildRoutePath('/users/:id', { id: '123' }) // '/users/123' * buildRoutePath('/users/:id?', {}) // '/users' * buildRoutePath('/users/:id', { id: '123' }, { tab: 'settings' }) // '/users/123?tab=settings' */ export declare function buildRoutePath(pattern: string, params?: Record, query?: Record): string; /** * Create a type-safe route builder function for a specific path pattern * * @example * const userRoute = createRouteBuilder('/users/:id'); * userRoute({ id: '123' }) // '/users/123' * * const homeRoute = createRouteBuilder('/'); * homeRoute() // '/' */ export declare function createRouteBuilder(path: TPath): (params?: RouteParams, query?: Record) => string; /** * Create a typed route registry from a routes object * * @example * const routes = { * home: '/', * users: '/users', * userDetail: '/users/:id', * } as const; * * const builders = createRouteBuilders(routes); * builders.home() // '/' * builders.userDetail({ id: '123' }) // '/users/123' */ export declare function createRouteBuilders>(routes: T): { [K in keyof T]: (params?: RouteParams, query?: Record) => string; }; /** * Import function type for dynamic imports */ export type RouteImportFn = () => Promise<{ default: ComponentType; } & Partial>; /** * Create a lazy component with preload capability */ export declare function createLazyRoute(importFn: RouteImportFn): LazyExoticComponent> & { preload: () => Promise; }; /** * Build a RouteObject from a discovered route */ export declare function buildRouteObject(route: DiscoveredRoute, importFn: RouteImportFn, options?: { errorElement?: ReactNode; loadingElement?: ReactNode; }): RouteObject; /** * Build a complete route tree from discovered routes */ export declare function buildRouteTree(routes: DiscoveredRoute[], importMap: Map, options?: { errorElement?: ReactNode; loadingElement?: ReactNode; }): RouteObject[]; /** * Create a RouteDefinition from a discovered route */ export declare function createRouteDefinition(route: DiscoveredRoute, meta?: RouteMetadata, access?: RouteAccessConfig): RouteDefinition; /** * Create route definitions for all discovered routes */ export declare function createRouteDefinitions(routes: DiscoveredRoute[]): RouteDefinition[]; /** * Check if a path matches a route pattern * @see core/path-utils.ts for implementation details */ export declare function matchRoute(pattern: string, path: string): boolean; /** * Extract parameters from a path using a pattern * @see core/path-utils.ts for implementation details */ export declare function extractRouteParams(pattern: string, path: string): Record | null; /** * Generate TypeScript type definitions for routes */ export declare function generateRouteTypeDefinitions(routes: DiscoveredRoute[]): string; /** * Generate route registry code */ export declare function generateRouteRegistry(routes: DiscoveredRoute[], rootDir: string): string;