import { Element } from '@ktmap/map';

interface IOptions {
    name?: string;
    data: Record<string, any> | (() => Promise<Record<string, any>>);
    poiCollision?: boolean;
}

declare class ParkingLayer extends Element<{
    complete: void;
}> {
    static NAME: string;
    private options;
    private info;
    private floorIdSort;
    private basicSetting;
    /**
     * @desc 绘制策略
     */
    private drawObjectStrategy;
    private _nextTick;
    _updateSize: () => void;
    constructor({ name, data, poiCollision }: IOptions);
    nextTick(cb?: () => void): Promise<void> | undefined;
    __init(): Promise<void>;
    /**
     * @desc 获取物体需要的高度
     */
    private getZHeight;
    /**
     * @desc 【待优化？】对楼层数据进行加工
     */
    private createFloorBefore;
    /**
     * @desc 创建所有楼层入口
     */
    private createFloors;
    /**
     * @desc 创建单层
     */
    private createFloor;
}

declare module '@ktmap/map' {
    interface ElementType {
        ParkingLayer: ParkingLayer;
    }
    interface KTMap {
        ParkingLayer: typeof ParkingLayer;
    }
}

export { ParkingLayer };
