namespace Syntriax.Engine.Systems.Time;

public interface IReadOnlyStopwatch
{
    event StopwatchEventHandler? OnStarted;
    event StopwatchDeltaEventHandler? OnDelta;
    event StopwatchEventHandler? OnStopped;

    double Time { get; }

    TimerState State { get; }

    event StopwatchEventHandler? OnPaused;
    event StopwatchEventHandler? OnResumed;

    delegate void StopwatchEventHandler(IReadOnlyStopwatch sender);
    delegate void StopwatchDeltaEventHandler(IReadOnlyStopwatch sender, double delta);
}