import { Graphic, InstancedGraphic, InstancedParkingSpace } from "../elements";
import { ParkingOption } from "../types";
import { Layer } from "./layer";
import { Raycaster, Vector3 } from "three";
import { Context } from "../context";
import { AibeeParkingSpaceLayer } from "src/loader/AibeeLoader/type";
type MergedElements = AibeeParkingSpaceLayer['mergedElements'];
export declare class ParkingLayer extends Layer {
    graphicMap: Map<string, Graphic>;
    parkingNoGraphicMap: Map<string, Graphic>;
    parkingOriginOptions: Map<string, Pick<ParkingOption, "strokeOpacity" | "fillOpacity">>;
    parkingOptions: ParkingOption[];
    merged: boolean;
    parkingNoIndexMap: Map<string, number>;
    nodeIdIndexMap: Map<string, number>;
    mergedParkingSpace: InstancedGraphic | InstancedParkingSpace | null;
    constructor(context: Context);
    createParkings(parkingOptions: ParkingOption[], merge?: boolean, mergedElement?: MergedElements): void;
    load(layer: AibeeParkingSpaceLayer, merged?: boolean): void;
    createMergedParking(parkingOptions: ParkingOption[]): Promise<void>;
    createMergedParkingByMergedElements(mergedElements: MergedElements): void;
    createIndependentParking(parkingOptions: ParkingOption[]): void;
    createParkingTexture(parkingOptions: ParkingOption[]): void;
    createMergedParkingTexture(mergedParkingTexture: AibeeParkingSpaceLayer['mergedParkingTexture']): void;
    changeParkingColor(parkingColorMap: Record<string, string>): void;
    setOpacity(opacity: number, force?: boolean): void;
    getParkingOptionsByParkingNo(parkingNo: string): ParkingOption | null;
    getGraphicPosition(nodeId: string): number[] | null | undefined;
    /**
     * 获取射线相交的元素
     * @param raycaster
     */
    getParkingSpaceByRaycaster(raycaster: Raycaster): {
        graphics: Graphic[];
        position: Vector3 | null;
        distance: number;
    };
    dispose(): void;
}
export {};
