namespace NeonSprawl.Server.Game.AbilityInput;
/// In-memory per-player hotbar slot cooldown ends (NEO-32).
public interface IPlayerAbilityCooldownStore
{
/// Returns true when the slot has a cooldown end strictly after .
bool IsOnCooldown(string playerId, int slotIndex, DateTimeOffset now);
/// Sets cooldown end for a slot to + .
void StartCooldown(string playerId, int slotIndex, DateTimeOffset now, TimeSpan duration);
/// Gets active cooldown end when is strictly before that end; removes expired entries (same hygiene as ).
bool TryGetCooldownEndUtc(string playerId, int slotIndex, DateTimeOffset now, out DateTimeOffset endUtc);
}