export interface RouteItemContainer { readonly [key: string]: RouteItemConstruction; } export declare class RouteTree { } export interface CanCut { /** * Отрезает часть урла. Влияет только на {@link url}. * * @example * getRoutesTree().incident.cut().tasks.view.url -> `/tasks/view` * getRoutesTree().incident.tasks.cut().withParameter('123').view.url -> `/123/view` */ cut(): T; } type WithCut = T & CanCut; export declare class RouteItemConstruction { private itemPath; private items; private parent; constructor(itemPath: string); static createRouteTree(items: T): RouteTree & T; static create(path: string, children?: T): WithCut; /** * Возвращает последний сегмент урла + опциональный параметр. Используется для path в роутинге angular. * * @example * getRoutesTree().incident.tasks.view.url -> `view` * getRoutesTree().incident.tasks.view.withParameter(parameter).path -> `view/:id` */ get path(): string; /** * Возвращает весь урл. * * @example * getRoutesTree().incident.tasks.view.url -> `/incident/tasks/view` * getRoutesTree().incident.tasks.withParameter('123').view.url -> `/incident/tasks/123/view` */ get url(): string; /** * Добавляет параметр в урл. * * @example * getRoutesTree().incident.tasks.withParameter('123').view.url -> `/incident/tasks/123/view` * getRoutesTree().incident.tasks.view.withParameter('id').path -> `view/:id` * getRoutesTree().incident.tasks.withParameter(id).view.path -> `view` */ withParameter(parameter: string): this; private getLastItemIndex; private addCutItem; } export {};