import { Vector2 } from '@rpgjs/common'; import { ClientProjectileImpact, ClientProjectileSpawn } from '../Game/ProjectileManager'; /** Raycast surface of the client physics engine used for prediction. */ interface ProjectileRaycaster { raycast(origin: Vector2, direction: Vector2, range: number, collisionMask: ClientProjectileSpawn["collisionMask"], filter: (entity: { uuid: string; }) => boolean): { entity: { uuid: string; }; point: { x: number; y: number; }; distance: number; } | null | undefined; } /** * Predict where a projectile hits by raycasting the client physics world. * * The prediction is only visual: the server still decides the authoritative * impact. Returns `null` when prediction is disabled, the projectile data is * invalid, or nothing is hit within range. */ export declare function predictProjectileImpact(physic: ProjectileRaycaster | undefined, projectile: ClientProjectileSpawn): ClientProjectileImpact | null; export {};