import { Observable } from '@tanbo/stream'; import { Navigator, QueryParams } from './navigator'; import { Params, Route } from './routes'; export declare class Router { private navigator; parent: Router | null; onRefresh: Observable; private lastResolvedParams; /** 当前重定向链上已解析过的 path 段(规范化后);非重定向成功匹配后清空 */ private redirectTrail; private static readonly maxRedirectHops; /** 当前层最近一次匹配所消费的 URL 段数(默认 1,保持历史行为) */ private consumedSegments; private routeParams; /** * 本次 `resolve` 命中的 `route.path` 上的动态段(供子 Router、`canActivate`、`redirectTo`)。 * 与 `params` 按层隔离(对齐 Angular):有 `parent` 时 `params` 只表示本层注入域,不由子级匹配覆盖。 */ lastResolvePathParams: Params; get deep(): number; private get remainingPaths(); get path(): string; get params(): Params; setParams(params: Params): void; private refreshEvent; constructor(navigator: Navigator, parent: Router | null); navigateTo(path: string, queryParams?: QueryParams, hash?: string | null): void; replaceTo(path: string, queryParams?: QueryParams, hash?: string | null): void; refresh(): void; resolve(routes: Route[]): Route | null; back(): void; forward(): void; go(offset: number): void; private clearRedirectTrail; private getNavigatorParams; private cloneNavigatorParams; private beginRedirectResolution; private assertRedirectTarget; private splitRoutePath; /** 单段路由:`user` | `:id` | `:id?`(`?` 仅表示可选;整条 path 里 `:…?` 只允许出现在最后一段,由 matchRoutePath 校验) */ private parseRouteSegment; private matchRoutePath; private matchRoute; }