using System.Threading.Tasks;
using System.Threading;
using CryptoExchange.Net.Objects;
namespace CryptoExchange.Net.SharedApis
{
///
/// Client for managing futures orders using a client order id
///
public interface IFuturesOrderClientIdRestClient : ISharedClient
{
///
/// Futures get order by client order id 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.
///
GetFuturesOrderByClientOrderIdOptions GetFuturesOrderByClientOrderIdOptions { get; }
///
/// Get info on a specific futures order using a client order id, see for request options and exchange specific required/optional parameters.
///
/// Request info
/// Cancellation token
Task> GetFuturesOrderByClientOrderIdAsync(GetOrderRequest request, CancellationToken ct = default);
///
/// Futures cancel order by client order id 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.
///
CancelFuturesOrderByClientOrderIdOptions CancelFuturesOrderByClientOrderIdOptions { get; }
///
/// Cancel a futures order using client order id, see for request options and exchange specific required/optional parameters.
///
/// Request info
/// Cancellation token
Task> CancelFuturesOrderByClientOrderIdAsync(CancelOrderRequest request, CancellationToken ct = default);
}
}