Currently, NavigationStart there is no way to know if an navigation was triggered imperatively or via the location change. These two use cases should be handled differently for a variety of use cases (e.g., scroll position restoration). This PR adds a navigation source field and restored navigation id (passed to navigations triggered by a URL change). PR Close #21728
		
			
				
	
	
		
			576 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			576 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/** @stable */
 | 
						|
export declare class ActivatedRoute {
 | 
						|
    readonly children: ActivatedRoute[];
 | 
						|
    component: Type<any> | string | null;
 | 
						|
    data: Observable<Data>;
 | 
						|
    readonly firstChild: ActivatedRoute | null;
 | 
						|
    fragment: Observable<string>;
 | 
						|
    outlet: string;
 | 
						|
    readonly paramMap: Observable<ParamMap>;
 | 
						|
    params: Observable<Params>;
 | 
						|
    readonly parent: ActivatedRoute | null;
 | 
						|
    readonly pathFromRoot: ActivatedRoute[];
 | 
						|
    readonly queryParamMap: Observable<ParamMap>;
 | 
						|
    queryParams: Observable<Params>;
 | 
						|
    readonly root: ActivatedRoute;
 | 
						|
    readonly routeConfig: Route | null;
 | 
						|
    snapshot: ActivatedRouteSnapshot;
 | 
						|
    url: Observable<UrlSegment[]>;
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class ActivatedRouteSnapshot {
 | 
						|
    readonly children: ActivatedRouteSnapshot[];
 | 
						|
    component: Type<any> | string | null;
 | 
						|
    data: Data;
 | 
						|
    readonly firstChild: ActivatedRouteSnapshot | null;
 | 
						|
    fragment: string;
 | 
						|
    outlet: string;
 | 
						|
    readonly paramMap: ParamMap;
 | 
						|
    params: Params;
 | 
						|
    readonly parent: ActivatedRouteSnapshot | null;
 | 
						|
    readonly pathFromRoot: ActivatedRouteSnapshot[];
 | 
						|
    readonly queryParamMap: ParamMap;
 | 
						|
    queryParams: Params;
 | 
						|
    readonly root: ActivatedRouteSnapshot;
 | 
						|
    readonly routeConfig: Route | null;
 | 
						|
    url: UrlSegment[];
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ActivationEnd {
 | 
						|
    snapshot: ActivatedRouteSnapshot;
 | 
						|
    constructor(
 | 
						|
        snapshot: ActivatedRouteSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ActivationStart {
 | 
						|
    snapshot: ActivatedRouteSnapshot;
 | 
						|
    constructor(
 | 
						|
        snapshot: ActivatedRouteSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface CanActivate {
 | 
						|
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface CanActivateChild {
 | 
						|
    canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface CanDeactivate<T> {
 | 
						|
    canDeactivate(component: T, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface CanLoad {
 | 
						|
    canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ChildActivationEnd {
 | 
						|
    snapshot: ActivatedRouteSnapshot;
 | 
						|
    constructor(
 | 
						|
        snapshot: ActivatedRouteSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ChildActivationStart {
 | 
						|
    snapshot: ActivatedRouteSnapshot;
 | 
						|
    constructor(
 | 
						|
        snapshot: ActivatedRouteSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class ChildrenOutletContexts {
 | 
						|
    getContext(childName: string): OutletContext | null;
 | 
						|
    getOrCreateContext(childName: string): OutletContext;
 | 
						|
    onChildOutletCreated(childName: string, outlet: RouterOutlet): void;
 | 
						|
    onChildOutletDestroyed(childName: string): void;
 | 
						|
    onOutletDeactivated(): Map<string, OutletContext>;
 | 
						|
    onOutletReAttached(contexts: Map<string, OutletContext>): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare function convertToParamMap(params: Params): ParamMap;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type Data = {
 | 
						|
    [name: string]: any;
 | 
						|
};
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class DefaultUrlSerializer implements UrlSerializer {
 | 
						|
    parse(url: string): UrlTree;
 | 
						|
    serialize(tree: UrlTree): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare type DetachedRouteHandle = {};
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type Event = RouterEvent | RouteConfigLoadStart | RouteConfigLoadEnd | ChildActivationStart | ChildActivationEnd | ActivationStart | ActivationEnd;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface ExtraOptions {
 | 
						|
    enableTracing?: boolean;
 | 
						|
    errorHandler?: ErrorHandler;
 | 
						|
    initialNavigation?: InitialNavigation;
 | 
						|
    onSameUrlNavigation?: 'reload' | 'ignore';
 | 
						|
    paramsInheritanceStrategy?: 'emptyOnly' | 'always';
 | 
						|
    preloadingStrategy?: any;
 | 
						|
    useHash?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class GuardsCheckEnd extends RouterEvent {
 | 
						|
    shouldActivate: boolean;
 | 
						|
    state: RouterStateSnapshot;
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string,
 | 
						|
        state: RouterStateSnapshot,
 | 
						|
        shouldActivate: boolean);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class GuardsCheckStart extends RouterEvent {
 | 
						|
    state: RouterStateSnapshot;
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string,
 | 
						|
        state: RouterStateSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type LoadChildren = string | LoadChildrenCallback;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type LoadChildrenCallback = () => Type<any> | NgModuleFactory<any> | Promise<Type<any>> | Observable<Type<any>>;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class NavigationCancel extends RouterEvent {
 | 
						|
    reason: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        reason: string);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class NavigationEnd extends RouterEvent {
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class NavigationError extends RouterEvent {
 | 
						|
    error: any;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        error: any);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface NavigationExtras {
 | 
						|
    fragment?: string;
 | 
						|
    preserveFragment?: boolean;
 | 
						|
    /** @deprecated */ preserveQueryParams?: boolean;
 | 
						|
    queryParams?: Params | null;
 | 
						|
    queryParamsHandling?: QueryParamsHandling | null;
 | 
						|
    relativeTo?: ActivatedRoute | null;
 | 
						|
    replaceUrl?: boolean;
 | 
						|
    skipLocationChange?: boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class NavigationStart extends RouterEvent {
 | 
						|
    navigationTrigger?: 'imperative' | 'popstate' | 'hashchange';
 | 
						|
    restoredState?: {
 | 
						|
        navigationId: number;
 | 
						|
    } | null;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        navigationTrigger?: 'imperative' | 'popstate' | 'hashchange',
 | 
						|
        restoredState?: {
 | 
						|
        navigationId: number;
 | 
						|
    } | null);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class NoPreloading implements PreloadingStrategy {
 | 
						|
    preload(route: Route, fn: () => Observable<any>): Observable<any>;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class OutletContext {
 | 
						|
    attachRef: ComponentRef<any> | null;
 | 
						|
    children: ChildrenOutletContexts;
 | 
						|
    outlet: RouterOutlet | null;
 | 
						|
    resolver: ComponentFactoryResolver | null;
 | 
						|
    route: ActivatedRoute | null;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface ParamMap {
 | 
						|
    readonly keys: string[];
 | 
						|
    get(name: string): string | null;
 | 
						|
    getAll(name: string): string[];
 | 
						|
    has(name: string): boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type Params = {
 | 
						|
    [key: string]: any;
 | 
						|
};
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class PreloadAllModules implements PreloadingStrategy {
 | 
						|
    preload(route: Route, fn: () => Observable<any>): Observable<any>;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare abstract class PreloadingStrategy {
 | 
						|
    abstract preload(route: Route, fn: () => Observable<any>): Observable<any>;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare const PRIMARY_OUTLET = "primary";
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare function provideRoutes(routes: Routes): any;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface Resolve<T> {
 | 
						|
    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<T> | Promise<T> | T;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type ResolveData = {
 | 
						|
    [name: string]: any;
 | 
						|
};
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ResolveEnd extends RouterEvent {
 | 
						|
    state: RouterStateSnapshot;
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string,
 | 
						|
        state: RouterStateSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class ResolveStart extends RouterEvent {
 | 
						|
    state: RouterStateSnapshot;
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string,
 | 
						|
        state: RouterStateSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export interface Route {
 | 
						|
    canActivate?: any[];
 | 
						|
    canActivateChild?: any[];
 | 
						|
    canDeactivate?: any[];
 | 
						|
    canLoad?: any[];
 | 
						|
    children?: Routes;
 | 
						|
    component?: Type<any>;
 | 
						|
    data?: Data;
 | 
						|
    loadChildren?: LoadChildren;
 | 
						|
    matcher?: UrlMatcher;
 | 
						|
    outlet?: string;
 | 
						|
    path?: string;
 | 
						|
    pathMatch?: string;
 | 
						|
    redirectTo?: string;
 | 
						|
    resolve?: ResolveData;
 | 
						|
    runGuardsAndResolvers?: RunGuardsAndResolvers;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class RouteConfigLoadEnd {
 | 
						|
    route: Route;
 | 
						|
    constructor(
 | 
						|
        route: Route);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class RouteConfigLoadStart {
 | 
						|
    route: Route;
 | 
						|
    constructor(
 | 
						|
        route: Route);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class Router {
 | 
						|
    config: Routes;
 | 
						|
    errorHandler: ErrorHandler;
 | 
						|
    readonly events: Observable<Event>;
 | 
						|
    navigated: boolean;
 | 
						|
    onSameUrlNavigation: 'reload' | 'ignore';
 | 
						|
    paramsInheritanceStrategy: 'emptyOnly' | 'always';
 | 
						|
    routeReuseStrategy: RouteReuseStrategy;
 | 
						|
    readonly routerState: RouterState;
 | 
						|
    readonly url: string;
 | 
						|
    urlHandlingStrategy: UrlHandlingStrategy;
 | 
						|
    constructor(rootComponentType: Type<any> | null, urlSerializer: UrlSerializer, rootContexts: ChildrenOutletContexts, location: Location, injector: Injector, loader: NgModuleFactoryLoader, compiler: Compiler, config: Routes);
 | 
						|
    createUrlTree(commands: any[], navigationExtras?: NavigationExtras): UrlTree;
 | 
						|
    dispose(): void;
 | 
						|
    initialNavigation(): void;
 | 
						|
    isActive(url: string | UrlTree, exact: boolean): boolean;
 | 
						|
    navigate(commands: any[], extras?: NavigationExtras): Promise<boolean>;
 | 
						|
    navigateByUrl(url: string | UrlTree, extras?: NavigationExtras): Promise<boolean>;
 | 
						|
    ngOnDestroy(): void;
 | 
						|
    parseUrl(url: string): UrlTree;
 | 
						|
    resetConfig(config: Routes): void;
 | 
						|
    serializeUrl(url: UrlTree): string;
 | 
						|
    setUpLocationChangeListener(): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare const ROUTER_CONFIGURATION: InjectionToken<ExtraOptions>;
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare const ROUTER_INITIALIZER: InjectionToken<(compRef: ComponentRef<any>) => void>;
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare abstract class RouteReuseStrategy {
 | 
						|
    abstract retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null;
 | 
						|
    abstract shouldAttach(route: ActivatedRouteSnapshot): boolean;
 | 
						|
    abstract shouldDetach(route: ActivatedRouteSnapshot): boolean;
 | 
						|
    abstract shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean;
 | 
						|
    abstract store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare class RouterEvent {
 | 
						|
    id: number;
 | 
						|
    url: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string);
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterLink {
 | 
						|
    fragment: string;
 | 
						|
    preserveFragment: boolean;
 | 
						|
    /** @deprecated */ preserveQueryParams: boolean;
 | 
						|
    queryParams: {
 | 
						|
        [k: string]: any;
 | 
						|
    };
 | 
						|
    queryParamsHandling: QueryParamsHandling;
 | 
						|
    replaceUrl: boolean;
 | 
						|
    routerLink: any[] | string;
 | 
						|
    skipLocationChange: boolean;
 | 
						|
    readonly urlTree: UrlTree;
 | 
						|
    constructor(router: Router, route: ActivatedRoute, tabIndex: string, renderer: Renderer2, el: ElementRef);
 | 
						|
    onClick(): boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterLinkActive implements OnChanges, OnDestroy, AfterContentInit {
 | 
						|
    readonly isActive: boolean;
 | 
						|
    links: QueryList<RouterLink>;
 | 
						|
    linksWithHrefs: QueryList<RouterLinkWithHref>;
 | 
						|
    routerLinkActive: string[] | string;
 | 
						|
    routerLinkActiveOptions: {
 | 
						|
        exact: boolean;
 | 
						|
    };
 | 
						|
    constructor(router: Router, element: ElementRef, renderer: Renderer2, cdr: ChangeDetectorRef);
 | 
						|
    ngAfterContentInit(): void;
 | 
						|
    ngOnChanges(changes: SimpleChanges): void;
 | 
						|
    ngOnDestroy(): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterLinkWithHref implements OnChanges, OnDestroy {
 | 
						|
    fragment: string;
 | 
						|
    href: string;
 | 
						|
    preserveFragment: boolean;
 | 
						|
    preserveQueryParams: boolean;
 | 
						|
    queryParams: {
 | 
						|
        [k: string]: any;
 | 
						|
    };
 | 
						|
    queryParamsHandling: QueryParamsHandling;
 | 
						|
    replaceUrl: boolean;
 | 
						|
    routerLink: any[] | string;
 | 
						|
    skipLocationChange: boolean;
 | 
						|
    target: string;
 | 
						|
    readonly urlTree: UrlTree;
 | 
						|
    constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy);
 | 
						|
    ngOnChanges(changes: {}): any;
 | 
						|
    ngOnDestroy(): any;
 | 
						|
    onClick(button: number, ctrlKey: boolean, metaKey: boolean, shiftKey: boolean): boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterModule {
 | 
						|
    constructor(guard: any, router: Router);
 | 
						|
    static forChild(routes: Routes): ModuleWithProviders;
 | 
						|
    static forRoot(routes: Routes, config?: ExtraOptions): ModuleWithProviders;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterOutlet implements OnDestroy, OnInit {
 | 
						|
    activateEvents: EventEmitter<any>;
 | 
						|
    readonly activatedRoute: ActivatedRoute;
 | 
						|
    readonly activatedRouteData: {
 | 
						|
        [name: string]: any;
 | 
						|
    };
 | 
						|
    readonly component: Object;
 | 
						|
    deactivateEvents: EventEmitter<any>;
 | 
						|
    readonly isActivated: boolean;
 | 
						|
    constructor(parentContexts: ChildrenOutletContexts, location: ViewContainerRef, resolver: ComponentFactoryResolver, name: string, changeDetector: ChangeDetectorRef);
 | 
						|
    activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | null): void;
 | 
						|
    attach(ref: ComponentRef<any>, activatedRoute: ActivatedRoute): void;
 | 
						|
    deactivate(): void;
 | 
						|
    detach(): ComponentRef<any>;
 | 
						|
    ngOnDestroy(): void;
 | 
						|
    ngOnInit(): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterPreloader implements OnDestroy {
 | 
						|
    constructor(router: Router, moduleLoader: NgModuleFactoryLoader, compiler: Compiler, injector: Injector, preloadingStrategy: PreloadingStrategy);
 | 
						|
    ngOnDestroy(): void;
 | 
						|
    preload(): Observable<any>;
 | 
						|
    setUpPreloading(): void;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterState extends Tree<ActivatedRoute> {
 | 
						|
    snapshot: RouterStateSnapshot;
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RouterStateSnapshot extends Tree<ActivatedRouteSnapshot> {
 | 
						|
    url: string;
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare type Routes = Route[];
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare const ROUTES: InjectionToken<Route[][]>;
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class RoutesRecognized extends RouterEvent {
 | 
						|
    state: RouterStateSnapshot;
 | 
						|
    urlAfterRedirects: string;
 | 
						|
    constructor(
 | 
						|
        id: number,
 | 
						|
        url: string,
 | 
						|
        urlAfterRedirects: string,
 | 
						|
        state: RouterStateSnapshot);
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare type RunGuardsAndResolvers = 'paramsChange' | 'paramsOrQueryParamsChange' | 'always';
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare abstract class UrlHandlingStrategy {
 | 
						|
    abstract extract(url: UrlTree): UrlTree;
 | 
						|
    abstract merge(newUrlPart: UrlTree, rawUrl: UrlTree): UrlTree;
 | 
						|
    abstract shouldProcessUrl(url: UrlTree): boolean;
 | 
						|
}
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare type UrlMatcher = (segments: UrlSegment[], group: UrlSegmentGroup, route: Route) => UrlMatchResult;
 | 
						|
 | 
						|
/** @experimental */
 | 
						|
export declare type UrlMatchResult = {
 | 
						|
    consumed: UrlSegment[];
 | 
						|
    posParams?: {
 | 
						|
        [name: string]: UrlSegment;
 | 
						|
    };
 | 
						|
};
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class UrlSegment {
 | 
						|
    readonly parameterMap: ParamMap;
 | 
						|
    parameters: {
 | 
						|
        [name: string]: string;
 | 
						|
    };
 | 
						|
    path: string;
 | 
						|
    constructor(
 | 
						|
        path: string,
 | 
						|
        parameters: {
 | 
						|
        [name: string]: string;
 | 
						|
    });
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class UrlSegmentGroup {
 | 
						|
    children: {
 | 
						|
        [key: string]: UrlSegmentGroup;
 | 
						|
    };
 | 
						|
    readonly numberOfChildren: number;
 | 
						|
    parent: UrlSegmentGroup | null;
 | 
						|
    segments: UrlSegment[];
 | 
						|
    constructor(
 | 
						|
        segments: UrlSegment[],
 | 
						|
        children: {
 | 
						|
        [key: string]: UrlSegmentGroup;
 | 
						|
    });
 | 
						|
    hasChildren(): boolean;
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare abstract class UrlSerializer {
 | 
						|
    abstract parse(url: string): UrlTree;
 | 
						|
    abstract serialize(tree: UrlTree): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare class UrlTree {
 | 
						|
    fragment: string | null;
 | 
						|
    readonly queryParamMap: ParamMap;
 | 
						|
    queryParams: {
 | 
						|
        [key: string]: string;
 | 
						|
    };
 | 
						|
    root: UrlSegmentGroup;
 | 
						|
    toString(): string;
 | 
						|
}
 | 
						|
 | 
						|
/** @stable */
 | 
						|
export declare const VERSION: Version;
 |