import { Page } from './Page';
import { RouteList } from './Router';
import { InfinityPanelIdTitle, PageParams, RouterGenericBase } from './Types';
/**
 * @ignore
 */
export declare const POPUP_KEY = "p";
/**
 * @ignore
 */
export declare const MODAL_KEY = "m";
export declare class Route<T extends RouterGenericBase = RouterGenericBase> {
    /**
     * @type {Page}
     */
    structure: Page<T>;
    pageId: T['pageId'];
    params: PageParams;
    uniqId: number;
    constructor(structure: Page<T>, pageId: T['pageId'], params: PageParams);
    static getParamsFromPath<T extends RouterGenericBase = RouterGenericBase>(location: T['pageId']): Record<string, string>;
    /**
     * @param {RouteList} routeList
     * @param location "info?w=about&show=1" то, что лежит в window.location.hash
     * @param noSlash
     */
    static fromLocation<T extends RouterGenericBase = RouterGenericBase>(routeList: RouteList<T>, location: T['pageId'], noSlash?: boolean): Route<T>;
    static fromPageId<T extends RouterGenericBase = RouterGenericBase>(routeList: RouteList<T>, pageId: T['pageId'], params: PageParams, prevViewId: T['viewId']): Route<T>;
    clone(): Route<T>;
    get location(): string;
    getPageId(): T['pageId'];
    getPanelId(): T['panelId'] | InfinityPanelIdTitle<T['panelId']>;
    getPanelIdWithoutInfinity(): T['panelId'];
    getViewId(): T['viewId'];
    getRootId(): T['rootId'];
    getParams(): PageParams;
    setParams(params?: PageParams): Route<T>;
    isPopup(): boolean;
    getPopupId(): T['popupId'] | null;
    setPopupId(popupId: T['popupId']): Route<T>;
    isModal(): boolean;
    hasOverlay(): boolean;
    getModalId(): T['modalId'] | null;
    setModalId(modalId: T['modalId']): Route<T>;
    out(): void;
    in(): void;
}
