import type { Fragment, Route } from './types.js'; export interface RouteSpec { fragment: Fragment; title?: string; param?: string; children?: Record; } export type ParamsOf = ResolveParams>; type CollectParams = (T extends { param: infer P extends string; } ? P : never) | (T['children'] extends Record ? CollectParams : never); type ResolveParams = [S] extends [never] ? Record : { [K in S & string]: string; }; export type RouteNode = Route & (T['children'] extends Record ? { [K in keyof T['children'] & string]: RouteNode; } : Record); export declare const createRouteSchema: (spec: T) => RouteNode; export declare const href: (node: RouteNode, params?: ParamsOf) => string; export declare const titleOf: (node: Route) => string | undefined; export {};