using CryptoExchange.Net.Authentication;
using CryptoExchange.Net.Objects;
using CryptoExchange.Net.Objects.Options;
using CryptoExchange.Net.SharedApis;
using System;
namespace CryptoExchange.Net.Interfaces
{
///
/// Base api client
///
public interface IBaseApiClient
{
///
/// Base address
///
string BaseAddress { get; }
///
/// Whether or not API credentials have been configured for this client. Does not check the credentials are actually valid.
///
bool Authenticated { get; }
///
/// Format a base and quote asset to an exchange accepted symbol
///
/// The base asset
/// The quote asset
/// The trading mode
/// The deliver date for a delivery futures symbol
///
string FormatSymbol(string baseAsset, string quoteAsset, TradingMode tradingMode, DateTime? deliverDate = null);
///
/// Set the API credentials for this API client
///
///
///
void SetApiCredentials(T credentials) where T : ApiCredentials;
///
/// 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.
///
/// Api credentials type
/// Options to set
void SetOptions(UpdateOptions options) where T : ApiCredentials;
}
}