import type { Action } from "../../../../actions/types"; import type { Player } from "../../../../players/Player"; import type { UnitProps } from "../Unit"; import { Unit } from "../Unit"; export declare type ObstructionProps = UnitProps & { buildTime?: number; cost?: Record; owner: Player; progress?: number; upgradesTo?: typeof Obstruction[]; }; export declare class Obstruction extends Unit { static readonly isObstruction = true; static defaults: { buildHotkey: "x" | "y" | " " | "Escape" | "a" | "z" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | undefined; buildDescription: string | undefined; cost: {}; requiresPathing: number; speed: number; meshBuilder: { shape: "square" | "circle"; color?: string | undefined; colorFilter?: ((color: import("three").Color) => import("three").Color) | undefined; scale?: number | undefined; shadow?: string | undefined; opacity?: number | undefined; shadows?: boolean | undefined; mutator?: ((mesh: import("three").Mesh) => void) | undefined; }; progress: number; collisionRadius: number; isIllusion: boolean; autoAttack: boolean; }; requiresTilemap: import("../../../../pathing/PathingMap").Footprint; blocksTilemap: import("../../../../pathing/PathingMap").Footprint; structure: boolean; buildTime: number; owner: Player; private static _buildAction; private static _upgradeActionMap; static get buildAction(): Action; static upgradeAction(from: typeof Obstruction): Action; constructor({ buildTime, progress, upgradesTo, ...props }: ObstructionProps); get actions(): Action[]; }