import { ImageDef } from "@expofp/renderer";
import Rect from "../core/Rect";
import { PathInfo, RawPoiType, RawRegularBooth, ShapeBgDef } from "../data/Data";
import { EventItem } from "./EventStore";
import { Exhibitor } from "./ExhibitorStore";
import { Layer } from "./LayerStore";
import RootStore from "./RootStore";
export default class BoothStore {
    readonly rootStore: RootStore;
    booths: Booth[];
    highlightedByExternalIds: never[];
    get boothById(): Map<number, Booth>;
    get boothByExternalId(): Map<string, Booth>;
    get boothByName(): Map<string, Booth>;
    get boothBySlug(): Map<string, Booth>;
    get borderWidth(): number;
    constructor(rootStore: RootStore);
    get bookmarked(): Booth[];
    getNearestBooth(point: Point): Booth;
    getBoothAtPoint(point: Point): Booth;
    findBooth(str: string): Booth | undefined;
    replaceBookmarked(ids: number[]): void;
}
export declare abstract class BoothBase {
    protected readonly store: BoothStore;
    readonly id: number;
    readonly name: string;
    readonly externalId: string;
    readonly title: string;
    readonly rect: Rect;
    readonly borderWidth: number;
    readonly borderColor: string;
    noLabels: boolean;
    readonly rotate: number;
    readonly paths: PathInfo[];
    readonly pathsWithRect: boolean;
    readonly slug: string;
    readonly error: boolean;
    readonly description: string;
    readonly exhibitors: Exhibitor[];
    readonly labelColor: string;
    readonly schedule: EventItem[];
    readonly poiTypeId: number;
    readonly poiType: RawPoiType;
    readonly poiIcon: string;
    readonly meta: Record<string, string>;
    layer: Layer;
    bookmarkedDirectly: boolean;
    get bookmarked(): boolean;
    private get uiState();
    get fullName(): string;
    get visible(): boolean;
    get hover(): boolean;
    get selected(): boolean;
    get skipDim(): boolean;
}
export type Booth = RegularBooth | SpecialBooth;
export declare class RegularBooth extends BoothBase implements Omit<RawRegularBooth, "exhibitors"> {
    readonly buyUrl: string;
    readonly reserveUrl: string;
    readonly type: string;
    readonly status: "onhold" | "reserved";
    readonly price: string;
    readonly entity: Entity;
    readonly size: string;
    readonly availColor: string;
    readonly soldColor: string;
    readonly holdColor: string;
    readonly onHold: boolean;
    readonly reserved: boolean;
    shapes: (ShapeBgDef | ImageDef)[];
}
export declare class SpecialBooth extends BoothBase {
    readonly color: string;
    shapes: (ShapeBgDef | ImageDef)[];
    readonly entity: Entity;
}
//# sourceMappingURL=BoothStore.d.ts.map