import { ReactNode } from "react";
import { Kiosk } from "../components/Kiosk/SetKiosk";
import Rect from "../core/Rect";
import Size from "../core/Size";
import { RawPoiType } from "../data/Data";
import { Booth } from "./BoothStore";
import { Category } from "./CategoryStore";
import { EventItem, Track } from "./EventStore";
import { Exhibitor } from "./ExhibitorStore";
import { FuzzySearchResult } from "./FuzzySearchEngineStore";
import RootStore from "./RootStore";
import { Route } from "./RouteStore";
import { SpeakerItem } from "./SpeakerStore";
import type { BannerType, InterfaceAction, ListItem, ListType, MapSettings, OverlaySize, Visibility } from "./types";
interface InterfaceMetadata {
    id: string;
    className: string;
    priority: number;
    isActive: () => boolean;
    additionalClasses?: () => string[];
    searchBoxConfig?: () => {
        mode: string;
        title?: string;
        subtitle?: string;
        badge?: string | number;
        icon?: string;
    } | null;
    actions?: () => InterfaceAction[];
}
export default class UIState {
    private readonly rootStore;
    private readonly interfaceMetadata;
    list: ListType;
    details: Booth | Exhibitor | Route | Category | EventItem | SpeakerItem;
    hoveredExhibitor: Exhibitor;
    hoveredBooth: Booth;
    zoomBy: number;
    rollReset: boolean;
    moveToBooths: Booth[];
    moveToRect: Rect;
    moveToLocation: boolean;
    menu: boolean;
    searchFocused: boolean;
    searchClearMode: boolean;
    printingPdf: boolean;
    largeMessage: string;
    largeMessageLastSet: number;
    screenSize: Size;
    desiredOverlaySize: OverlaySize;
    overlayShowsAll: boolean;
    centerMap: boolean;
    zoomAfTransformK: number;
    activeListIndex: number;
    devicePixelRatio: number;
    previewExhibitor: Exhibitor;
    wsStarted: boolean;
    canvasStarted: boolean;
    kiosk: boolean;
    inIdle: boolean;
    modalActive: {
        share: boolean;
    };
    galleryActive: boolean;
    hideOverlay: boolean;
    hideCookieConsent: boolean;
    hideHeaderLogo: boolean;
    hideLogoInBooth: boolean;
    disableBookmarked: boolean;
    hideLanguage: boolean;
    monochrome: boolean;
    heatmap: boolean;
    heatmapYah: boolean;
    rootElement: HTMLDivElement;
    debugCircles: {
        x: number;
        y: number;
        radius: number;
        color?: string;
    }[];
    mapControlsHidden: boolean;
    floorsControlHidden: boolean;
    hideFreeOrDemo: boolean;
    freeBannerDismissed: boolean;
    currentBanner: BannerType;
    sceneDefReady: boolean;
    categoryFilterOpen: boolean;
    selectedCategoryFilters: Category[];
    selectedPoiTypeFilters: RawPoiType[];
    selectedTrack: Track | null;
    subButtonsVisible: boolean;
    mapControlsDOMRect: DOMRect;
    searchBoxMode: "search" | "details" | "interface";
    searchBoxTitle: string;
    searchBoxSubtitle?: string;
    routeTitle?: string;
    routeDescription?: string;
    isMultiPointRoute: boolean;
    tourTitle?: string;
    tourDescription?: string;
    isMultiPointTour: boolean;
    pathwayOnlyMode: boolean;
    isOverlayScrolled: boolean;
    listScrollTop: number;
    listScrollItemId: string | number | null;
    listScrollIndex: number;
    private scrollPositions;
    private scrollItemIds;
    _customUIScale: number | null;
    private readonly searchFilterHeightPx;
    private readonly searchInputHeightPx;
    private readonly overlayUISizePx;
    private readonly overlayKioskSizePx;
    private readonly overlayMediumHeightRems;
    setSelectedCategoryFilters(categories: Category[]): void;
    resetCategoryFilter(): void;
    setSearchClearMode(value: boolean): void;
    setRouteTitle(title: string): void;
    setRouteDescription(description: string): void;
    setIsMultiPointRoute(isMulti: boolean): void;
    setTourTitle(title: string): void;
    setTourDescription(description: string): void;
    setIsMultiPointTour(isMulti: boolean): void;
    setPathwayOnlyMode(value: boolean): void;
    setMultiPointTourList(tourId: string): void;
    get activePathwayLayers(): string[];
    get highlightedBooths(): ReadonlySet<string>;
    constructor(rootStore: RootStore);
    get rtl(): boolean;
    get noOverlay(): boolean;
    get onBoothClick(): (e: FloorPlanBoothClickEvent) => void;
    get onMarkerClick(): (e: import("..").FloorPlanMarkerEvent) => void;
    get onBookmarkClick(): (e: FloorPlanBookmarkClickEvent) => void;
    get onVisitedClick(): (e: FloorPlanVisitedClickEvent) => void;
    get onCategoryClick(): (e: FloorPlanCategoryClickEvent) => void;
    get onDirection(): (e: FloorPlanDirectionEvent) => void;
    get onDetails(): (e: import("..").FloorPlanDetailsEvent) => void;
    get onExhibitorCustomButtonClick(): (e: import("..").FloorPlanCustomButtonEvent) => void;
    get onGetCoordsClick(): (e: import("..").FloorPlanGetCoordsEvent) => void;
    get selectedExhibitor(): Exhibitor | null;
    get selectedBooth(): Booth | null;
    get selectedCategory(): Category | null;
    get selectedRoute(): Route | null;
    get selectedSpeaker(): SpeakerItem | null;
    get uiScale(): number;
    get isGuidedToursActive(): boolean;
    get getRouteNextFloor(): string | null;
    get headerHeightRem(): number;
    get headerHeightPx(): number;
    get overlayPosition(): "left" | "bottom";
    get overlayCollapsed(): false;
    get overlaySize(): OverlaySize;
    get overlayBottom(): boolean;
    get overlayLeft(): boolean;
    get overlayWidthPx(): number;
    get wsImageHeightPx(): number;
    get wsPaddingPx(): number;
    get wsOccupiedHeightPx(): number;
    get wsShown(): boolean;
    get wsDesktopPosition(): "bottom" | "top";
    get wsPosition(): "bottom" | "top";
    get responsiveClass(): string;
    get mapVisibleTop(): number;
    get mapVisibleBottom(): number;
    get mapVisibleStart(): number;
    get searchActionsHeightPx(): number;
    get fullSizeOffset(): number;
    get shouldShowSearchButtons(): false;
    get canvasVisibleRectPx(): Rect;
    get shouldShiftMapRect(): false | Booth | Exhibitor | Category | EventItem | SpeakerItem | Route;
    get hasAppliedFilters(): boolean;
    get canvasVisibleRectPt(): Rect;
    get canvasSizePt(): Size;
    get shouldUseBackdrop(): boolean | undefined;
    forceDimm: boolean;
    setForceDimm(forceDimm: boolean): void;
    get dimmed(): boolean;
    get defaultSearchItems(): ListItem[];
    get searchItems(): ListItem[];
    get searchList(): ListItem[];
    get foundInDescription(): ListItem[];
    get foundInDescriptionStruct(): Record<number, string>;
    get categoryFilteredSearchList(): ListItem[];
    get fuzzySearchItems(): FuzzySearchResult<ListItem>[];
    get listItems(): ListItem[];
    get listBooths(): Set<Booth>;
    get selectedBooths(): Set<Booth>;
    get hoveredBooths(): Set<Booth>;
    get visibility(): Visibility;
    setVisibility(visibility: Visibility): void;
    toggleMapOverlay(): void;
    changeZoom(zoom: number): void;
    zoomIn(): void;
    zoomOut(): void;
    fitBounds(): void;
    get previewMode(): boolean;
    get viewerMode(): boolean;
    get selectedEventItem(): EventItem | null;
    /**
     * @warning If the property is of a numeric type, set the default value to be numeric, otherwise they will be cast incorrectly.
     * @see {@link src/services/routing.ts~setMapSettings}
     * */
    get defaultMapSettings(): MapSettings;
    mapSettings: MapSettings;
    saveMapSettings(settings: MapSettings): void;
    setMapSettings(settings: MapSettings): void;
    resetMapSettings(): void;
    get baseQRCodeUrl(): string;
    get viewMapOnPhoneQRCodeUrl(): string;
    get routeQRCodeUrl(): string;
    get isFeaturedExhibitorActive(): boolean;
    get activeInterfaceData(): InterfaceMetadata | null;
    get searchBoxConfig(): {
        mode: string;
        title?: string;
        subtitle?: string;
        badge?: string | number;
        icon?: string;
    };
    get searchBoxActions(): InterfaceAction[];
    get overlayInterfaceClasses(): string[];
    get isOverlayOpen(): boolean;
    setOverlayScrolled(isScrolled: boolean): void;
    setListScrollTop(listType: string, scrollTop: number): void;
    setListScrollItemId(listType: string, itemId: string | number): void;
    getListScrollTop(listType: string): number;
    getListScrollItemId(listType: string): string | number | null;
    clearListScroll(listType: string): void;
    get bannerType(): BannerType;
    get isBannerVisible(): boolean;
    setCurrentBanner(banner: BannerType): void;
    forceShowDetails: boolean;
    setForceShowDetails(flag: boolean): void;
    get showRouteInstantly(): boolean;
    buildRoute: boolean;
    startBuildRoute(): void;
    globalErrorMessages: {
        title: string;
        body?: ReactNode;
    }[];
    setGlobalErrorMessage(message: {
        title: string;
        body?: ReactNode;
    }): void;
    popGlobalErrorMessage(): void;
    private initializeUIScale;
    minUIScale: number;
    maxUIScale: number;
    setUIScale(scale: number, saveToStorage?: boolean): void;
    resetUIScale(): void;
    setKioskModeEnabled: boolean;
    enableSetKioskMode(enable: boolean): void;
    kioskData: Kiosk;
    setKioskData(kioskData: Kiosk | null): void;
}
export {};
//# sourceMappingURL=UIState.d.ts.map