using CryptoExchange.Net.Objects;
using System.Threading;
using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
/// Client for request futures symbol info
///
public interface IFuturesSymbolRestClient : ISharedClient
{
///
/// Get the futures symbol catalog. Only available if has been called previously.
///
SharedSymbolCatalog? FuturesSymbolCatalog { get; }
///
/// Futures symbol request options.
/// Use and to check for required and optional parameters for the request.
/// Exchange specific parameters can be added to the request via the `ExchangeParameters` property of the request object.
///
GetFuturesSymbolsOptions GetFuturesSymbolsOptions { get; }
///
/// Get all futures symbols for a specific base asset
///
/// Asset, for example `ETH`
Task> GetFuturesSymbolsForBaseAssetAsync(string baseAsset);
///
/// Gets whether the client supports a futures symbol
///
/// The symbol
Task> SupportsFuturesSymbolAsync(SharedSymbol symbol);
///
/// Gets whether the client supports a futures symbol
///
/// The symbol name
Task> SupportsFuturesSymbolAsync(string symbolName);
///
/// Get info on all futures symbols supported on the exchange, see for request options and exchange specific required/optional parameters.
///
/// Request info
/// Cancellation token
Task> GetFuturesSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
}
}