using System.Threading;
namespace Robust.Shared.Timing
{
///
/// Manages -based timing, allowing you to register new timers with optional cancellation.
///
[NotContentImplementable]
public interface ITimerManager
{
///
/// Registers a timer with the manager, which will be executed on the main thread when its duration has
/// elapsed.
///
///
/// Due to the granularity of the game simulation, the wait time for timers is will (effectively) round to
/// the nearest multiple of a tick, as they can only be processed on tick.
///
void AddTimer(Timer timer, CancellationToken cancellationToken = default);
void UpdateTimers(FrameEventArgs frameEventArgs);
}
}