import { AbstractMesh, Camera, PickingInfo, Ray, Scene, Vector3 } from '@babylonjs/core'; import { GameEntity } from "../classes/entity.d.ts"; import { GameEntityManager } from "../managers/entity.d.ts"; export interface EntityPickResult { entity: GameEntity; point: Vector3; distance: number; normal: Vector3; mesh: AbstractMesh; pickingInfo: PickingInfo; } export interface EntityPickFilter { type?: string; tags?: string[]; predicate?: (entity: GameEntity) => boolean; } export declare class RaycastHelper { private _entityManager; constructor(entityManager: GameEntityManager); pickEntity(scene: Scene, x: number, y: number, filter?: EntityPickFilter): EntityPickResult | null; pickEntities(scene: Scene, x: number, y: number, filter?: EntityPickFilter): EntityPickResult[]; pickEntityWithRay(scene: Scene, ray: Ray, filter?: EntityPickFilter): EntityPickResult | null; pickEntitiesWithRay(scene: Scene, ray: Ray, filter?: EntityPickFilter): EntityPickResult[]; pickEntityForward(scene: Scene, camera: Camera, maxDistance?: number, filter?: EntityPickFilter): EntityPickResult | null; private _toEntityResult; }