/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { LocationStrategy } from '@angular/common';
import { OnChanges, OnDestroy } from '@angular/core';
import { Router } from '../router';
import { ActivatedRoute } from '../router_state';
import { UrlTree } from '../url_tree';
/**
* @whatItDoes Lets you link to specific parts of your app.
*
* @howToUse
*
* Consider the following route configuration:
* `[{ path: 'user/:name', component: UserCmp }]`
*
* When linking to this `user/:name` route, you can write:
* `link to user component`
*
* @description
*
* The RouterLink directives let you link to specific parts of your app.
*
* When the link is static, you can use the directive as follows:
* `link to user component`
*
* If you use dynamic values to generate the link, you can pass an array of path
* segments, followed by the params for each segment.
*
* For instance `['/team', teamId, 'user', userName, {details: true}]`
* means that we want to generate a link to `/team/11/user/bob;details=true`.
*
* Multiple static segments can be merged into one
* (e.g., `['/team/11/user', userName, {details: true}]`).
*
* The first segment name can be prepended with `/`, `./`, or `../`:
* * If the first segment begins with `/`, the router will look up the route from the root of the
* app.
* * If the first segment begins with `./`, or doesn't begin with a slash, the router will
* instead look in the children of the current activated route.
* * And if the first segment begins with `../`, the router will go up one level.
*
* You can set query params and fragment as follows:
*
* ```
*
* link to user component
*
* ```
* RouterLink will use these to generate this link: `/user/bob#education?debug=true`.
*
* You can also tell the directive to preserve the current query params and fragment:
*
* ```
*
* link to user component
*
* ```
*
* The router link directive always treats the provided input as a delta to the current url.
*
* For instance, if the current url is `/user/(box//aux:team)`.
*
* Then the following link `Jim` will generate the link
* `/user/(jim//aux:team)`.
*
* @selector ':not(a)[routerLink]'
* @ngModule RouterModule
*
* See {@link Router.createUrlTree} for more information.
*
* @stable
*/
export declare class RouterLink {
private router;
private route;
queryParams: {
[k: string]: any;
};
fragment: string;
preserveQueryParams: boolean;
preserveFragment: boolean;
skipLocationChange: boolean;
replaceUrl: boolean;
private commands;
constructor(router: Router, route: ActivatedRoute);
routerLink: any[] | string;
onClick(): boolean;
urlTree: UrlTree;
}
/**
* @whatItDoes Lets you link to specific parts of your app.
*
* See {@link RouterLink} for more information.
*
* @selector 'a[routerLink]'
* @ngModule RouterModule
*
* @stable
*/
export declare class RouterLinkWithHref implements OnChanges, OnDestroy {
private router;
private route;
private locationStrategy;
target: string;
queryParams: {
[k: string]: any;
};
fragment: string;
preserveQueryParams: boolean;
preserveFragment: boolean;
skipLocationChange: boolean;
replaceUrl: boolean;
private commands;
private subscription;
href: string;
constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy);
routerLink: any[] | string;
ngOnChanges(changes: {}): any;
ngOnDestroy(): any;
onClick(button: number, ctrlKey: boolean, metaKey: boolean): boolean;
private updateTargetUrlAndHref();
urlTree: UrlTree;
}