import { Box3, Camera, Object3D, Plane, Ray, Scene, Vector2, Vector3 } from 'three'; import { ExtendedIntersection, ExtendedMeshIntersection, SpeckleRaycaster } from './objects/SpeckleRaycaster.js'; import { ObjectLayers } from '../IViewer.js'; import { OBB } from 'three/examples/jsm/math/OBB.js'; export declare class Intersections { protected raycaster: SpeckleRaycaster; private boxBuffer; private vec0Buffer; private vec1Buffer; private boundsBuffer; constructor(); protected onObjectIntersection(obj: Object3D): void; intersect(scene: Scene, camera: Camera, point: Vector2, castLayers: ObjectLayers.STREAM_CONTENT_MESH, nearest?: boolean, bounds?: Box3 | OBB, firstOnly?: boolean, tasOnly?: boolean): Array | null; intersect(scene: Scene, camera: Camera, point: Vector2, castLayers?: Array, nearest?: boolean, bounds?: Box3 | OBB, firstOnly?: boolean, tasOnly?: boolean): Array | null; intersectRay(scene: Scene, camera: Camera, ray: Ray, castLayers: ObjectLayers.STREAM_CONTENT_MESH, nearest?: boolean, bounds?: Box3 | OBB, firstOnly?: boolean, tasOnly?: boolean): Array | null; intersectRay(scene: Scene, camera: Camera, ray: Ray, castLayers?: Array, nearest?: boolean, bounds?: Box3 | OBB, firstOnly?: boolean, tasOnly?: boolean): Array | null; private setRaycasterLayers; private intersectInternal; static aabbPlanePoints: (plane: Plane, aabb: Box3) => Vector3[]; }