import { AxiosRequestConfig } from 'axios'; import BaseRestClient from './util/BaseRestClient'; import { ContractGridDirection, GridAlgoOrderType, GridAlgoSubOrderType, InstrumentType, MarginMode, numberInString, Ticker, AlgoOrderRequest, AmendOrderRequest, CancelAlgoOrderRequest, OrderIdRequest, ClosePositionRequest, OrderRequest, OrderHistoryRequest, FillsHistoryRequest, AlgoRecentHistoryRequest, AlgoLongHistoryRequest, PaginatedSymbolRequest, OrderResult, CancelledOrderResult, AmendedOrder, ClosedPositions, OrderDetails, OrderListItem, HistoricOrder, OrderFill, AlgoOrderResult, AlgoOrderListItem, HistoricAlgoOrder, BlockCounterParty, CreateBlockRFQRequest, CreateRFQResult, CancelBlockRFQRequest, CancelBlockQuoteResult, CancelMultipleBlockRFQRequest, TimestampObject, ExecuteBlockQuoteResult, ExecuteBlockQuoteRequest, CreateBlockQuoteRequest, CreateBlockQuoteResult, CancelBlockRFQResult, CancelBlockQuoteRequest, CancelMultipleBlockQuoteRequest, BlockRFQResult, GetBlockRFQSParams, GetBlockQuoteParams, GetBlockQuoteResult, FundingCurrency, FundingBalance, AccountAssetValuation, FundTransferResult, FundTransferState, AssetBillDetails, AccountBalance, GetPositionsParams, AccountPosition, GetHistoricPositionParams, HistoricAccountPosition, AccountPositionRisk, AccountBill, AccountConfiguration, AccountPositionModeResult, AccountLeverageResult, AccountMaxOrderAmount, AccountMaxTradableAmount, AccountChangeMarginResult, AccountLeverage, AccountMaxLoan, AccountFeeRate, AccountIsolatedMode, SubAccount, SubAccountAPIReset, SubAccountBalances, SubAccountTransferResult, IndexTicker, OrderBook, Candle, CandleNoVolume, Trade, Pagination, APIResponse, GetGridAlgoOrdersRequest, FundsTransferRequest, WithdrawRequest, ConvertTradeRequest, ConvertQuoteEstimateRequest, SetLeverageRequest, ChangePositionMarginRequest, SubAccountTransferRequest, GridAlgoOrderRequest, StopGridAlgoOrderRequest, APICredentials, RestClientOptions, APIMarket } from './types'; import { ASSET_BILL_TYPE } from './constants'; export declare class RestClient extends BaseRestClient { /** * @public Creates an instance of the REST API client. */ constructor(credentials?: APICredentials | null, environment?: APIMarket, restClientOptions?: RestClientOptions, requestOptions?: AxiosRequestConfig); getServerTime(): Promise; /** * * Trade endpoints (private) * */ submitOrder(params: OrderRequest): Promise; submitMultipleOrders(params: OrderRequest[]): Promise; cancelOrder(params: OrderIdRequest): Promise; cancelMultipleOrders(params: OrderIdRequest[]): Promise; amendOrder(params: AmendOrderRequest): Promise; amendMultipleOrders(params: AmendOrderRequest[]): Promise; closePositions(params: ClosePositionRequest): Promise; getOrderDetails(params: OrderIdRequest): Promise; getOrderList(params?: OrderHistoryRequest): Promise; /** * Get history for last 7 days */ getOrderHistory(params: OrderHistoryRequest): Promise; /** * Get history for last 3 months */ getOrderHistoryArchive(params: OrderHistoryRequest): Promise; /** * Get history for last 7 days */ getFills(params?: FillsHistoryRequest): Promise; /** * Get history for last 3 months */ getFillsHistory(params: FillsHistoryRequest): Promise; placeAlgoOrder(params: AlgoOrderRequest): Promise; cancelAlgoOrder(params: CancelAlgoOrderRequest[]): Promise; cancelAdvanceAlgoOrder(params: CancelAlgoOrderRequest[]): Promise; getAlgoOrderList(params: AlgoRecentHistoryRequest): Promise; getAlgoOrderHistory(params: AlgoLongHistoryRequest): Promise; /** Get easy convert currency list */ getEasyConvertCurrencies(): Promise; /** * Place easy convert : Convert small currencies to mainstream currencies. * Only applicable to the crypto balance less than $10. * * Maximum 5 currencies can be selected in one order. * If there are multiple currencies, separate them with commas in the "from" field. */ submitEasyConvert(fromCcys: string[], toCcy: string): Promise>; /** Get easy convert history : Get the history and status of easy convert trades. */ getEasyConvertHistory(params?: Pagination): Promise>; /** * Get one-click repay currency list : Get list of debt currency data and repay currencies. * Debt currencies include both cross and isolated debts. */ getOneClickRepayCurrencyList(debtType?: 'cross' | 'isolated'): Promise>; /** * Trade one-click repay to repay cross debts. * Isolated debts are not applicable. * The maximum repayment amount is based on the remaining available balance of funding and trading accounts. */ submitOneClickRepay(debtCcys: string[], repayCcy: string): Promise>; /** Get the history and status of one-click repay trades. */ getOneClickRepayHistory(params?: Pagination): Promise>; /** * * Block trading endpoints (private) * */ getBlockCounterParties(): Promise; createBlockRFQ(params: CreateBlockRFQRequest): Promise; cancelBlockRFQ(params: CancelBlockRFQRequest): Promise; cancelMultipleBlockRFQs(params: CancelMultipleBlockRFQRequest): Promise; cancelAllRFQs(): Promise; executeBlockQuote(params: ExecuteBlockQuoteRequest): Promise; createBlockQuote(params: CreateBlockQuoteRequest): Promise; cancelBlockQuote(params: CancelBlockQuoteRequest): Promise; cancelMultipleBlockQuotes(params: CancelMultipleBlockQuoteRequest): Promise; cancelAllBlockQuotes(): Promise; getBlockRFQs(params?: GetBlockRFQSParams): Promise; getBlockQuotes(params?: GetBlockQuoteParams): Promise; getBlockTrades(params?: unknown): Promise; getPublicRFQBlockTrades(params?: unknown): Promise; /** * * Funding endpoints (private) * */ getCurrencies(ccy?: string): Promise; getBalances(ccy?: string): Promise; getAccountAssetValuation(ccy?: string): Promise; fundsTransfer(params: FundsTransferRequest): Promise; /** Either parameter transId or clientId is required. */ getFundsTransferState(params: { transId?: string; clientId?: string; type?: '0' | '1' | '2'; }): Promise; getAssetBillsDetails(params?: { ccy?: string; type?: `${ASSET_BILL_TYPE}`; clientId?: string; after?: numberInString; before?: numberInString; limit?: numberInString; }): Promise; getLightningDeposits(ccy: string, amt: numberInString, to?: '6' | '18'): Promise; getDepositAddress(ccy: string): Promise; getDepositHistory(params?: unknown): Promise; submitWithdraw(params: WithdrawRequest): Promise; submitWithdrawLightning(ccy: string, invoice: string, memo?: string): Promise; cancelWithdrawal(wdId: string): Promise; getWithdrawalHistory(params?: unknown): Promise; smallAssetsConvert(ccy: string[]): Promise; getSavingBalance(ccy?: string): Promise; savingsPurchaseRedemption(ccy: string, amt: numberInString, side: 'purchase' | 'redempt', rate: numberInString): Promise; setLendingRate(ccy: string, rate: numberInString): Promise; getLendingHistory(params?: PaginatedSymbolRequest): Promise; getPublicBorrowInfo(ccy?: string): Promise; getPublicBorrowHistory(params?: PaginatedSymbolRequest): Promise; /** * * Convert endpoints (private) * */ getConvertCurrencies(): Promise; getConvertCurrencyPair(fromCcy: string, toCcy: string): Promise; estimateConvertQuote(params: ConvertQuoteEstimateRequest): Promise; convertTrade(params: ConvertTradeRequest): Promise; getConvertHistory(params?: unknown): Promise; /** * * Account endpoints (private) * */ getBalance(ccy?: string): Promise; getPositions(params?: GetPositionsParams): Promise; getPositionsHistory(params?: GetHistoricPositionParams): Promise; getAccountPositionRisk(instType?: Omit<'SPOT', InstrumentType>): Promise; /** Up to last 7 days */ getBills(params?: unknown): Promise; /** Last 3 months */ getBillsArchive(params?: unknown): Promise; getAccountConfiguration(): Promise; setPositionMode(posMode: 'long_short_mode' | 'net'): Promise; setLeverage(params: SetLeverageRequest): Promise; /** Max buy/sell amount or open amount */ getMaxBuySellAmount(params: { instId: string; tdMode: 'cross' | 'isolated' | 'cash'; ccy?: string; px?: string; leverage?: string; unSpotOffset?: boolean; }): Promise; getMaxAvailableTradableAmount(params: { instId: string; ccy?: string; tdMode: 'cross' | 'isolated' | 'cash'; reduceOnly?: boolean; unSpotOffset?: boolean; }): Promise; changePositionMargin(params: ChangePositionMarginRequest): Promise; getLeverage(instId: string, mgnMode: MarginMode): Promise; getMaxLoan(instId: string, mgnMode: MarginMode, mgnCcy?: string): Promise; getFeeRates(instType: InstrumentType, instId?: string, uly?: string): Promise; getInterestAccrued(params?: unknown): Promise; getInterestRate(ccy?: string): Promise; setGreeksDisplayType(greeksType: 'PA' | 'BS'): Promise; setIsolatedMode(isoMode: 'automatic' | 'autonomy', type: 'MARGIN' | 'CONTRACTS'): Promise; getMaxWithdrawals(ccy?: string): Promise; getAccountRiskState(): Promise; borrowRepayVIPLoan(ccy: string, side: 'borrow' | 'repay', amt: numberInString, ordId?: string): Promise; getVIPLoanBorrowRepayHistory(params?: unknown): Promise; getBorrowInterestLimits(params?: { type?: '1' | '2'; ccy?: string; }): Promise; positionBuilder(params?: unknown): Promise; getGreeks(ccy?: string): Promise; getPMLimitation(params: { instType: 'SWAP' | 'FUTURES' | 'OPTION'; uly?: string; instFamily?: string; }): Promise; /** * * SubAccount endpoints (private) * */ /** View sub-account list */ getSubAccountList(params?: unknown): Promise; /** Reset the APIKey of a sub-account */ resetSubAccountAPIKey(subAcct: string, apiKey: string, options?: { label?: string; perm?: string; ip?: string; }): Promise; /** Get sub-account trading balance */ getSubAccountBalances(subAcct: string): Promise; /** Get sub-account funding balance */ getSubAccountFundingBalances(subAcct: string, ccy?: string): Promise; /** History of sub-account transfer */ getSubAccountTransferHistory(params?: { ccy?: string; type?: '0' | '1'; subAcct?: string; after?: string; before?: string; limit?: string; }): Promise; /** Master accounts manage the transfers between sub-accounts */ transferSubAccountBalance(params: SubAccountTransferRequest): Promise; /** Set Permission Of Transfer Out */ setSubAccountTransferOutPermission(subAcct: string, canTransOut?: boolean): Promise; /** Get custody trading sub-account list */ getSubAccountCustodyTradingList(subAcct?: string): Promise; /** * * Grid trading endpoints (private) * */ placeGridAlgoOrder(params: GridAlgoOrderRequest): Promise; amendGridAlgoOrder(algoId: string, instId: string, triggerPx: { slTriggerPx?: numberInString; tpTriggerPx?: numberInString; }): Promise; stopGridAlgoOrder(orders: StopGridAlgoOrderRequest[]): Promise; getGridAlgoOrderList(params: GetGridAlgoOrdersRequest): Promise; getGridAlgoOrderHistory(params: GetGridAlgoOrdersRequest): Promise; getGridAlgoOrderDetails(algoOrdType: GridAlgoOrderType, algoId: string): Promise; getGridAlgoSubOrders(algoOrdType: GridAlgoOrderType, algoId: string, type: GridAlgoSubOrderType, groupId?: string, pagination?: { after?: numberInString; before?: numberInString; limit?: number; }): Promise; /** Only contract grid supports this method */ getGridAlgoOrderPositions(algoOrdType: 'contract_grid', algoId: string): Promise; spotGridWithdrawIncome(algoId: string): Promise; computeGridMarginBalance(algoId: string, type: 'add' | 'reduce', amt?: numberInString): Promise; adjustGridMarginBalance(algoId: string, type: 'add' | 'reduce', change: { amt?: numberInString; percent?: numberInString; }): Promise; getGridAIParameter(algoOrdType: GridAlgoOrderType, instId: string, direction: ContractGridDirection, duration?: '7D' | '30D' | '180D'): Promise; /** * * Earn/staking endpoints (private) * */ /** Get earn offers */ getStakingOffers(params?: { productId?: string; protocolType?: 'staking' | 'defi'; ccy?: string; }): Promise>; /** Earn/staking purchase */ submitStake(productId: string, investData: { ccy: string; amt: string; }[], term?: string): Promise>; /** Earn/staking redeem */ redeemStake(ordId: string, protocolType: 'staking' | 'defi', allowEarlyRedeem?: boolean): Promise>; /** Earn/staking cancel purchases/redemptions */ cancelStakingRequest(ordId: string, protocolType: 'staking' | 'defi'): Promise>; /** Earn/staking get active orders */ getActiveStakingOrders(params?: { productId?: string; protocolType?: 'staking' | 'defi'; ccy?: string; state?: '8' | '13' | '9' | '1' | '2'; }): Promise>; /** Earn/staking get order history */ getStakingOrderHistory(params?: { productId?: string; protocolType?: string; ccy?: string; after?: string; before?: string; limit?: string; }): Promise>; /** * * Market data endpoints (public) * */ getTickers(instrumentType: InstrumentType, uly?: string): Promise; getTicker(instId: string): Promise; getIndexTickers(params: { quoteCcy?: string; instId?: string; }): Promise; getOrderBook(instId: string, sz?: numberInString): Promise; getCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getHistoricCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getIndexCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getHistoricIndexCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getMarkPriceCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getHistoricMarkPriceCandles(instId: string, bar?: string, pagination?: Pagination): Promise; getTrades(instId: string, limit?: number): Promise; getHistoricTrades(instId: string, pagination?: { after?: numberInString; before?: numberInString; limit?: numberInString; type?: '1' | '2'; }): Promise; get24hrTotalVolume(): Promise; getOracle(): Promise; getExchangeRate(): Promise; getIndexComponents(index: string): Promise; getBlockTickers(instType: InstrumentType, uly?: string): Promise; getBlockTicker(instId: string): Promise; getPublicBlockTrades(instId: string): Promise; /** * * Public data endpoints (public) * */ getInstruments(params: unknown): Promise; getDeliveryExerciseHistory(params: unknown): Promise; getOpenInterest(params: unknown): Promise; getFundingRate(params: unknown): Promise; getFundingRateHistory(params: unknown): Promise; getMinMaxLimitPrice(params: unknown): Promise; getOptionMarketData(params: unknown): Promise; getEstimatedDeliveryExercisePrice(params: unknown): Promise; getDiscountRateAndInterestFreeQuota(params: unknown): Promise; getSystemTime(params: unknown): Promise; getLiquidationOrders(params: unknown): Promise; getMarkPrice(params: unknown): Promise; getPositionTiers(params: unknown): Promise; getInterestRateAndLoanQuota(params: unknown): Promise; getVIPInterestRateAndLoanQuota(params: unknown): Promise; getUnderlying(params: unknown): Promise; getInsuranceFund(params: unknown): Promise; getUnitConvert(params: unknown): Promise; /** * * Trading data endpoints (public) * */ getSupportCoin(): Promise; getTakerVolume(): Promise; getMarginLendingRatio(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise; getLongShortRatio(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise; getContractsOpenInterestAndVolume(params: { ccy: string; begin?: numberInString; end?: numberInString; period: '5m' | '1H' | '1D'; }): Promise; getOptionsOpenInterestAndVolume(params: { ccy: string; period: '8H' | '1D'; }): Promise; getPutCallRatio(params: { ccy: string; period: '8H' | '1D'; }): Promise; getOpenInterestAndVolumeExpiry(params: { ccy: string; period: '8H' | '1D'; }): Promise; getOpenInterestAndVolumeStrike(params: { ccy: string; expTime: string; period: '8H' | '1D'; }): Promise; getTakerFlow(params: { ccy: string; period: '8H' | '1D'; }): Promise; /** * * Status endpoints (public) * */ getSystemStatus(state?: 'scheduled' | 'ongoing' | 'pre_open' | 'completed' | 'canceled'): Promise; /** * * Broker endpoints (private) * */ getBrokerAccountInformation(): Promise; }