using Cysharp.Threading.Tasks;
using Enums;
using UnityEngine;
using Views;

namespace Services.Interfaces {
    public interface IGameBoardService {
        void Setup();
        void SpawnGem(Vector2Int position, GemView gemPrefab, GemType gemType);
        void SetGem(Vector2Int position, Gem gem);
        Gem GetGem(Vector2Int position);
        void DestroyMatches();
        UniTask MoveGemsDown();
        UniTask FillBoard();
        void RefillBoard();
        void CheckMisplacedGems();
        void DestroyMatchedGems(Vector2Int position);
    }
}