import { BMap } from "../../bmap";
import { Floor, Graphic } from "../../elements";
import { AibeeFloorData } from "./type";
import { TaskQueue, RoadData2, EventDispatcher } from "../../utils";
import { RENDER_VERSION } from "./utils";
export { RENDER_VERSION } from './utils';
interface AibeeLoaderEventMap {
    'switch-floor-before': {
        data: {
            curFloor: Floor;
            graphics: Graphic[];
            floorData: AibeeFloorData;
        };
    };
    'switch-floor-after': {
        data: {
            curFloor: Floor;
            graphics: Graphic[];
        };
    };
    'switch-floor-ground': {
        data: {
            curFloor: Floor;
            graphics: Graphic[];
        };
    };
    'switch-floor-content': {
        data: {
            curFloor: Floor;
            graphics: Graphic[];
        };
    };
}
export interface AibeeFloorInfo {
    floor_id: number;
    map_url: string;
    map_url_bin: string;
    route_url: string;
    route_url_bin: string;
    version_id: string;
    floor: string;
    floor_name: string;
    entry_infra_url: string;
    map_angle: number;
    updated_at: number;
}
export interface AibeeLoaderOptions {
    mergeParkingSpace: boolean;
    mergeGraphic: boolean;
    renderVersion: RENDER_VERSION;
}
export type Locale = "zh-cn" | "en" | "zh-hk";
export interface PlaceConfig {
    backgroundColor: string;
    showFacilityName: boolean;
    showStoreName: boolean;
    textFontSize: number;
}
export declare class AibeeLoader extends EventDispatcher<AibeeLoaderEventMap> {
    bmap: BMap;
    floors: AibeeFloorInfo[];
    initDbPromise: Promise<void>;
    db: IDBDatabase | null;
    taskQueue: TaskQueue;
    loadWorker: Worker;
    options: AibeeLoaderOptions;
    locale: Locale;
    placeConfig: PlaceConfig;
    getFloorDataPromise: Map<string, Promise<AibeeFloorData>>;
    constructor(bmap: BMap, options?: Partial<AibeeLoaderOptions>);
    initDb(): Promise<void>;
    load(data: string | AibeeFloorInfo[], placeConfig?: Partial<PlaceConfig>): Promise<void>;
    setCacheData(storeName: string, key: string | number, data: any): Promise<unknown>;
    getCacheData<T>(storeName: string, key: string | number): Promise<T>;
    getFloorData(floor: string): Promise<Floor | null>;
    getFloorDataByFloorInfo(floorInfo: AibeeFloorInfo): Promise<Floor>;
    setLocale(locale: Locale): void;
    getFloorJsonDataByFloorInfo(floorInfo: AibeeFloorInfo): Promise<AibeeFloorData>;
    getFloorJsonData(floor: string): Promise<AibeeFloorData | null>;
    getRoadNetworkData(): Promise<RoadData2[]>;
    getFacilitiesData(): Promise<any>;
    getOtherDataByFreeTime(): Promise<void>;
    getMulFloorsData(floors: string[]): Promise<Floor[]>;
    getDataByUrl(url: string): Promise<Floor>;
    getDataByJson(data: AibeeFloorData, floor?: Floor, placeConfig?: Partial<PlaceConfig>): Promise<Floor>;
    changeFloorBox(data: AibeeFloorData, floor: Floor): void;
    switchFloor(data: string | AibeeFloorData, placeConfig?: Partial<PlaceConfig>): Promise<Floor | null>;
    private _switchFloor;
    getFloorBaseLayer(data: AibeeFloorData, floor?: Floor): Floor;
    getFloorContentLayer(data: AibeeFloorData, floor?: Floor): Promise<Floor>;
    getFloorPoi(data: AibeeFloorData, floor: Floor, placeConfig?: PlaceConfig): Promise<void>;
    clear(): Promise<void>;
    closeWorker(): void;
    dispose(): void;
}
