import { ComponentFactory, Type } from '@angular/core'; export declare class Tree { constructor(root: TreeNode); root: T; parent(t: T): T; children(t: T): T[]; firstChild(t: T): T; pathFromRoot(t: T): T[]; contains(tree: Tree): boolean; } export declare class UrlTree extends Tree { constructor(root: TreeNode); } export declare class RouteTree extends Tree { constructor(root: TreeNode); } export declare function rootNode(tree: Tree): TreeNode; export declare class TreeNode { value: T; children: TreeNode[]; constructor(value: T, children: TreeNode[]); } export declare class UrlSegment { segment: any; parameters: { [key: string]: string; }; outlet: string; constructor(segment: any, parameters: { [key: string]: string; }, outlet: string); toString(): string; } export declare class RouteSegment { urlSegments: UrlSegment[]; parameters: { [key: string]: string; }; outlet: string; constructor(urlSegments: UrlSegment[], parameters: { [key: string]: string; }, outlet: string, type: Type, componentFactory: ComponentFactory); getParam(param: string): string; getParamAsNumber(param: string): number; type: Type; stringifiedUrlSegments: string; } export declare function createEmptyRouteTree(type: Type): RouteTree; export declare function serializeRouteSegmentTree(tree: RouteTree): string; export declare function equalUrlSegments(a: UrlSegment[], b: UrlSegment[]): boolean; export declare function routeSegmentComponentFactory(a: RouteSegment): ComponentFactory;