import * as THREE from 'three'; import { ConstructorProps, ContextManager, Event } from '@zcomponent/core'; import { Object3D } from './Object3D'; export interface IntersectionEvent { raycaster: Raycaster; component: Object3D; object: THREE.Object3D; } export interface IntersectionPresentEvent extends IntersectionEvent { distance: number; point: [number, number, number]; face?: THREE.Face; faceIndex?: number; uv?: [number, number]; uv2?: [number, number]; instanceId?: number; intersections: IntersectionPresentEvent[]; stopPropagation: () => void; stopHierarchyPropagation: () => void; stopDepthPropagation: () => void; } /** * Raycaster * Root element: [THREE.Object3D](https://threejs.org/docs/index.html#api/en/core/Object3D) * * @see https://threejs.org/docs/index.html#api/en/core/Raycaster * @zcomponent * @zicon trending_flat * @ztag three/Object3D/Raycaster * @zparents three/Object3D/Group/** */ export declare class Raycaster extends Object3D { /** @zui */ onIntersections: Event<[IntersectionPresentEvent[]]>; /** @zui */ onIntersectionEnter: Event<[IntersectionPresentEvent]>; /** @zui */ onIntersectionLeave: Event<[IntersectionEvent]>; raycaster: THREE.Raycaster; /** * @zprop * @zgroup Raycaster * @zgrouppriority 20 */ searchTags: string[]; private _hoverComponnents; private _helper; constructor(contextManager: ContextManager, props: ConstructorProps); private _updateHelpers; private _updateEnabled; private _frame; dispose(): never; }