import { RouteFnArgs } from './routeArgs'; import { RouteNode, RouteNodeWithoutParams, RouteNodeWithParams } from './routeNode'; import { RouteOptions, SerializedParams, TemplateParserMap } from './types'; export declare type ChildRouteMap = Record | RouteNodeWithoutParams>; export declare type RouteFnContext = { previousQueryParams: SerializedParams; previousPath: string; previousOptions: Required; }; export declare type RouteFn = , CRM extends ChildRouteMap>(templateWithQuery: T, args: RouteFnArgs, children?: ChildrenRouterFn) => RouteNode; export declare function routeFn, CRM extends ChildRouteMap, RO extends RouteOptions>(this: RouteFnContext, templateWithQuery: T, args: RouteFnArgs, children?: ChildrenRouterFn): RouteNode; export declare type ChildrenRouterFn> = (r: RouteFn) => { [K in keyof CRM]: CRM[K]; };