declare const BrowserRouteType = "BrowserRoute"; declare const HashRouteType = "HashRoute"; declare const DefaultNestedLevel = 0; declare const _404RRoute: { element: () => never; params: {}; isSubRoute: boolean; nestedLevel: number; }; declare const DefaultRoute: { '*': { element: () => never; params: {}; isSubRoute: boolean; nestedLevel: number; }; }; type RouteType = typeof BrowserRouteType | typeof HashRouteType; type Params = { [s: string]: ''; }; type Routes = { pathname: string; element: () => Element | DocumentFragment; children?: Routes[]; }; type GetParams = { pathname: string; searchedPathname: string; }; type RouteLocation = { pathname: string; params: Params; search: Record; hash: string; }; type Route = { element: () => Element | DocumentFragment; params: Params; isSubRoute: boolean; nestedLevel: number; }; type PushHistory = { addToHistory?: boolean; state?: Record; }; type RouteWithLocation = Route & RouteLocation; declare class RouterManagement implements RouterManagement { #private; routeType: RouteType; getRoutes(): Record; go(searchPathname: string, options?: PushHistory): void; dispose void>(cb: T): void; getLocation(): RouteLocation; back(): void; forward(): void; refresh(): void; replace(searchPathname: string, state?: PushHistory['state']): void; config(routeData: Routes[], basePath?: string): void; } declare class RouterSetup extends RouterManagement { #private; browserRoute(routeData: Routes[]): void; hashRoute(routeData: Routes[]): void; } declare const Router: RouterSetup; declare const BrowserRoute: (routes: Routes[]) => void; declare const HashRoute: (routes: Routes[]) => void; declare const routeLocation: () => RouteLocation; declare const router: () => Record; export { BrowserRoute, BrowserRouteType, DefaultNestedLevel, DefaultRoute, type GetParams, HashRoute, HashRouteType, type Params, type PushHistory, type Route, type RouteLocation, type RouteType, type RouteWithLocation, Router, type Routes, _404RRoute, routeLocation, router };