import { Box3, Camera, Intersection, Plane, Ray, Scene, Vector2, Vector3 } from 'three';
import { ObjectLayers } from '../IViewer';
export declare class Intersections {
    private raycaster;
    private boxBuffer;
    private vec0Buffer;
    private vec1Buffer;
    private boundsBuffer;
    constructor();
    private onObjectIntersection;
    intersect(scene: Scene, camera: Camera, point: Vector2, nearest?: boolean, bounds?: Box3, castLayers?: Array<ObjectLayers>, firstOnly?: boolean): Array<Intersection>;
    intersectRay(scene: Scene, camera: Camera, ray: Ray, nearest?: boolean, bounds?: Box3, castLayers?: Array<ObjectLayers>, firstOnly?: boolean): Array<Intersection>;
    private intersectInternal;
    static aabbPlanePoints: (plane: Plane, aabb: Box3) => Vector3[];
}
