import type { Page, View, Panel, Modal, Popout, RouteLike, RouteParams, Structure, RouteList } from '../types';
export declare const VIEW_MAIN = "view_main";
export declare const PANEL_MAIN = "panel_main";
export declare const PAGE_MAIN = "/";
declare class Route {
    private static _next;
    readonly id: number;
    uri: string;
    page: Page;
    view: View;
    panel: Panel;
    history: Structure[];
    modal: Modal;
    get hasModal(): boolean;
    popout: Popout;
    get hasPopout(): boolean;
    get hasOverlay(): boolean;
    private _params;
    get params(): Readonly<RouteParams>;
    set params(value: Readonly<RouteParams>);
    index: number;
    constructor(panel?: Panel, view?: View, modal?: Modal, popout?: Popout, params?: RouteParams);
    clone(): Route;
    isSameWith(route: RouteLike): boolean;
    compile(page: Page): void;
    static buildFromLocation(routeList: RouteList, path: string): Route;
    static buildFromPage(routeList: RouteList, page: Page, params?: RouteParams): Route;
    static buildFromState(routeList: RouteList, state: RouteLike): Route;
}
export { Route };
export default Route;
