import { PARENT_NODE } from './constants'; export interface IExtractedPathParam { paramName: string; paramValue: string; } export interface IRegexParams { paramName: string; params: Array; } export interface IUriParams { pathParams: Array; regexParams?: Array; } export interface IRouteMatch { params: IUriParams; node: Node; } export interface IStringMap { [key: string]: string; } export interface IControllerContainer { equals(other: IControllerContainer): boolean; priority: number; id: string; toString(): string; } export declare type IRouteMatchResult = undefined | IRouteMatch; export interface Node { type: string; priority: number; name: string; controllers?: Array; uriTemplate: string; paramName: string; equals(other: Node): boolean; getRouteMatch(uri: string, params?: IUriParams): IRouteMatchResult; addChildNode(node: Node): Node; addController(controller: T): Node; getAllRoutes(): Array>; getRouteMatchByControllerId(id: string): IRouteMatchResult; makeUri(params: IStringMap): string; children: Array>; [PARENT_NODE]?: Node; }