import LayersPass, { LayersPassRenderOptions, RenderStats, Rect } from './layers-pass';
import type { Framebuffer } from '@luma.gl/core';
import type Viewport from '../viewports/viewport';
import type Layer from '../lib/layer';
type PickLayersPassRenderOptions = LayersPassRenderOptions & {
    pickingFBO: Framebuffer;
    deviceRect: Rect;
    pickZ: boolean;
};
type EncodedPickingColors = {
    a: number;
    layer: Layer;
    viewports: Viewport[];
};
export type PickingColorDecoder = (pickedColor: number[] | Uint8Array) => {
    pickedLayer: Layer;
    pickedViewports: Viewport[];
    pickedObjectIndex: number;
} | undefined;
export default class PickLayersPass extends LayersPass {
    private pickZ?;
    private _colorEncoderState;
    render(props: LayersPassRenderOptions | PickLayersPassRenderOptions): any;
    _drawPickingBuffer({ layers, layerFilter, views, viewports, onViewportActive, pickingFBO, deviceRect: { x, y, width, height }, cullRect, effects, pass, pickZ, moduleParameters }: PickLayersPassRenderOptions): {
        decodePickingColor: PickingColorDecoder | null;
        stats: RenderStats;
    };
    shouldDrawLayer(layer: Layer): boolean;
    protected getModuleParameters(): {
        picking: {
            isActive: number;
            isAttribute: boolean | undefined;
        };
        lightSources: {};
    };
    protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any;
    protected _resetColorEncoder(pickZ: boolean): {
        byLayer: Map<Layer<{}>, EncodedPickingColors>;
        byAlpha: EncodedPickingColors[];
    } | null;
}
export {};
//# sourceMappingURL=pick-layers-pass.d.ts.map