import type { Point } from "../../../pathing/PathingMap"; import type { Player } from "../../../players/Player"; import type { SpriteProps } from "../Sprite"; import { Sprite } from "../Sprite"; import type { Unit } from "./Unit"; declare type ProjectileProps = Omit & { producer: Unit; target: Point; speed?: number; owner: Player; splash?: number; damage: number; onDamage?: (target: Sprite, damage: number, attacker: Unit, projectile: Projectile) => void; x?: number; y?: number; }; export declare class Projectile extends Sprite { static readonly isProjectile = true; static defaults: { collisionRadius: number; speed: number; splash: number; maxHealth: number; selectable: boolean; blocksPathing: number; requiresPathing: number; meshBuilder: { color: string; opacity: number; shadows: boolean; shape: "square" | "circle"; colorFilter?: ((color: import("three").Color) => import("three").Color) | undefined; scale?: number | undefined; shadow?: string | undefined; mutator?: ((mesh: import("three").Mesh) => void) | undefined; }; }; speed: number; owner: Player; splash: number; damageAmount: number; onDamage?: (target: Sprite, damage: number, attacker: Unit, projectile: Projectile) => void; producer: Unit; constructor({ producer, target, speed, splash, damage, onDamage, ...props }: ProjectileProps); } export {};