import type { Vector3 } from '@holoscript/core'; /** * RaycastSystem.ts * * Raycasting: ray-AABB, ray-sphere, ray-plane intersection tests, * distance sorting, layer masks, and batch queries. * * @module physics */ export interface Ray { origin: Vector3; direction: Vector3; } export interface AABB { min: Vector3; max: Vector3; } export interface Sphere { center: Vector3; radius: number; } export interface Plane { normal: Vector3; distance: number; } export interface RayHit { entityId: string; distance: number; point: Vector3; normal: Vector3; } export interface Collider { entityId: string; type: 'aabb' | 'sphere' | 'plane'; shape: AABB | Sphere | Plane; layer: number; } export declare class RaycastSystem { private toArr; private colliders; addCollider(collider: Collider): void; removeCollider(entityId: string): void; getColliderCount(): number; raycast(ray: Ray, maxDistance?: number, layerMask?: number): RayHit | null; raycastAll(ray: Ray, maxDistance?: number, layerMask?: number): RayHit[]; private rayAABB; private raySphere; private rayPlane; private normalize; } //# sourceMappingURL=RaycastSystem.d.ts.map