import type { Action } from "../../../actions/types"; import type { Weapon } from "../../../components/DamageComponent"; import type { Point } from "../../../pathing/PathingMap"; import type { Player } from "../../../players/Player"; import type { SpriteDefaultProps, SpriteProps } from "../Sprite"; import { Sprite } from "../Sprite"; import type { Obstruction } from "./units/Obstruction"; export declare type UnitProps = SpriteProps & { isIllusion?: boolean; owner: Player; speed?: number; weapon?: Weapon; autoAttack?: boolean; name?: string; builds?: typeof Obstruction[]; }; export declare type UnitDefaultProps = SpriteDefaultProps & Required>; declare class Unit extends Sprite { static readonly isUnit = true; static defaults: UnitDefaultProps; isIllusion: boolean; mirrors?: Unit[]; owner: Player; speed: number; name: string; builds: typeof Obstruction[]; obstructions: Obstruction[]; constructor({ autoAttack, builds, isIllusion, name, speed, weapon, meshBuilder, ...props }: UnitProps); attack(target: Sprite): void; walkTo(target: Point): void; holdPosition(): void; stop(): void; buildAt(target: Point, ObstructionClass: typeof Obstruction): void; get actions(): Action[]; toJSON(): ReturnType; } export { Unit };