import 'reflect-metadata';
import { ILayer } from '../../layer/ILayerService';
import { PassType } from '../IMultiPassRenderer';
import BaseNormalPass from './BaseNormalPass';
/**
 * color-based PixelPickingPass
 * @see https://github.com/antvis/L7/blob/next/dev-docs/PixelPickingEngine.md
 */
export default class PixelPickingPass<InitializationOptions = {}> extends BaseNormalPass<InitializationOptions> {
    /**
     * picking framebuffer，供 attributes 颜色编码后输出
     */
    private pickingFBO;
    /**
     * 保存 layer 引用
     */
    private layer;
    private width;
    private height;
    /**
     * 简单的 throttle，防止连续触发 hover 时导致频繁渲染到 picking framebuffer
     */
    private alreadyInRendering;
    getType(): PassType;
    getName(): string;
    init(layer: ILayer, config?: Partial<InitializationOptions>): void;
    render(layer: ILayer): void;
    /**
     * 拾取视口指定坐标属于的要素
     * TODO：支持区域拾取
     */
    private pickFromPickingFBO;
    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;
    private selectFeatureHandle;
    private highlightFeatureHandle;
}
