using CryptoExchange.Net.Objects;
using System.Threading;
using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
/// Client for getting the mark price klines for a symbol
///
public interface IMarkPriceKlineRestClient : ISharedClient
{
///
/// Mark price klines 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.
///
GetMarkPriceKlinesOptions GetMarkPriceKlinesOptions { get; }
///
/// Get mark price kline/candlestick data, see for request options and exchange specific required/optional parameters.
/// The result is paginated, if there are more results to be retrieved, the `NextPageRequest` property of the result will contain the pagination request to be used for the next request to continue pagination.
///
/// Request info
/// The pagination request from the previous request result `NextPageRequest` property to continue pagination
/// Cancellation token
Task> GetMarkPriceKlinesAsync(GetKlinesRequest request, PageRequest? nextPageToken = null, CancellationToken ct = default);
}
}