import 'reflect-metadata';
import { IInteractionTarget } from '../interaction/IInteractionService';
import { ILayer } from '../layer/ILayerService';
import { IPickingService } from './IPickingService';
export default class PickingService implements IPickingService {
    pickedColors: Uint8Array | undefined;
    pickedTileLayers: ILayer[];
    private readonly mapService;
    private rendererService;
    private readonly configService;
    private interactionService;
    private layerService;
    private pickingFBO;
    private width;
    private height;
    private alreadyInPicking;
    private pickBufferScale;
    private pickedLayers;
    init(id: string): void;
    boxPickLayer(layer: ILayer, box: [number, number, number, number], cb: (...args: any[]) => void): Promise<any>;
    pickBox(layer: ILayer, box: [number, number, number, number]): any[];
    handleCursor(layer: ILayer, type: string): void;
    destroy(): void;
    pickFromPickingFBO: (layer: ILayer, { x, y, lngLat, type, target }: IInteractionTarget) => boolean;
    private getContainerSize;
    private pickingAllLayer;
    private resizePickingFBO;
    private pickingLayers;
    private triggerHoverOnLayer;
    /**
     * highlight 如果直接修改选中 feature 的 buffer，存在两个问题：
     * 1. 鼠标移走时无法恢复
     * 2. 无法实现高亮颜色与原始原色的 alpha 混合
     * 因此高亮还是放在 shader 中做比较好
     * @example
     * this.layer.color('name', ['#000000'], {
     *  featureRange: {
     *    startIndex: pickedFeatureIdx,
     *    endIndex: pickedFeatureIdx + 1,
     *  },
     * });
     */
    private highlightPickedFeature;
    private selectFeature;
}
