import { Route } from './app-route__route.model'; import type { RouteOptions, RouteRecord } from './app-route__route.model'; /************************************************************************************************ * * Predicates * ************************************************************************************************/ /** * @param tar anything * @return { boolean } whether the target is a AppRouteManager instance * * @see {@link AppRouteManager} */ export declare const isAppRouteManager: (tar: any) => tar is AppRouteManager; /************************************************************************************************ * * Types of App Route Manager * ************************************************************************************************/ /** * */ export interface AppRouteManagerOptions extends RouteOptions { } export declare enum AppRouteType { route = "route", navigate = "navigate", redirect = "redirect", refresh = "refresh", roaming = "roaming", forward = "forward", backward = "backward", query = "query", hash = "hash" } export declare type AppRouteManagerRouteOptions = AppRouteManagerRouteOptionsUnion & { type: AppRouteType; }; export interface AppRouteManagerNavigateOptions { type?: AppRouteType.navigate; trace?: AppRouteManagerRouteTrace; route?: Route | RouteRecord; path?: string; } export interface AppRouteManagerRedirectOptions { type?: AppRouteType.redirect; trace?: AppRouteManagerRouteTrace; route?: Route | RouteRecord; path?: string; } export interface AppRouteManagerRefreshOptions { type?: AppRouteType.refresh; trace?: AppRouteManagerRouteTrace; } export interface AppRouteManagerRoamingOptions { type?: AppRouteType.roaming; trace?: AppRouteManagerRouteTrace; step: number; } export interface AppRouteManagerForwardOptions { type?: AppRouteType.forward; trace?: AppRouteManagerRouteTrace; step: number; } export interface AppRouteManagerBackwardOptions { type?: AppRouteType.backward; trace?: AppRouteManagerRouteTrace; step: number; } export interface AppRouteManagerQueryOptions { type?: AppRouteType.query; trace?: AppRouteManagerRouteTrace; query: string; } export interface AppRouteManagerHashOptions { type?: AppRouteType.hash; trace?: AppRouteManagerRouteTrace; hash: string; } declare type AppRouteManagerRouteOptionsUnion = AppRouteManagerNavigateOptions | AppRouteManagerRedirectOptions | AppRouteManagerRefreshOptions | AppRouteManagerRoamingOptions | AppRouteManagerForwardOptions | AppRouteManagerBackwardOptions | AppRouteManagerQueryOptions | AppRouteManagerHashOptions; interface AppRouteManagerRouteTraceClue { type: AppRouteType; options: AppRouteManagerRouteOptionsUnion; } declare type AppRouteManagerRouteTrace = AppRouteManagerRouteTraceClue[]; declare type AppRouteManagerDirective = Omit & { type: AppRouteType; trace: AppRouteManagerRouteTrace; }; export declare type AppRouteManagerDirectives = AppRouteManagerDirective[]; interface AppRouteManagerHistoryRecord { directive: AppRouteManagerDirective; fromRoute: Route; toRoute: Route; } export declare type AppRouteManagerHistory = AppRouteManagerHistoryRecord[]; export declare type AppRouteManagerStack = Route[]; export interface AppRouteManagerRoamingState { roamingIndex: number; roamingRoute: Route; } /************************************************************************************************ * * Main App Route Manager * ************************************************************************************************/ /** * */ export declare class AppRouteManager { _options: AppRouteManagerOptions; _directives: AppRouteManagerDirectives; _history: AppRouteManagerHistory; _stack: AppRouteManagerStack; _roamingState: AppRouteManagerRoamingState; constructor(options?: AppRouteManagerOptions); get isAppRouteManager(): true; get currentRoute(): Route; get currentRouteRecord(): RouteRecord; get options(): AppRouteManagerOptions; get directives(): AppRouteManagerDirectives; get history(): AppRouteManagerHistory; get stack(): AppRouteManagerStack; get stackRecord(): RouteRecord[]; get roamingState(): AppRouteManagerRoamingState; parseRoute(target: Route | RouteRecord | string, options?: RouteOptions): Route; private _getRoamingState; private _setRoamingState; /** * 将 roaming 状态重置,即将当前路由设置为最新的记录 */ private _resetRoamingState; private _getCurrentRoute; private _addRoute; private _replaceCurrentRoute; private _addHistory; private _addDirective; private _traceRoute; /** * 发送给 route 的请求最终会被分发给各个具体的路由方法, * 包括 navigate, redirect, refresh, roaming... * * @param { { type } } options */ route(options: AppRouteManagerRouteOptions): this; /** * navigate 方法会在栈中推入一条新的记录 */ navigate(options: AppRouteManagerNavigateOptions): this; /** * redirect 方法会移除栈中的当前记录,并推入一条新的记录 */ redirect(options: AppRouteManagerRedirectOptions): this; /** * refresh 会移除栈中的当前记录,并将其重新推入栈中 */ refresh(options: AppRouteManagerRefreshOptions): this; roaming(options: AppRouteManagerRoamingOptions | number): this; forward(options: AppRouteManagerForwardOptions | number | undefined | null): this; backward(options: AppRouteManagerBackwardOptions | number | undefined | null): this; query(options: AppRouteManagerQueryOptions | string | undefined | null): this; hash(options: AppRouteManagerHashOptions | string | undefined | null): this; } export {}; //# sourceMappingURL=app-route__app-route-manager.model.d.ts.map