using CryptoExchange.Net.Objects;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
/// Request definition for retrieving spot symbols from an exchange.
///
public interface IGetSpotSymbolsEndpoint : ISharedApiEndpoint
{
///
/// Get the spot symbol catalog. Only available if has been called previously.
///
SharedSymbolCatalog? SpotSymbolCatalog { get; }
///
/// Get all spot symbols for a specific base asset
///
/// Asset, for example `ETH`
Task> GetSpotSymbolsForBaseAssetAsync(string baseAsset);
///
/// Gets whether the client supports a spot symbol
///
/// The symbol
Task> SupportsSpotSymbolAsync(SharedSymbol symbol);
///
/// Gets whether the client supports a spot symbol
///
/// The symbol name
Task> SupportsSpotSymbolAsync(string symbolName);
///
/// Spot symbols 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.
///
GetSpotSymbolsOptions GetSpotSymbolsOptions { get; }
///
/// Get info on all available spot symbols on the exchange, see for request options and exchange specific required/optional parameters.
///
/// Request info
/// Cancellation token
Task> GetSpotSymbolsAsync(GetSymbolsRequest request, CancellationToken ct = default);
}
}