using System.Collections.Generic;
using CounterDrone.Core.Models;

namespace CounterDrone.Core.Algorithms
{
    /// <summary>防御规划引擎 — 给定火力单元池、威胁列表和探测能力，输出分配方案。
    /// planner 基于探测能力估算威胁的最早发现点（而非上帝视角的航路起点）。</summary>
    public interface IDefensePlanner
    {
        /// <param name="fireUnits">可用的火力单元（空基/地基统一表达）</param>
        /// <param name="threats">威胁批次列表</param>
        /// <param name="environment">作战环境（含天气，影响光电探测距离）</param>
        /// <param name="detectionSources">统一信息网络的探测源列表（独立探测设备 + 火力单元自带探测）。可为空列表。</param>
        PlannerResult Plan(List<FireUnit> fireUnits, List<DroneWave> threats,
            CombatScene environment, List<DetectionSource> detectionSources);
    }
}
