import { type AreaTargetInput, type CombatSpatialDeps } from "../combat/effects.js"; import type { EntityPosition } from "../scene/entityStore.js"; import type { Aim, QueryArcOptions } from "../scene/spatial.js"; import type { Tile } from "./tacticalGrid.js"; export interface PredictiveDeps { spatial: CombatSpatialDeps; queryArc(options: QueryArcOptions): string[]; canReceive?(instanceId: string, effect: string): string | null; } export interface PredictedTarget { instanceId: string; scale: number; } export interface AreaPredictInput extends AreaTargetInput { effect?: string; requireReceive?: boolean; } export interface ArcPredictInput { from: string; aim: Aim; radius: number; halfAngleDeg?: number; effect?: string; requireReceive?: boolean; } /** @internal */ export declare function predictAreaEffect(deps: PredictiveDeps, input: AreaPredictInput): PredictedTarget[]; /** @internal */ export declare function predictArcEffect(deps: PredictiveDeps, input: ArcPredictInput): PredictedTarget[]; export interface TilePredictInput { at: EntityPosition; radius: number; originTile: Tile; tileSize: number; } /** @internal */ export declare function predictTiles(input: TilePredictInput): Tile[];