import { AxiosRequestConfig } from 'axios'; import { BaseRestClient, RestClientType } from './lib/BaseRestClient.js'; import { RestClientOptions } from './lib/requestUtils.js'; import { CancelFuturesOrderRequest, CancelFuturesPlanOrderRequest, CancelFuturesTrailOrderRequest, CloseAllFuturesPositionsRequest, FuturesAccountHistoricOrderRequest, FuturesAccountHistoricTransactionRequest, FuturesAccountOpenOrdersRequest, FuturesAccountPlanOrdersRequest, FuturesAccountTradesRequest, FuturesAccountTransfersRequest, FuturesAffiliateCustomerInfoRequest, FuturesAffiliateDepositWithdrawalListRequest, FuturesAffiliateInviteCheckRequest, FuturesAffiliateRebateApiRequest, FuturesAffiliateRebateInviteUserRequest, FuturesAffiliateRebatesRequest, FuturesAffiliateRebateUserRequest, FuturesAffiliateTradesRequest, FuturesAutoRepaymentRequest, FuturesCrossCollateralInterestLogRequest, FuturesFundingRateV2Request, FuturesKlinesRequest, FuturesSubTransfersRequest, FuturesSubWalletRequest, GetFuturesOrderRequest, SetFuturesLeverageRequest, SubmitFuturesFundingAccountTransferRequest, SubmitFuturesOrderRequest, SubmitFuturesPlanOrderRequest, SubmitFuturesSimulatedClaimRequest, SubmitFuturesSubToMainSubFromSubRequest, SubmitFuturesTPSLOrderRequest, SubmitFuturesTrailOrderRequest, SubmitFuturesTransferRequest, TransferFuturesAssetsRequest, UpdateFuturesLimitOrderRequest, UpdateFuturesPlanOrderRequest, UpdateFuturesPresetPlanOrderRequest, UpdateFuturesTPSLOrderRequest } from './types/request/futures.types.js'; import { FuturesAccountAsset, FuturesAccountHistoricOrder, FuturesAccountHistoricTransaction, FuturesAccountOpenOrder, FuturesAccountOrder, FuturesAccountPlanOrders, FuturesAccountPosition, FuturesAccountPositionV2, FuturesAccountSetLeverageResult, FuturesAccountSubTransfer, FuturesAccountTrade, FuturesAccountTransfer, FuturesAffiliateCustomerInfoResponse, FuturesAffiliateDepositWithdrawalListResult, FuturesAffiliateInviteCheckResponse, FuturesAffiliateRebateApiResponse, FuturesAffiliateRebateInviteUserResponse, FuturesAffiliateRebateUserResponse, FuturesAutoRepaymentApiResponse, FuturesContractDepth, FuturesContractDetails, FuturesCrossCollateralInterestLogApiResponse, FuturesFundingRate, FuturesFundingRateHistory, FuturesFundingRateV2Response, FuturesKline, FuturesLeverageBracketRule, FuturesMarketTrade, FuturesOpenInterest, FuturesOrderSubmitResult, FuturesSimulatedClaimResponse, FuturesTransferSubmitResult, PositionRisk } from './types/response/futures.types.js'; import { AccountCurrencyBalanceV1, APIResponse } from './types/response/shared.types.js'; import { ServiceStatus } from './types/response/spot.types.js'; /** * REST API client for Bitmart's V2 Futures APIs via the "api-cloud-v2.bitmart.com" domain */ export declare class FuturesClientV2 extends BaseRestClient { constructor(restClientOptions?: RestClientOptions, requestOptions?: AxiosRequestConfig); getClientType(): RestClientType; /** * * System Status Endpoints * **/ getSystemTime(): Promise>; getSystemStatus(): Promise>; /** * ***************** * USD-M Futures V2 * ***************** * */ /** * * Futures Market Data * */ /** * Get a list of all symbols, including most recent price, rules (min/max precision/volume/etc) and other metrics (funding rate, open interest, contract expiry, etc). */ getFuturesContractDetails(params?: { symbol?: string; }): Promise>; getFuturesContractDepth(params: { symbol: string; }): Promise>; getFuturesMarketTrade(params: { symbol: string; limit?: number; }): Promise>; getFuturesOpenInterest(params: { symbol: string; }): Promise>; getFuturesFundingRate(params: { symbol: string; }): Promise>; /** * Current funding rate for one or all contract pairs. * GET `contract/public/funding-rate-v2` */ getFuturesFundingRateV2(params?: FuturesFundingRateV2Request): Promise>; getFuturesKlines(params: FuturesKlinesRequest): Promise>; getFuturesMarkPriceKlines(params: FuturesKlinesRequest): Promise>; getFuturesFundingRateHistory(params: { symbol: string; limit?: string; }): Promise>; /** * Get current leverage risk limit for a specified contract * @param params Optional parameters including symbol * @returns Promise with leverage bracket information */ getFuturesLeverageBracket(params?: { symbol?: string; }): Promise>; /** * * Futures Account Data * */ getFuturesAccountAssets(): Promise>; /** * * Futures Trading * */ getFuturesTradeFeeRate(params: { symbol: string; }): Promise>; getFuturesAccountOrder(params: GetFuturesOrderRequest): Promise>; getFuturesAccountOrderHistory(params: FuturesAccountHistoricOrderRequest): Promise>; getFuturesAccountOpenOrders(params?: FuturesAccountOpenOrdersRequest): Promise>; getFuturesAccountPlanOrders(params?: FuturesAccountPlanOrdersRequest): Promise>; getFuturesAccountPositions(params?: { symbol?: string; account?: string; }): Promise>; getFuturesAccountPositionsV2(params?: { symbol?: string; account?: string; }): Promise>; /** * Get current position risk details */ getPositionRiskDetails(params?: { symbol?: string; account?: string; }): Promise>; getFuturesAccountTrades(params: FuturesAccountTradesRequest): Promise>; getFuturesAccountTransactionHistory(params: FuturesAccountHistoricTransactionRequest): Promise>; /** * Query auto repayment records (KEYED). Defaults to last 7 days if times omitted; max 20 records per request. */ getFuturesAutoRepayment(params?: FuturesAutoRepaymentRequest): Promise; /** * Query cross margin interest accrual logs (KEYED). Defaults to last 7 days; max interval 90 days; max 20 records per request. */ getFuturesCrossCollateralInterestLog(params?: FuturesCrossCollateralInterestLogRequest): Promise; getFuturesTransfers(params: FuturesAccountTransfersRequest): Promise>; submitFuturesOrder(params: SubmitFuturesOrderRequest): Promise>; updateFuturesLimitOrder(params: UpdateFuturesLimitOrderRequest): Promise>; cancelFuturesOrder(params: CancelFuturesOrderRequest): Promise>; cancelAllFuturesOrders(params: { symbol: string; }): Promise>; cancelAllFuturesOrdersAfter(params: { timeout: number; symbol: string; }): Promise>; /** * Feature: Market-close all or filtered futures positions (exchange update 2026-06-16). */ closeAllFuturesPositions(params: CloseAllFuturesPositionsRequest): Promise>>; submitFuturesPlanOrder(params: SubmitFuturesPlanOrderRequest): Promise>; cancelFuturesPlanOrder(params: CancelFuturesPlanOrderRequest): Promise>; submitFuturesTransfer(params: SubmitFuturesTransferRequest): Promise>; /** * Feature: Funding account transfer between funding and futures accounts (exchange update 2026-06-29). */ submitFuturesFundingAccountTransfer(params: SubmitFuturesFundingAccountTransferRequest): Promise>>; setFuturesLeverage(params: SetFuturesLeverageRequest): Promise>; submitFuturesTPSLOrder(params: SubmitFuturesTPSLOrderRequest): Promise>; updateFuturesPlanOrder(params: UpdateFuturesPlanOrderRequest): Promise>; updateFuturesPresetPlanOrder(params: UpdateFuturesPresetPlanOrderRequest): Promise>; updateFuturesTPSLOrder(params: UpdateFuturesTPSLOrderRequest): Promise>; submitFuturesTrailOrder(params: SubmitFuturesTrailOrderRequest): Promise>; cancelFuturesTrailOrder(params: CancelFuturesTrailOrderRequest): Promise>; /** * Set position mode (hedge_mode or one_way_mode) */ setPositionMode(params: { position_mode: 'hedge_mode' | 'one_way_mode'; }): Promise>; /** * Get current position mode */ getPositionMode(): Promise>; /** * * Futures Sub-Account Endpoints * */ submitFuturesSubToMainTransferFromMain(params: TransferFuturesAssetsRequest): Promise>; submitFuturesMainToSubTransferFromMain(params: TransferFuturesAssetsRequest): Promise>; submitFuturesSubToMainSubFromSub(params: SubmitFuturesSubToMainSubFromSubRequest): Promise>; getFuturesSubWallet(params?: FuturesSubWalletRequest): Promise>; getFuturesSubTransfers(params: FuturesSubTransfersRequest): Promise>; getFuturesSubTransferHistory(params: { limit: number; }): Promise>; /** * * Futures Affiliate Endpoints * */ getFuturesAffiliateRebates(params: FuturesAffiliateRebatesRequest): Promise>; getFuturesAffiliateTrades(params: FuturesAffiliateTradesRequest): Promise>; /** * Get single user rebate data (KEYED) * GET `contract/private/affiliate/rebate-user` */ getFuturesAffiliateRebateUser(params: FuturesAffiliateRebateUserRequest): Promise>; /** * Feature: Check if a user CID was invited by the affiliate (exchange update 2026-02-03). */ getFuturesAffiliateInviteCheck(params: FuturesAffiliateInviteCheckRequest): Promise>; /** * Invited user contract account total assets and equity (USDT). * GET `contract/private/affiliate/aff-customer-info` */ getFuturesAffiliateCustomerInfo(params: FuturesAffiliateCustomerInfoRequest): Promise>; /** * Get invited customer list (KEYED) * GET `contract/private/affiliate/rebate-inviteUser` * Feature: list entries include `accountAssetTotal` (exchange update 2026-04-07). */ getFuturesAffiliateRebateInviteUser(params: FuturesAffiliateRebateInviteUserRequest): Promise>; /** * Get API Rebate Data (KEYED) * Used for API affiliates to query contract API rebate data within a certain time range * Feature: Query up to 60 days of data */ getFuturesAffiliateRebateApi(params: FuturesAffiliateRebateApiRequest): Promise>; /** * Deposit and withdrawal information of invited users (KEYED) * Feature: Query up to 60 days; max 50 records per page (exchange update 2026-04-07). */ getFuturesAffiliateDepositWithdrawalList(params: FuturesAffiliateDepositWithdrawalListRequest): Promise; /** * Simulated Claim (SIGNED) * Add available funds to the futures account (Only available in the Simulated-Environment) * * Note: This endpoint is only available in the Simulated Trading environment. * To use this endpoint, create a client instance with demoTrading: true * Example: * const simulatedClient = new FuturesClientV2({ * apiKey: 'your-api-key', * apiSecret: 'your-api-secret', * apiMemo: 'your-api-memo', * demoTrading: true * }); * * Alternatively, you can manually set baseUrl: 'https://demo-api-cloud-v2.bitmart.com' */ submitFuturesSimulatedClaim(params?: SubmitFuturesSimulatedClaimRequest): Promise>; }