using CryptoExchange.Net.Objects;
using System.Threading;
using System.Threading.Tasks;
namespace CryptoExchange.Net.SharedApis
{
///
/// Client for requesting kline/candlestick data
///
public interface IKlineRestClient : ISharedClient
{
///
/// Kline 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.
///
GetKlinesOptions GetKlinesOptions { get; }
///
/// Get 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> GetKlinesAsync(GetKlinesRequest request, PageRequest? nextPageToken = null, CancellationToken ct = default);
}
}