using CryptoExchange.Net.Authentication; using CryptoExchange.Net.Objects.Options; namespace CryptoExchange.Net.Interfaces.Clients { /// /// Base rest API client /// public interface IRestApiClient : IBaseApiClient { /// /// The factory for creating requests. Used for unit testing /// IRequestFactory RequestFactory { get; set; } /// /// Total amount of requests made with this API client /// int TotalRequestsMade { get; set; } } /// public interface IRestApiClient : IRestApiClient where TApiCredentials : ApiCredentials { /// /// Whether or not API credentials have been configured for this client. Does not check the credentials are actually valid. /// bool Authenticated { get; } /// /// Set the API credentials for this API client /// void SetApiCredentials(TApiCredentials credentials); /// /// Set new options. Note that when using a proxy this should be provided in the options even when already set before or it will be reset. /// /// Options to set void SetOptions(UpdateOptions options); } }