import type { ViewerRenderer } from '../procoregl/ViewerRenderer';
import type { SectionController } from '../sectioning';
import type { Vector3 } from '../types/Math';
import type { Models } from '../procoregl/Models';
export declare class PickingController {
    private renderer;
    private pickingTexture;
    private models;
    private camera;
    private sectionController;
    constructor(params: {
        renderer: ViewerRenderer;
        pickingTexture: THREE.WebGLRenderTarget;
        models: Models;
        camera: THREE.PerspectiveCamera;
        sectionController: SectionController;
    });
    getRayIntersectPoint(params: {
        event: MouseEvent;
        returnOnEdgeHitFailure: 'null' | 'bboxCenter';
    }): {
        intersection: Vector3 | null;
        meshnodeIndex: number;
        faceNormal: Vector3 | null;
    };
    mouseToThreeRay(event: MouseEvent): THREE.Raycaster;
    extractId(event: MouseEvent): number;
    private rayTestMesh;
}
