using System;
namespace CryptoExchange.Net.RateLimiting.Interfaces
{
///
/// Rate limit window tracker
///
public interface IWindowTracker
{
///
/// Time period the limit is for
///
TimeSpan TimePeriod { get; }
///
/// The limit in the time period
///
int Limit { get; }
///
/// The current count within the time period
///
int Current { get; }
///
/// Get the time to wait to fit the weight
///
///
///
TimeSpan GetWaitTime(int weight);
///
/// Register the weight in this window
///
/// Request weight
void ApplyWeight(int weight);
}
}