import { Booth } from "./BoothStore";
import { EventItem } from "./EventStore";
import { Exhibitor } from "./ExhibitorStore";
import RootStore from "./RootStore";
export type PlannerSource = "bookmarks" | "custom";
export interface PlannerItem {
    type: "exhibitor" | "event" | "booth";
    entity: Exhibitor | EventItem | Booth;
    booth: Booth | null;
}
export default class RoutePlannerStore {
    rootStore: RootStore;
    items: PlannerItem[];
    startPoint: Booth | null;
    source: PlannerSource | null;
    excludedVisitedCount: number;
    constructor(rootStore: RootStore);
    get resolvedBooths(): Booth[];
    get stopsCount(): number;
    get startPointBoothOptions(): Booth[];
    get startPointAutocompleteOptions(): {
        value: string;
        label: string;
    }[];
    get title(): string;
    get subtitleParts(): {
        stops: string;
        from: string | undefined;
        distance: string | undefined;
        travelTime: string | undefined;
    };
    get routeFloors(): {
        id: number;
        name: string;
        description?: string;
        directionToNext?: "up" | "down";
    }[];
    get currentRouteFloor(): {
        id: number;
        name: string;
    } | undefined;
    setRouteFloor(floor: {
        id: number;
        name: string;
    }): void;
    launch(items: PlannerItem[], source?: PlannerSource, initialStartPoint?: Booth | null): void;
    launchFromBookmarks(initialStartPoint?: Booth | null): void;
    launchFromSlugs(slugs: string[], initialStartPoint?: Booth | null): void;
    private resolveSlugs;
    buildRoute(): void;
    private reorderItemsByNames;
    private detectStartPoint;
    setStartPoint(booth: Booth | null): void;
    removeItem(index: number): void;
    reorderItems(fromIndex: number, toIndex: number): void;
    close(): void;
}
//# sourceMappingURL=RoutePlannerStore.d.ts.map