/// <reference types="react" />
import Route from './entities/Route';
import Router from './entities/Router';
import type { Page, View, Panel, Modal, Popout, RouteList, RouteParams, RenderNode, Structure, SharedConfig } from './types';
export declare function startGlobalRouter(routes: RouteList, config?: Partial<SharedConfig>): Router;
export declare function getGlobalRouter(): Router;
export declare function pushPage(page: Page, params?: RouteParams): void;
export declare function replacePage(page: Page, params?: RouteParams): void;
export declare function popPage(): void;
export declare function pushModal(modal: Modal, params?: RouteParams): void;
export declare function replaceModal(modal: Modal, params?: RouteParams): void;
export declare function pushPopup(popup: Popout, params?: RouteParams): void;
export declare function replacePopout(popup: Popout, params?: RouteParams): void;
export declare function popPageIfModalOrPopup(): void;
export declare function pushPageAfterPreviews(prevPage: Page, nextPage: Page, params?: RouteParams): void;
export declare function getCurrentRoute(): Readonly<Route>;
export declare function getLastPanelInView(view: View): Panel;
export declare function getPanelInView(route: Route, view: View): Panel;
export declare function getViewHistory(route: Route, view: View): Structure[];
export declare function getViewProps(view: View, route: Route, modal: RenderNode, popout: RenderNode): {
    id: string;
    activePanel: string;
    history: string[];
    modal: import("react").ReactNode;
    popout: import("react").ReactNode;
    params: Readonly<RouteParams>;
    onSwipeBack: typeof popPage;
};
export declare function getPanelProps(panel: Panel, route: Route): {
    id: string;
    params: Readonly<RouteParams>;
};
export declare function getModalProps(modal: Modal, route: Route): {
    id: string;
    params: Readonly<RouteParams>;
};
export declare function getPopoutProps(popout: Popout, route: Route): {
    id: string;
    params: Readonly<RouteParams>;
};
