namespace Syntriax.Engine.Systems.Time; public interface IReadOnlyTimer { event TimerEventHandler? OnStarted; event TimerDeltaEventHandler? OnDelta; event TimerEventHandler? OnStopped; event TimerEventHandler? OnPaused; event TimerEventHandler? OnResumed; double StartTime { get; } double Remaining { get; } float Percentage { get; } TimerState State { get; } delegate void TimerEventHandler(IReadOnlyTimer sender); delegate void TimerDeltaEventHandler(IReadOnlyTimer sender, double delta); }