import type { AutocompleteOptionObject } from '../ui/Autocomplete';
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(): AutocompleteOptionObject[];
    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