// Assets/Scripts/Services/Interfaces/IBombService.cs using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; using Enums; using Models.Interfaces; using Structs; using UnityEngine; namespace Services.Interfaces { public interface IBombService { public BombSpawnRequest? PendingBombSpawn { get; } void SetLastSwap(Vector2Int from, Vector2Int to); void DetectBombSpawnFromLastSwap(HashSet currentMatches); List ApplyPendingBombSpawns(Action spawnGem); UniTask> GetInitialBombs(List protectedPositions, List bombCandidates); UniTask DetonateChainAsync( IReadOnlyList initialBombs, Func destroyAtAsync, IGameBoard gameBoard); } }