import React from "react"; export type Route, K extends keyof T> = (router: ToRoute) => React.FC; export declare function router>(): { build: (_: K, route: Route) => Route; withRoutes(..._: K[]): { build: (_: K_1, route: Route<{ [K2 in K]: T[K2]; }, K_1>) => Route<{ [K2 in K]: T[K2]; }, K_1>; }; route: (componentBuilders: RouterComponents) => RouteBuilder; }; type RouterComponents> = { [K in keyof T]: Route; }; export declare function Back({ go, children }: { go: () => any; children: React.ReactNode; }): React.ReactNode; export declare class RouteBuilder> { Root: (initial: { route: Initial; props: T[Initial]; }) => React.ReactNode; constructor(componentBuilders: RouterComponents); } export type ToRoute> = { [K in keyof T]: (props: T[K]) => void; }; export {};