import type { Url, Query } from '@tinkoff/url'; import { AbstractRouter } from './router/abstract'; export type Params = Record; export interface RouteConfig { [key: string]: any; } export interface Route { name: string; path: string; redirect?: string | NavigateOptions; alias?: string; config?: RouteConfig; } export interface NavigationRoute extends Route { actualPath: string; params: Params; navigateState?: any; } export interface BaseNavigateOptions { params?: Partial; query?: Partial; preserveQuery?: boolean; replace?: boolean; hash?: string; navigateState?: any; code?: number; isBack?: boolean; } export interface NavigateOptions extends BaseNavigateOptions { url?: string; viewTransition?: boolean; viewTransitionTypes?: string[]; hasUAVisualTransition?: boolean; } export type UpdateCurrentRouteOptions = BaseNavigateOptions; export interface HistoryOptions { historyFallback?: string; replace?: boolean; viewTransition?: boolean; viewTransitionTypes?: string[]; } export type NavigationType = 'navigate' | 'updateCurrentRoute'; export interface Navigation { type: NavigationType; from?: NavigationRoute; to?: NavigationRoute; fromUrl?: Url; url?: Url; replace?: boolean; navigateState?: any; history?: boolean; skipped?: boolean; code?: number; isBack?: boolean; redirect?: boolean; redirectFrom?: NavigationRoute; /** * Helps to separate commandLineRunner launches on navigation processes. * Defines internally within the router */ key?: number; /** * Activates View Transition to this navigation */ viewTransition?: boolean; viewTransitionTypes?: string[]; hasUAVisualTransition?: boolean; } export type NavigationGuard = (navigation: Navigation) => Promise; export type NavigationHook = (navigation: Navigation) => Promise; export type NavigationSyncHook = (navigation: Navigation) => void; export type HookName = 'beforeResolve' | 'beforeNavigate' | 'afterNavigate' | 'beforeUpdateCurrent' | 'afterUpdateCurrent'; export type SyncHookName = 'change'; export type RouterPlugin = { apply(router: AbstractRouter): void; }; export interface HistoryState { key: string; type: NavigationType; navigateState?: any; index: number; viewTransition?: boolean; viewTransitionTypes?: string[]; } /** * Navigation type for browser "Back/Forward" within the same route * prefer-update - always return via update * current-type - return with current navigation type * previous-type - return with the navigation type of the target route */ export declare enum BackNavigationType { CURRENT_TYPE = "current-type", PREFER_UPDATE = "prefer-update", PREVIOUS_TYPE = "previous-type" } //# sourceMappingURL=types.d.ts.map