import { Options } from 'ky';

/**
 * @enum MarketType
 * @description Enumeration of market types.
 */
declare enum MarketType {
    SPOT = "SPOT",
    MARGIN = "MARGIN",
    FUTURES = "FUTURES"
}
/**
 * @enum MarketStatus
 * @description Enumeration of market statuses.
 */
declare enum MarketStatus {
    BIDDING = "bidding",
    COUNTING_DOWN = "counting_down",
    ONLINE = "online"
}
/**
 * @enum OrderSide
 * @description Enumeration of order sides.
 */
declare enum OrderSide {
    BUY = "buy",
    SELL = "sell"
}
/**
 * @enum OrderType
 * @description Enumeration of order types.
 */
declare enum OrderType {
    LIMIT = "limit",
    MARKET = "market",
    MAKER_ONLY = "maker_only",
    IOC = "ioc",
    FOK = "fok"
}
/**
 * @enum StpMode
 * @description Enumeration of STP (Self-Trade Prevention) modes.
 */
declare enum StpMode {
    CANCEL_TAKER = "ct",
    CANCEL_MAKER = "cm",
    CANCEL_BOTH = "both"
}
/**
 * @enum OrderEvent
 * @description Enumeration of order events.
 */
declare enum OrderEvent {
    PUT = "put",
    UPDATE = "update",
    MODIFY = "modify",
    FINISH = "finish"
}
/**
 * @enum StopOrderEvent
 * @description Enumeration of stop order events.
 */
declare enum StopOrderEvent {
    PUT = "put",
    ACTIVE = "active",
    CANCEL = "cancel"
}
/**
 * @enum StopOrderStatus
 * @description Enumeration of stop order statuses.
 */
declare enum StopOrderStatus {
    PUT = "put",
    ACTIVE_SUCCESS = "active_success",
    ACTIVE_FAIL = "active_fail",
    CANCEL = "cancel"
}
/**
 * @enum TriggerDirection
 * @description Enumeration of trigger directions.
 */
declare enum TriggerDirection {
    HIGHER = "higher",
    LOWER = "lower"
}
/**
 * @enum PositionEvent
 * @description Enumeration of position events.
 */
declare enum PositionEvent {
    UPDATE = "update",
    CLOSE = "close",
    SYS_CLOSE = "sys_close",
    ADL = "adl",
    LIQ = "liq"
}
/**
 * @enum Locale
 * @description Enumeration of supported locales.
 */
declare enum Locale {
    DE_DE = "de-DE",
    EN_US = "en-US",
    ES_AR = "es-AR",
    ES_ES = "es-ES",
    ES_MX = "es-MX",
    FR_FR = "fr-FR",
    KK_KZ = "kk-KZ",
    ID_ID = "id-ID",
    UK_UA = "uk-UA",
    JA_JP = "ja-JP",
    RU_RU = "ru-RU",
    TH_TH = "th-TH",
    PT_BR = "pt-BR",
    TR_TR = "tr-TR",
    VI_VN = "vi-VN",
    ZH_TW = "zh-TW",
    AR_SA = "ar-SA",
    HI_IN = "hi-IN",
    FIL_PH = "fil-PH"
}
/**
 * @enum Permission
 * @description Enumeration of sub-account permissions.
 */
declare enum Permission {
    FUTURES = "FUTURES",
    MARGIN = "MARGIN",
    AMM = "AMM",
    API = "API"
}
/**
 * @enum TransferDirection
 * @description Enumeration of transfer directions.
 */
declare enum TransferDirection {
    IN = "in",
    OUT = "out"
}
/**
 * @enum TransferStatus
 * @description Enumeration of transfer statuses.
 */
declare enum TransferStatus {
    CREATED = "created",
    DEDUCTED = "deducted",
    FAILED = "failed",
    FINISHED = "finished"
}
/**
 * @enum LoanStatus
 * @description Enumeration of loan statuses.
 */
declare enum LoanStatus {
    LOAN = "loan",
    DEBT = "debt",
    LIQUIDATED = "liquidated",
    FINISH = "finish"
}
/**
 * @enum DepositStatus
 * @description Enumeration of deposit statuses.
 */
declare enum DepositStatus {
    PROCESSING = "processing",
    CONFIRMING = "confirming",
    CANCELLED = "cancelled",
    FINISHED = "finished",
    TOO_SMALL = "too_small",
    EXCEPTION = "exception"
}
/**
 * @enum OrderStatus
 * @description Enumeration of order statuses.
 */
declare enum OrderStatus {
    OPEN = "open",
    PART_FILLED = "part_filled",
    FILLED = "filled",
    PART_CANCELED = "part_canceled",
    CANCELED = "canceled"
}
/**
 * @enum ContractType
 * @description Enumeration of contract types.
 */
declare enum ContractType {
    LINEAR = "linear",
    INVERSE = "inverse"
}
/**
 * @enum MarginMode
 * @description Enumeration of margin modes.
 */
declare enum MarginMode {
    ISOLATED = "isolated",
    CROSS = "cross"
}
/**
 * @enum TakeProfitType
 * @description Enumeration of take profit types.
 */
declare enum TakeProfitType {
    LATEST_PRICE = "latest_price",
    MARK_PRICE = "mark_price"
}
/**
 * @enum StopLossType
 * @description Enumeration of stop loss types.
 */
declare enum StopLossType {
    LATEST_PRICE = "latest_price",
    MARK_PRICE = "mark_price"
}
/**
 * @enum PositionSide
 * @description Enumeration of position sides.
 */
declare enum PositionSide {
    SHORT = "short",
    LONG = "long"
}
/**
 * @enum PositionFinishedType
 * @description Enumeration of position finished types.
 */
declare enum PositionFinishedType {
    LIQ = "liq",
    ADL = "adl",
    SYS = "sys",
    LIMIT = "limit",
    MARKET = "market",
    MARKET_CLOSE_ALL = "market_close_all",
    TAKE_PROFIT = "take_profit",
    STOP_LOSS = "stop_loss"
}
/**
 * @enum TriggerPriceType
 * @description Enumeration of trigger price types.
 */
declare enum TriggerPriceType {
    LATEST_PRICE = "latest_price",
    MARK_PRICE = "mark_price",
    INDEX_PRICE = "index_price"
}
/**
 * @enum TransactionType
 * @description Enumeration of transaction types.
 */
declare enum TransactionType {
    DEPOSIT = "deposit",
    WITHDRAW = "withdraw",
    TRADE = "trade",
    MAKER_CASH_BACK = "maker_cash_back"
}
/**
 * @enum AmmType
 * @description Enumeration of AMM types.
 */
declare enum AmmType {
    INFINITE = "infinite",
    FINITE = "finite"
}
/**
 * @enum UserType
 * @description Enumeration of user types.
 */
declare enum UserType {
    NORMAL = "NORMAL",
    SUB_ACCOUNT = "SUB_ACCOUNT"
}

/**
 * @interface GetAccountTradeFeesParams
 * @description Parameters for getting the account trading fee rate.
 * @see https://docs.coinex.com/api/v2/account/fees/http/get-account-trade-fees
 */
interface GetAccountTradeFeesParams {
    /**
     * @property {MarketType} [market_type] - Market type.
     * @description If not passed, the default is spot market.
     * @example MarketType.SPOT
     */
    market_type?: MarketType;
}
/**
 * @interface Fee
 * @description Trading fee rate details.
 */
interface Fee {
    /**
     * @property {string} market - Market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} taker_fee - Taker fee rate.
     * @example "0.002"
     */
    taker_fee: string;
    /**
     * @property {string} maker_fee - Maker fee rate.
     * @example "0.001"
     */
    maker_fee: string;
}
/**
 * @type GetAccountTradeFeesResponse
 * @description Represents the response from the Get Account Trading Fee Rate endpoint, which is an array of fee structures.
 */
type GetAccountTradeFeesResponse = Fee[];

/**
 * @interface GetFuturesMarketSettingsResponse
 * @description Response for getting futures market settings.
 * @see https://docs.coinex.com/api/v2/account/settings/http/accquire-futures-market-settings
 */
interface GetFuturesMarketSettingsResponse {
    /**
     * @property {string[]} markets - List of markets.
     * @example ["BTCUSDT", "ETHUSDT"]
     */
    markets: string[];
    /**
     * @property {PositionSide} position_side - Position side.
     * @example PositionSide.LONG
     */
    position_side: PositionSide;
}
/**
 * @interface ModifyAccountSettingsParams
 * @description Parameters for modifying account settings.
 * @see https://docs.coinex.com/api/v2/account/settings/http/modify-account-settings
 */
interface ModifyAccountSettingsParams {
    /**
     * @property {boolean} cet_enabled - Whether to use CET as transaction fee.
     * @example true
     */
    cet_enabled: boolean;
}
/**
 * @interface ModifyFuturesMarketSettingsParams
 * @description Outlines the parameters for modifying futures market settings, including the markets and position side.
 * @see https://docs.coinex.com/api/v2/account/settings/http/modify-futures-market-settings
 */
interface ModifyFuturesMarketSettingsParams {
    /**
     * @property {string[]} markets - List of markets.
     * @example ["BTCUSDT", "ETHUSDT"]
     */
    markets: string[];
    /**
     * @property {PositionSide} position_side - Position side.
     * @example PositionSide.LONG
     */
    position_side: PositionSide;
}

/**
 * @interface CreateSubAccountParams
 * @description Parameters for creating a sub-account.
 */
interface CreateSubAccountParams {
    /**
     * @property {string} sub_user_name - Sub-account username.
     * @description 3-26 characters, can only contain numbers, letters and English symbols "-". Cannot be the same as an existing sub-account name.
     * @example "sub2"
     */
    sub_user_name: string;
    /**
     * @property {Permission[]} [permissions] - Sub-user permissions. The sub-account created by default has full permissions.
     * @example [Permission.AMM, Permission.MARGIN]
     */
    permissions?: Permission[];
    /**
     * @property {string} [remark] - Sub-account note. The length of the note cannot exceed 50 characters.
     * @example "spot market maker"
     */
    remark?: string;
}
/**
 * @interface GetSubAccountListParams
 * @description Parameters for getting the sub-account list.
 */
interface GetSubAccountListParams {
    /**
     * @property {string} [sub_user_name] - Sub-account username.
     */
    sub_user_name?: string;
    /**
     * @property {boolean} [is_frozen] - Frozen or not. Default is false.
     */
    is_frozen?: boolean;
    /**
     * @property {number} [page] - Number of pagination. Default is 1.
     */
    page?: number;
    /**
     * @property {number} [limit] - Number in each page. Default is 10.
     */
    limit?: number;
}
/**
 * @interface SubAccountInfo
 * @description Information about a single sub-account.
 */
interface SubAccountInfo {
    /**
     * @property {string} sub_user_name - Sub-account username.
     * @example "sub2"
     */
    sub_user_name: string;
    /**
     * @property {boolean} is_frozen - Whether the sub-account is frozen or not.
     * @example true
     */
    is_frozen: boolean;
    /**
     * @property {boolean} is_authorized - Whether it is authorized or not.
     * @example false
     */
    is_authorized: boolean;
    /**
     * @property {Permission[]} permissions - Sub-account permission list.
     * @example [Permission.FUTURES, Permission.API]
     */
    permissions: Permission[];
    /**
     * @property {string} balance_usd - Market value of sub-account balance.
     * @example "3564.23"
     */
    balance_usd: string;
}
/**
 * @interface Pagination
 * @description Pagination information for list responses.
 */
interface Pagination {
    /**
     * @property {number} total - Total number of items.
     * @example 1
     */
    total: number;
    /**
     * @property {boolean} has_next - Whether there is a next page.
     * @example false
     */
    has_next: boolean;
}
/**
 * @interface GetSubAccountListResponse
 * @description The response for the getSubAccountList method.
 */
interface GetSubAccountListResponse {
    data: SubAccountInfo[];
    pagination: Pagination;
}
/**
 * @interface DisableSubAccountParams
 * @description Parameters for disabling a sub-account.
 */
interface DisableSubAccountParams {
    /**
     * @property {string} sub_user_name - Sub-account username.
     * @example "sub2"
     */
    sub_user_name: string;
}
/**
 * @interface EnableSubAccountParams
 * @description Parameters for enabling a sub-account.
 */
interface EnableSubAccountParams {
    /**
     * @property {string} sub_user_name - Sub-account username.
     * @example "sub2"
     */
    sub_user_name: string;
}
/**
 * @interface CreateSubAccountApiKeyParams
 * @description Parameters for creating a sub-account API key.
 */
interface CreateSubAccountApiKeyParams {
    /**
     * @property {string} sub_user_name - Sub-account username.
     */
    sub_user_name: string;
    /**
     * @property {string[]} ip_whitelist - The IP whitelist bound to API KEY. Up to 50 IPs can be bound.
     */
    ip_whitelist: string[];
    /**
     * @property {boolean} trade_enabled - Whether the API KEY has trading permissions.
     */
    trade_enabled: boolean;
    /**
     * @property {string} [remark] - API KEY note. The length of the note cannot exceed 50 characters.
     */
    remark?: string;
}
/**
 * @interface SubAccountApiKey
 * @description Information about a sub-account API key.
 */
interface SubAccountApiKey {
    /**
     * @property {number} api_id - Unique ID for API KEY.
     */
    api_id: number;
    /**
     * @property {number} created_at - Data creation time.
     */
    created_at: number;
    /**
     * @property {string} access_id - access_id of the key pair.
     */
    access_id: string;
    /**
     * @property {string} secret_key - secret_key of the key pair.
     */
    secret_key: string;
    /**
     * @property {string[]} ip_whitelist - The IP whitelist bound to API KEY.
     */
    ip_whitelist: string[];
    /**
     * @property {boolean} trade_enabled - Whether the API KEY has trading permissions.
     */
    trade_enabled: boolean;
    /**
     * @property {boolean} withdraw_enabled - Whether the API KEY has withdrawal permissions.
     */
    withdraw_enabled: boolean;
    /**
     * @property {boolean} is_expired - Whether the API KEY has expired.
     */
    is_expired: boolean;
    /**
     * @property {number} expires_at - Expiration time of API KEY. 0 means the API KEY is permanently valid.
     */
    expires_at: number;
    /**
     * @property {string} remark - API KEY note.
     */
    remark: string;
}
/**
 * @interface GetSubAccountApiKeyDetailParams
 * @description Parameters for getting sub-account API key detail.
 */
interface GetSubAccountApiKeyDetailParams {
    /**
     * @property {number} api_id - Unique ID for API KEY.
     */
    api_id: number;
}
/**
 * @interface GetSubAccountInfoResponse
 * @description The response for the getSubAccountInfo method.
 * @see https://docs.coinex.com/api/v2/account/subs/http/get-sub-info
 */
interface GetSubAccountInfoResponse {
    /**
     * @property {UserType} user_type - User Types.
     * @example UserType.SUB_ACCOUNT
     */
    user_type: UserType;
    /**
     * @property {string | null} sub_user_name - Sub-account username. If it is an ordinary user, this value is null.
     * @example "sub1"
     */
    sub_user_name: string | null;
}
/**
 * @interface SubAccountTransferParams
 * @description Parameters for transferring assets between sub-accounts.
 * @see https://docs.coinex.com/api/v2/account/subs/http/sub-transfer
 */
interface SubAccountTransferParams {
    /**
     * @property {string} from_sub_user_name - The username of the sub-account to transfer from.
     */
    from_sub_user_name: string;
    /**
     * @property {string} to_sub_user_name - The username of the sub-account to transfer to.
     */
    to_sub_user_name: string;
    /**
     * @property {string} ccy - The currency to transfer.
     */
    ccy: string;
    /**
     * @property {string} amount - The amount to transfer.
     */
    amount: string;
}
/**
 * @interface GetSubAccountTransferHistoryParams
 * @description Parameters for getting the transfer history of a sub-account.
 * @see https://docs.coinex.com/api/v2/account/subs/http/list-sub-transfer-history
 */
interface GetSubAccountTransferHistoryParams {
    /**
     * @property {string} sub_user_name - The username of the sub-account.
     */
    sub_user_name: string;
    /**
     * @property {TransferDirection} [direction] - The direction of the transfer.
     */
    direction?: TransferDirection;
    /**
     * @property {string} [ccy] - The currency of the transfer.
     */
    ccy?: string;
    /**
     * @property {number} [start_time] - The start time of the query range.
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range.
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of records to return.
     */
    limit?: number;
}
/**
 * @interface SubAccountTransferHistory
 * @description Information about a sub-account transfer.
 */
interface SubAccountTransferHistory {
    /**
     * @property {string} from_sub_user_name - The username of the sub-account that sent the transfer.
     */
    from_sub_user_name: string;
    /**
     * @property {string} to_sub_user_name - The username of the sub-account that received the transfer.
     */
    to_sub_user_name: string;
    /**
     * @property {string} ccy - The currency of the transfer.
     */
    ccy: string;
    /**
     * @property {string} amount - The amount of the transfer.
     */
    amount: string;
    /**
     * @property {number} created_at - The time the transfer was created.
     */
    created_at: number;
}
/**
 * @interface GetSubAccountTransferHistoryResponse
 * @description The response for the getSubAccountTransferHistory method.
 */
interface GetSubAccountTransferHistoryResponse {
    data: SubAccountTransferHistory[];
    pagination: Pagination;
}
/**
 * @interface GetSubAccountApiKeyListParams
 * @description Parameters for getting the API key list of a sub-account.
 * @see https://docs.coinex.com/api/v2/account/subs/http/list-sub-api
 */
interface GetSubAccountApiKeyListParams {
    /**
     * @property {string} sub_user_name - The username of the sub-account.
     */
    sub_user_name: string;
}
/**
 * @interface GetSubAccountApiKeyListResponse
 * @description The response for the getSubAccountApiKeyList method.
 */
interface GetSubAccountApiKeyListResponse {
    data: SubAccountApiKey[];
}
/**
 * @interface GetSubAccountSpotBalanceParams
 * @description Parameters for getting the spot balance of a sub-account.
 * @see https://docs.coinex.com/api/v2/account/subs/http/get-sub-spot-balance
 */
interface GetSubAccountSpotBalanceParams {
    /**
     * @property {string} sub_user_name - The username of the sub-account.
     */
    sub_user_name: string;
    /**
     * @property {string} [ccy] - The currency to query.
     */
    ccy?: string;
}
/**
 * @interface SubAccountSpotBalance
 * @description Information about a sub-account spot balance.
 */
interface SubAccountSpotBalance {
    /**
     * @property {string} ccy - The currency.
     */
    ccy: string;
    /**
     * @property {string} available - The available balance.
     */
    available: string;
    /**
     * @property {string} frozen - The frozen balance.
     */
    frozen: string;
}
/**
 * @type GetSubAccountSpotBalanceResponse
 * @description Represents the response for a sub-account's spot balance, which is an array of balance details per currency.
 */
type GetSubAccountSpotBalanceResponse = SubAccountSpotBalance[];
/**
 * @interface EditSubAccountApiKeyParams
 * @description Parameters for editing a sub-account API key.
 * @see https://docs.coinex.com/api/v2/account/subs/http/edit-sub-api
 */
interface EditSubAccountApiKeyParams {
    /**
     * @property {string} sub_user_name - The username of the sub-account.
     */
    sub_user_name: string;
    /**
     * @property {number} api_id - The ID of the API key to edit.
     */
    api_id: number;
    /**
     * @property {string[]} [ip_whitelist] - The new IP whitelist.
     */
    ip_whitelist?: string[];
    /**
     * @property {boolean} [trade_enabled] - Whether to enable trading.
     */
    trade_enabled?: boolean;
    /**
     * @property {string} [remark] - The new remark.
     */
    remark?: string;
}
/**
 * @interface DeleteSubAccountApiKeyParams
 * @description Parameters for deleting a sub-account API key.
 * @see https://docs.coinex.com/api/v2/account/subs/http/delete-sub-api
 */
interface DeleteSubAccountApiKeyParams {
    /**
     * @property {string} sub_user_name - The username of the sub-account.
     */
    sub_user_name: string;
    /**
     * @property {number} api_id - The ID of the API key to delete.
     */
    api_id: number;
}

/**
 * @interface GetAccountInfoResponse
 * @description Contains the response data for a user account information request.
 * @see https://docs.coinex.com/api/v2/account/info/http/get-account-info
 */
interface GetAccountInfoResponse {
    /**
     * @property {string} user_id - User ID.
     */
    user_id: string;
}

/**
 * @interface AddAMMLiquidityParams
 * @description Parameters for adding AMM liquidity
 * @see https://docs.coinex.com/api/v2/assets/amm/http/add-liquidtiy
 */
interface AddAMMLiquidityParams {
    /**
     * @property {string} market - Market name
     * @example "CETUSDT"
     */
    market: string;
    /**
     * @property {string} amount - The amount of asset to add
     * @example "100"
     */
    amount: string;
}
/**
 * @interface GetAMMIncomeHistoryParams
 * @description Parameters for getting AMM income history
 * @see https://docs.coinex.com/api/v2/assets/amm/http/list-income-history
 */
interface GetAMMIncomeHistoryParams {
    /**
     * @property {string} [market] - Market name
     * @description If not passed, all markets will be returned.
     * @example "CETUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - Page number
     * @default 1
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page
     * @default 100
     */
    limit?: number;
}
/**
 * @interface AMMIncomeHistory
 * @description AMM income history
 */
interface AMMIncomeHistory {
    /**
     * @property {string} market - Market name
     * @example "CETUSDT"
     */
    market: string;
    /**
     * @property {string} income - Income
     * @example "0.1"
     */
    income: string;
    /**
     * @property {number} created_at - Creation time
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetAMMIncomeHistoryResponse
 * @description Response for getting AMM income history
 */
interface GetAMMIncomeHistoryResponse {
    data: AMMIncomeHistory[];
    pagination: Pagination;
}
/**
 * @interface GetAMMLiquidityPoolParams
 * @description Parameters for getting AMM liquidity pool
 * @see https://docs.coinex.com/api/v2/assets/amm/http/list-liquidity-pool
 */
interface GetAMMLiquidityPoolParams {
    /**
     * @property {string} market - Market name list, separating multiple market names with "," and the maximum limit is 10 markets.
     * @example "CETUSDT,BTCUSDT"
     */
    market: string;
}
/**
 * @interface AMMLiquidityPool
 * @description AMM liquidity pool
 */
interface AMMLiquidityPool {
    /**
     * @property {string} market - Market name
     * @example "CETUSDT"
     */
    market: string;
    /**
     * @property {string} total_liquidity - Total liquidity
     * @example "1000000"
     */
    total_liquidity: string;
    /**
     * @property {string} apy - APY
     * @example "0.05"
     */
    apy: string;
}
/**
 * @interface GetAMMLiquidityPoolResponse
 * @description Response for getting AMM liquidity pool
 */
type GetAMMLiquidityPoolResponse = AMMLiquidityPool[];
/**
 * @interface RemoveAMMLiquidityParams
 * @description Parameters for removing AMM liquidity
 * @see https://docs.coinex.com/api/v2/assets/amm/http/remove-liquidtiy
 */
interface RemoveAMMLiquidityParams {
    /**
     * @property {string} market - Market name
     * @example "CETUSDT"
     */
    market: string;
    /**
     * @property {string} amount - The amount of asset to remove
     * @example "100"
     */
    amount: string;
}

/**
 * @interface AMMLiquidityInfo
 * @description AMM liquidity information.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-amm-liquidity
 */
interface AMMLiquidityInfo {
    /**
     * @property {string} market - Market name.
     * @example "CETUSDT"
     */
    market: string;
    /**
     * @property {string} asset_amount - The amount of assets in the AMM account.
     * @example "1000"
     */
    asset_amount: string;
    /**
     * @property {string} share_amount - The amount of shares in the AMM account.
     * @example "1000"
     */
    share_amount: string;
}
/**
 * @interface GetAMMLiquidityParams
 * @description Parameters for getting AMM liquidity.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-amm-liquidity
 */
interface GetAMMLiquidityParams {
    /**
     * @property {number} [account_id] - Account ID.
     * @description The default is the main account.
     */
    account_id?: number;
}
/**
 * @interface GetAMMLiquidityResponse
 * @description Response for getting AMM liquidity.
 */
type GetAMMLiquidityResponse = AMMLiquidityInfo[];
/**
 * @interface CreditBalance
 * @description Credit account balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-balance
 */
interface CreditBalance {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} available - Available balance.
     * @example "1000"
     */
    available: string;
    /**
     * @property {string} frozen - Frozen balance.
     * @example "0"
     */
    frozen: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface GetCreditBalanceParams
 * @description Parameters for getting credit balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-balance
 */
interface GetCreditBalanceParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetCreditBalanceResponse
 * @description Response for getting credit balance.
 */
type GetCreditBalanceResponse = CreditBalance[];
/**
 * @interface CreditInfo
 * @description Credit account information.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-info
 */
interface CreditInfo {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} total_balance - Total balance.
     * @example "1000"
     */
    total_balance: string;
    /**
     * @property {string} available_balance - Available balance.
     * @example "1000"
     */
    available_balance: string;
    /**
     * @property {string} frozen_balance - Frozen balance.
     * @example "0"
     */
    frozen_balance: string;
    /**
     * @property {string} loan_balance - Loan balance.
     * @example "0"
     */
    loan_balance: string;
    /**
     * @property {string} interest - Interest.
     * @example "0"
     */
    interest: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface GetCreditInfoParams
 * @description Parameters for getting credit info.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-info
 */
interface GetCreditInfoParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetCreditInfoResponse
 * @description Response for getting credit info.
 */
type GetCreditInfoResponse = CreditInfo[];
/**
 * @interface FinancialBalance
 * @description Financial account balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-financial-balance
 */
interface FinancialBalance {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} available - Available balance.
     * @example "1000"
     */
    available: string;
    /**
     * @property {string} frozen - Frozen balance.
     * @example "0"
     */
    frozen: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface GetFinancialBalanceParams
 * @description Parameters for getting financial balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-financial-balance
 */
interface GetFinancialBalanceParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetFinancialBalanceResponse
 * @description Response for getting financial balance.
 */
type GetFinancialBalanceResponse = FinancialBalance[];
/**
 * @interface FuturesBalance
 * @description Futures account balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-futures-balance
 */
interface FuturesBalance {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} available - Available balance.
     * @example "1000"
     */
    available: string;
    /**
     * @property {string} frozen - Frozen balance.
     * @example "0"
     */
    frozen: string;
    /**
     * @property {string} margin - Position margin.
     * @example "0"
     */
    margin: string;
    /**
     * @property {string} transferable - Transferable balance.
     * @example "1000"
     */
    transferable: string;
    /**
     * @property {string} unrealized_pnl - Unrealized PNL.
     * @example "0"
     */
    unrealized_pnl: string;
    /**
     * @property {string} equity - Equity.
     * @example "1000"
     */
    equity: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface GetFuturesBalanceParams
 * @description Parameters for getting futures balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-futures-balance
 */
interface GetFuturesBalanceParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetFuturesBalanceResponse
 * @description Response for getting futures balance.
 */
type GetFuturesBalanceResponse = FuturesBalance[];
/**
 * @interface MarginBalanceDetail
 * @description Margin balance detail.
 */
interface MarginBalanceDetail {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} available - Available balance.
     * @example "1000"
     */
    available: string;
    /**
     * @property {string} frozen - Frozen balance.
     * @example "0"
     */
    frozen: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface MarginBalance
 * @description Margin account balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-marigin-balance
 */
interface MarginBalance {
    /**
     * @property {string} market - Market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {MarginBalanceDetail[]} margin_balance - Margin balance details.
     */
    margin_balance: MarginBalanceDetail[];
}
/**
 * @interface GetMarginBalanceParams
 * @description Parameters for getting margin balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-marigin-balance
 */
interface GetMarginBalanceParams {
    /**
     * @property {string} market - Market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetMarginBalanceResponse
 * @description Response for getting margin balance.
 */
type GetMarginBalanceResponse = MarginBalance[];
/**
 * @interface SpotBalance
 * @description Spot account balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-balance
 */
interface SpotBalance {
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} available - Available balance.
     * @example "1000"
     */
    available: string;
    /**
     * @property {string} frozen - Frozen balance.
     * @example "0"
     */
    frozen: string;
    /**
     * @property {number} updated_at - Update time.
     * @example 1614837902000
     */
    updated_at: number;
}
/**
 * @interface GetSpotBalanceParams
 * @description Parameters for getting spot balance.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-balance
 */
interface GetSpotBalanceParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
}
/**
 * @interface GetSpotBalanceResponse
 * @description Response for getting spot balance.
 */
type GetSpotBalanceResponse = SpotBalance[];
/**
 * @interface SpotTransaction
 * @description Spot transaction details.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-transcation-history
 */
interface SpotTransaction {
    /**
     * @property {number} transaction_id - Transaction ID.
     * @example 123456789
     */
    transaction_id: number;
    /**
     * @property {string} ccy - Currency name.
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Transaction amount.
     * @example "100"
     */
    amount: string;
    /**
     * @property {string} balance - Balance after transaction.
     * @example "1100"
     */
    balance: string;
    /**
     * @property {string} transaction_type - Transaction type.
     * @example "deposit"
     */
    transaction_type: string;
    /**
     * @property {number} created_at - Creation time.
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetSpotTransactionHistoryParams
 * @description Parameters for getting spot transaction history.
 * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-transcation-history
 */
interface GetSpotTransactionHistoryParams {
    /**
     * @property {string} [ccy] - Currency name.
     * @description If not passed, all currencies will be returned.
     */
    ccy?: string;
    /**
     * @property {string} [transaction_type] - Transaction type.
     */
    transaction_type?: string;
    /**
     * @property {number} [start_time] - Start time.
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - End time.
     */
    end_time?: number;
    /**
     * @property {number} [page] - Page number.
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page.
     */
    limit?: number;
}
/**
 * @interface GetSpotTransactionHistoryResponse
 * @description Response for getting spot transaction history.
 */
interface GetSpotTransactionHistoryResponse {
    data: SpotTransaction[];
    pagination: Pagination;
}

/**
 * @interface GetMarginBorrowHistoryParams
 * @description Parameters for getting margin borrow history
 * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-borrow-history
 */
interface GetMarginBorrowHistoryParams {
    /**
     * @property {string} [market] - Market name
     * @description If not passed, all markets will be returned.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - Page number
     * @default 1
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page
     * @default 100
     */
    limit?: number;
}
/**
 * @interface MarginBorrowHistory
 * @description Margin borrow history
 */
interface MarginBorrowHistory {
    /**
     * @property {string} market - Market name
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Borrow amount
     * @example "100"
     */
    amount: string;
    /**
     * @property {number} created_at - Creation time
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetMarginBorrowHistoryResponse
 * @description Response for getting margin borrow history
 */
interface GetMarginBorrowHistoryResponse {
    data: MarginBorrowHistory[];
    pagination: Pagination;
}
/**
 * @interface GetMarginInterestLimitParams
 * @description Parameters for getting margin interest limit
 * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-interest-limit
 */
interface GetMarginInterestLimitParams {
    /**
     * @property {string} market - Market name
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
}
/**
 * @interface MarginInterestLimit
 * @description Margin interest limit
 */
interface MarginInterestLimit {
    /**
     * @property {string} min_amount - Minimum borrow amount
     * @example "10"
     */
    min_amount: string;
    /**
     * @property {string} max_amount - Maximum borrow amount
     * @example "10000"
     */
    max_amount: string;
    /**
     * @property {string} daily_interest_rate - Daily interest rate
     * @example "0.001"
     */
    daily_interest_rate: string;
}
/**
 * @interface GetMarginInterestLimitResponse
 * @description Response for getting margin interest limit
 */
type GetMarginInterestLimitResponse = MarginInterestLimit;
/**
 * @interface MarginBorrowParams
 * @description Parameters for margin borrow
 * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/margin-borrow
 */
interface MarginBorrowParams {
    /**
     * @property {string} market - Market name
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Borrow amount
     * @example "100"
     */
    amount: string;
}
/**
 * @interface MarginRepayParams
 * @description Parameters for margin repay
 * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/margin-repay
 */
interface MarginRepayParams {
    /**
     * @property {string} market - Market name
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Repay amount
     * @example "100"
     */
    amount: string;
}

/**
 * @interface CancelWithdrawalParams
 * @description Parameters for cancelling a withdrawal
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/cancel-withdrawal
 */
interface CancelWithdrawalParams {
    /**
     * @property {number} withdrawal_id - Withdrawal ID
     * @example 12345
     */
    withdrawal_id: number;
}
/**
 * @interface GetDepositAddressParams
 * @description Parameters for getting a deposit address
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-address
 */
interface GetDepositAddressParams {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} network - Public chain name
     * @example "TRC20"
     */
    network: string;
}
/**
 * @interface DepositAddress
 * @description Deposit address
 */
interface DepositAddress {
    /**
     * @property {string} address - Deposit address
     * @example "0x1234567890123456789012345678901234567890"
     */
    address: string;
    /**
     * @property {string} [memo] - Memo/Tag
     * @example "12345"
     */
    memo?: string;
}
/**
 * @interface GetDepositAddressResponse
 * @description Response for getting a deposit address
 */
type GetDepositAddressResponse = DepositAddress;
/**
 * @interface GetDepositWithdrawalConfigParams
 * @description Parameters for getting deposit and withdrawal configuration
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-withdrawal-config
 */
interface GetDepositWithdrawalConfigParams {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
}
/**
 * @interface DepositWithdrawalConfig
 * @description Deposit and withdrawal configuration
 */
interface DepositWithdrawalConfig {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} min_deposit_amount - Minimum deposit amount
     * @example "10"
     */
    min_deposit_amount: string;
    /**
     * @property {string} min_withdrawal_amount - Minimum withdrawal amount
     * @example "10"
     */
    min_withdrawal_amount: string;
    /**
     * @property {boolean} is_deposit_available - Whether deposit is available
     * @example true
     */
    is_deposit_available: boolean;
    /**
     * @property {boolean} is_withdrawal_available - Whether withdrawal is available
     * @example true
     */
    is_withdrawal_available: boolean;
}
/**
 * @interface GetDepositWithdrawalConfigResponse
 * @description Response for getting deposit and withdrawal configuration
 */
type GetDepositWithdrawalConfigResponse = DepositWithdrawalConfig[];
/**
 * @interface GetAllDepositWithdrawalConfigResponse
 * @description Response for getting all deposit and withdrawal configuration
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-all-deposit-withdrawal-config
 */
type GetAllDepositWithdrawalConfigResponse = DepositWithdrawalConfig[];
/**
 * @interface GetAssetInfoParams
 * @description Parameters for getting asset information
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-assets-info
 */
interface GetAssetInfoParams {
    /**
     * @property {string} [ccy] - Currency name
     * @description If not passed, all currencies will be returned.
     * @example "USDT"
     */
    ccy?: string;
}
/**
 * @interface AssetInfo
 * @description Asset information
 */
interface AssetInfo {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} asset_name - Asset name
     * @example "TetherUS"
     */
    asset_name: string;
    /**
     * @property {string} description - Asset description
     * @example "A stablecoin pegged to the US dollar."
     */
    description: string;
    /**
     * @property {string} logo - Asset logo URL
     * @example "https://s.coinex.com/static/dist/images/coins/USDT.png"
     */
    logo: string;
}
/**
 * @interface GetAssetInfoResponse
 * @description Response for getting asset information
 */
type GetAssetInfoResponse = AssetInfo[];
/**
 * @interface GetDepositHistoryParams
 * @description Parameters for getting deposit history
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-deposit-history
 */
interface GetDepositHistoryParams {
    /**
     * @property {string} [ccy] - Currency name
     * @description If not passed, all currencies will be returned.
     * @example "USDT"
     */
    ccy?: string;
    /**
     * @property {string} [tx_id] - Transaction ID
     * @example "0x1234567890123456789012345678901234567890"
     */
    tx_id?: string;
    /**
     * @property {string} [status] - Deposit status
     * @example "success"
     */
    status?: string;
    /**
     * @property {number} [start_time] - Start time
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - End time
     */
    end_time?: number;
    /**
     * @property {number} [page] - Page number
     * @default 1
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page
     * @default 100
     */
    limit?: number;
}
/**
 * @interface DepositHistory
 * @description Deposit history
 */
interface DepositHistory {
    /**
     * @property {number} deposit_id - Deposit ID
     * @example 12345
     */
    deposit_id: number;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} network - Public chain name
     * @example "TRC20"
     */
    network: string;
    /**
     * @property {string} amount - Deposit amount
     * @example "100"
     */
    amount: string;
    /**
     * @property {string} address - Deposit address
     * @example "0x1234567890123456789012345678901234567890"
     */
    address: string;
    /**
     * @property {string} memo - Memo/Tag
     * @example "12345"
     */
    memo: string;
    /**
     * @property {string} tx_id - Transaction ID
     * @example "0x1234567890123456789012345678901234567890"
     */
    tx_id: string;
    /**
     * @property {string} status - Deposit status
     * @example "success"
     */
    status: string;
    /**
     * @property {number} created_at - Creation time
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetDepositHistoryResponse
 * @description Response for getting deposit history
 */
interface GetDepositHistoryResponse {
    data: DepositHistory[];
    pagination: Pagination;
}
/**
 * @interface GetWithdrawalHistoryParams
 * @description Parameters for getting withdrawal history
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-withdrawal-history
 */
interface GetWithdrawalHistoryParams {
    /**
     * @property {string} [ccy] - Currency name
     * @description If not passed, all currencies will be returned.
     * @example "USDT"
     */
    ccy?: string;
    /**
     * @property {string} [status] - Withdrawal status
     * @example "success"
     */
    status?: string;
    /**
     * @property {number} [start_time] - Start time
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - End time
     */
    end_time?: number;
    /**
     * @property {number} [page] - Page number
     * @default 1
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page
     * @default 100
     */
    limit?: number;
}
/**
 * @interface WithdrawalHistory
 * @description Withdrawal history
 */
interface WithdrawalHistory {
    /**
     * @property {number} withdrawal_id - Withdrawal ID
     * @example 12345
     */
    withdrawal_id: number;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} network - Public chain name
     * @example "TRC20"
     */
    network: string;
    /**
     * @property {string} amount - Withdrawal amount
     * @example "100"
     */
    amount: string;
    /**
     * @property {string} fee - Withdrawal fee
     * @example "1"
     */
    fee: string;
    /**
     * @property {string} address - Withdrawal address
     * @example "0x1234567890123456789012345678901234567890"
     */
    address: string;
    /**
     * @property {string} memo - Memo/Tag
     * @example "12345"
     */
    memo: string;
    /**
     * @property {string} tx_id - Transaction ID
     * @example "0x1234567890123456789012345678901234567890"
     */
    tx_id: string;
    /**
     * @property {string} status - Withdrawal status
     * @example "success"
     */
    status: string;
    /**
     * @property {number} created_at - Creation time
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetWithdrawalHistoryResponse
 * @description Response for getting withdrawal history
 */
interface GetWithdrawalHistoryResponse {
    data: WithdrawalHistory[];
    pagination: Pagination;
}
/**
 * @interface UpdateDepositAddressParams
 * @description Parameters for updating a deposit address
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/update-deposit-address
 */
interface UpdateDepositAddressParams {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} network - Public chain name
     * @example "TRC20"
     */
    network: string;
}
/**
 * @interface WithdrawalParams
 * @description Parameters for making a withdrawal
 * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/withdrawal
 */
interface WithdrawalParams {
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} network - Public chain name
     * @example "TRC20"
     */
    network: string;
    /**
     * @property {string} address - Withdrawal address
     * @example "0x1234567890123456789012345678901234567890"
     */
    address: string;
    /**
     * @property {string} amount - Withdrawal amount
     * @example "100"
     */
    amount: string;
    /**
     * @property {string} [memo] - Memo/Tag
     * @example "12345"
     */
    memo?: string;
}

/**
 * @interface GetAssetTransferHistoryParams
 * @description Parameters for getting asset transfer history
 * @see https://docs.coinex.com/api/v2/assets/transfer/http/list-transfer-history
 */
interface GetAssetTransferHistoryParams {
    /**
     * @property {string} [ccy] - Currency name
     * @description If not passed, all currencies will be returned.
     * @example "USDT"
     */
    ccy?: string;
    /**
     * @property {string} [status] - Transfer status
     * @example "success"
     */
    status?: string;
    /**
     * @property {number} [start_time] - Start time
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - End time
     */
    end_time?: number;
    /**
     * @property {number} [page] - Page number
     * @default 1
     */
    page?: number;
    /**
     * @property {number} [limit] - Number of records per page
     * @default 100
     */
    limit?: number;
}
/**
 * @interface AssetTransferHistory
 * @description Asset transfer history
 */
interface AssetTransferHistory {
    /**
     * @property {number} transfer_id - Transfer ID
     * @example 12345
     */
    transfer_id: number;
    /**
     * @property {string} from_account_type - From account type
     * @example "spot"
     */
    from_account_type: string;
    /**
     * @property {string} to_account_type - To account type
     * @example "margin"
     */
    to_account_type: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Transfer amount
     * @example "100"
     */
    amount: string;
    /**
     * @property {string} status - Transfer status
     * @example "success"
     */
    status: string;
    /**
     * @property {number} created_at - Creation time
     * @example 1614837902000
     */
    created_at: number;
}
/**
 * @interface GetAssetTransferHistoryResponse
 * @description Response for getting asset transfer history
 */
interface GetAssetTransferHistoryResponse {
    data: AssetTransferHistory[];
    pagination: Pagination;
}
/**
 * @interface TransferParams
 * @description Parameters for making a transfer
 * @see https://docs.coinex.com/api/v2/assets/transfer/http/transfer
 */
interface TransferParams {
    /**
     * @property {string} from_account_type - From account type
     * @example "spot"
     */
    from_account_type: string;
    /**
     * @property {string} to_account_type - To account type
     * @example "margin"
     */
    to_account_type: string;
    /**
     * @property {string} ccy - Currency name
     * @example "USDT"
     */
    ccy: string;
    /**
     * @property {string} amount - Transfer amount
     * @example "100"
     */
    amount: string;
}

type KlinePeriod = '1min' | '5min' | '15min' | '30min' | '1hour' | '2hour' | '4hour' | '6hour' | '12hour' | '1day' | '3day' | '1week';
/**
 * @interface MarketBasisHistory
 * @description Represents a single entry in the basis history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-basis-history
 */
interface MarketBasisHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} basis - The basis rate.
     * @example "0.0001"
     */
    basis: string;
    /**
     * @property {string} price - The futures price.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} index_price - The index price.
     * @example "45001.00"
     */
    index_price: string;
    /**
     * @property {number} timestamp - The timestamp of the data.
     * @example 1622548800000
     */
    timestamp: number;
}
/**
 * @interface ListMarketBasisHistoryParams
 * @description Parameters for getting the basis rate history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-basis-history
 */
interface ListMarketBasisHistoryParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [limit] - The number of records to retrieve.
     * @example 100
     */
    limit?: number;
}
/**
 * @interface ListMarketBasisHistoryResponse
 * @description The response for the listMarketBasisHistory method.
 */
type ListMarketBasisHistoryResponse = MarketBasisHistory[];
/**
 * @interface MarketDeal
 * @description Represents a single market transaction in the futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-deals
 */
interface MarketDeal {
    /**
     * @property {number} deal_id - The ID of the deal.
     * @example 123456789
     */
    deal_id: number;
    /**
     * @property {number} created_at - The time the deal was created in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
    /**
     * @property {'buy' | 'sell'} type - The type of the deal.
     * @example "buy"
     */
    type: 'buy' | 'sell';
    /**
     * @property {string} price - The price at which the deal was executed.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the deal.
     * @example "0.5"
     */
    amount: string;
}
/**
 * @interface ListMarketDealsParams
 * @description Parameters for getting market transactions in the futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-deals
 */
interface ListMarketDealsParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} [limit] - The number of deals to retrieve.
     * @example 100
     */
    limit?: number;
    /**
     * @property {number} [last_id] - The ID of the last deal to start from.
     * @example 123456789
     */
    last_id?: number;
}
/**
 * @interface ListMarketDealsResponse
 * @description The response for the listMarketDeals method.
 */
type ListMarketDealsResponse = MarketDeal[];
/**
 * @interface MarketDepth
 * @description Represents the market depth for a single futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-depth
 */
interface MarketDepth {
    /**
     * @property {string} last - The last traded price.
     * @example "45000.00"
     */
    last: string;
    /**
     * @property {number} updated_at - The time of the last update in milliseconds.
     * @example 1622548800000
     */
    updated_at: number;
    /**
     * @property {[string, string][]} asks - The asks side of the order book.
     * @example [["45001.00", "0.1"], ["45002.00", "0.2"]]
     */
    asks: [string, string][];
    /**
     * @property {[string, string][]} bids - The bids side of the order book.
     * @example [["45000.00", "0.3"], ["44999.00", "0.4"]]
     */
    bids: [string, string][];
}
/**
 * @interface ListMarketDepthParams
 * @description Parameters for getting market depth in the futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-depth
 */
interface ListMarketDepthParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} limit - The number of depth levels to retrieve.
     * @example 10
     */
    limit: number;
    /**
     * @property {string} merge_level - The level at which to merge the order book.
     * @example "0.01"
     */
    merge_level: string;
}
/**
 * @interface ListMarketDepthResponse
 * @description The response for the listMarketDepth method.
 */
type ListMarketDepthResponse = MarketDepth;
/**
 * @interface MarketFundingRateHistory
 * @description Represents a single entry in the funding rate history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate-history
 */
interface MarketFundingRateHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} funding_rate - The funding rate.
     * @example "0.0001"
     */
    funding_rate: string;
    /**
     * @property {number} timestamp - The timestamp of the data in milliseconds.
     * @example 1622548800000
     */
    timestamp: number;
}
/**
 * @interface ListMarketFundingRateHistoryParams
 * @description Parameters for getting the funding rate history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate-history
 */
interface ListMarketFundingRateHistoryParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [limit] - The number of records to retrieve.
     * @example 100
     */
    limit?: number;
}
/**
 * @interface ListMarketFundingRateHistoryResponse
 * @description The response for the listMarketFundingRateHistory method.
 */
type ListMarketFundingRateHistoryResponse = MarketFundingRateHistory[];
/**
 * @interface MarketFundingRate
 * @description Represents the current funding rate of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate
 */
interface MarketFundingRate {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} funding_rate - The current funding rate.
     * @example "0.0001"
     */
    funding_rate: string;
    /**
     * @property {number} next_funding_time - The timestamp of the next funding event in milliseconds.
     * @example 1622552400000
     */
    next_funding_time: number;
}
/**
 * @interface ListMarketFundingRateParams
 * @description Parameters for getting the funding rate of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate
 */
interface ListMarketFundingRateParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListMarketFundingRateResponse
 * @description The response for the listMarketFundingRate method.
 */
type ListMarketFundingRateResponse = MarketFundingRate[];
/**
 * @interface MarketIndex
 * @description Represents the index price of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-index
 */
interface MarketIndex {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} index_name - The name of the index.
     * @example "BTCUSDT"
     */
    index_name: string;
    /**
     * @property {string} index_price - The current index price.
     * @example "45001.00"
     */
    index_price: string;
}
/**
 * @interface ListMarketIndexParams
 * @description Parameters for getting the index price of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-index
 */
interface ListMarketIndexParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListMarketIndexResponse
 * @description The response for the listMarketIndex method.
 */
type ListMarketIndexResponse = MarketIndex[];
/**
 * @typedef MarketKline
 * @description Represents a single candlestick data point for the futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-kline
 */
type MarketKline = [
    timestamp: number,
    open: string,
    close: string,
    high: string,
    low: string,
    volume: string,
    value: string
];
/**
 * @interface ListMarketKlineParams
 * @description Parameters for getting market candlesticks in the futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-kline
 */
interface ListMarketKlineParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {PriceType} [price_type] - The type of price to use for the k-line.
     * @example "latest_price"
     */
    price_type?: TriggerPriceType;
    /**
     * @property {KlinePeriod} period - The k-line period.
     * @example "1hour"
     */
    period: KlinePeriod;
    /**
     * @property {number} limit - The number of k-lines to retrieve.
     * @example 100
     */
    limit: number;
}
/**
 * @interface ListMarketKlineResponse
 * @description The response for the listMarketKline method.
 */
type ListMarketKlineResponse = MarketKline[];
/**
 * @interface MarketLiquidationHistory
 * @description Represents a single entry in the liquidation history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-liquidation-history
 */
interface MarketLiquidationHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {'buy' | 'sell'} side - The side of the liquidated position.
     * @example "buy"
     */
    side: 'buy' | 'sell';
    /**
     * @property {string} price - The price at which the liquidation occurred.
     * @example "44000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the liquidated position.
     * @example "1.5"
     */
    amount: string;
    /**
     * @property {number} timestamp - The timestamp of the liquidation in milliseconds.
     * @example 1622548800000
     */
    timestamp: number;
}
/**
 * @interface ListMarketLiquidationHistoryParams
 * @description Parameters for getting the liquidation history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-liquidation-history
 */
interface ListMarketLiquidationHistoryParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [limit] - The number of records to retrieve.
     * @example 100
     */
    limit?: number;
}
/**
 * @interface ListMarketLiquidationHistoryResponse
 * @description The response for the listMarketLiquidationHistory method.
 */
type ListMarketLiquidationHistoryResponse = MarketLiquidationHistory[];
/**
 * @interface MarketPositionLevel
 * @description Represents the position level of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-position-level
 */
interface MarketPositionLevel {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {{ amount: string; leverage: number; maintenance_margin_rate: string; min_initial_margin_rate: string; }[]} position_level - The position levels.
     */
    position_level: {
        amount: string;
        leverage: number;
        maintenance_margin_rate: string;
        min_initial_margin_rate: string;
    }[];
}
/**
 * @interface ListMarketPositionLevelParams
 * @description Parameters for getting the position level of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-position-level
 */
interface ListMarketPositionLevelParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListMarketPositionLevelResponse
 * @description The response for the listMarketPositionLevel method.
 */
type ListMarketPositionLevelResponse = MarketPositionLevel[];
/**
 * @interface MarketPremiumHistory
 * @description Represents a single entry in the premium index history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-premium-history
 */
interface MarketPremiumHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} premium_index - The premium index.
     * @example "0.0001"
     */
    premium_index: string;
    /**
     * @property {string} price - The futures price.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} index_price - The index price.
     * @example "45001.00"
     */
    index_price: string;
    /**
     * @property {number} timestamp - The timestamp of the data in milliseconds.
     * @example 1622548800000
     */
    timestamp: number;
}
/**
 * @interface ListMarketPremiumHistoryParams
 * @description Parameters for getting the premium index history of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-premium-history
 */
interface ListMarketPremiumHistoryParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [limit] - The number of records to retrieve.
     * @example 100
     */
    limit?: number;
}
/**
 * @interface ListMarketPremiumHistoryResponse
 * @description The response for the listMarketPremiumHistory method.
 */
type ListMarketPremiumHistoryResponse = MarketPremiumHistory[];
/**
 * @interface MarketTicker
 * @description Represents the ticker information for a single futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-ticker
 */
interface MarketTicker {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} last - The last traded price.
     * @example "45000.00"
     */
    last: string;
    /**
     * @property {string} open - The opening price.
     * @example "44000.00"
     */
    open: string;
    /**
     * @property {string} close - The closing price.
     * @example "45000.00"
     */
    close: string;
    /**
     * @property {string} high - The highest price.
     * @example "46000.00"
     */
    high: string;
    /**
     * @property {string} low - The lowest price.
     * @example "43000.00"
     */
    low: string;
    /**
     * @property {string} volume - The trading volume.
     * @example "1000.5"
     */
    volume: string;
    /**
     * @property {string} value - The trading value.
     * @example "45000000.00"
     */
    value: string;
    /**
     * @property {number} period - The time period in seconds for the ticker data.
     * @example 86400
     */
    period: number;
}
/**
 * @interface ListMarketTickerParams
 * @description Parameters for getting the ticker information of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-ticker
 */
interface ListMarketTickerParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListMarketTickerResponse
 * @description The response for the listMarketTicker method.
 */
type ListMarketTickerResponse = MarketTicker[];
/**
 * @interface FuturesMarketStatus
 * @description Represents the status of a single futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market
 */
interface FuturesMarketStatus {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {MarketType} market_type - The type of the market.
     * @example "FUTURES"
     */
    market_type: MarketType;
    /**
     * @property {string} base_ccy - The base currency.
     * @example "BTC"
     */
    base_ccy: string;
    /**
     * @property {string} quote_ccy - The quote currency.
     * @example "USDT"
     */
    quote_ccy: string;
    /**
     * @property {number} base_ccy_precision - The precision of the base currency.
     * @example 8
     */
    base_ccy_precision: number;
    /**
     * @property {number} quote_ccy_precision - The precision of the quote currency.
     * @example 2
     */
    quote_ccy_precision: number;
    /**
     * @property {string} min_amount - The minimum order amount.
     * @example "0.001"
     */
    min_amount: string;
    /**
     * @property {boolean} is_perpetual - Whether the market is a perpetual contract.
     * @example true
     */
    is_perpetual: boolean;
}
/**
 * @interface ListMarketParams
 * @description Parameters for getting the status of a futures market.
 * @see https://docs.coinex.com/api/v2/futures/market/http/list-market
 */
interface ListMarketParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListMarketResponse
 * @description The response for the listMarket method.
 */
type ListMarketResponse = FuturesMarketStatus[];

/**
 * @interface UserDeal
 * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-deals
 */
interface UserDeal {
    deal_id: number;
    created_at: number;
    market: string;
    order_id: number;
    side: OrderSide;
    type: 'taker' | 'maker';
    fee: string;
    fee_ccy: string;
    price: string;
    amount: string;
    value: string;
    pnl: string;
}
/**
 * @interface ListUserDealsParams
 * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-deals
 */
interface ListUserDealsParams {
    market?: string;
    side?: OrderSide;
    start_time?: number;
    end_time?: number;
    page?: number;
    limit?: number;
}
/**
 * @interface ListUserDealsResponse
 */
interface ListUserDealsResponse {
    data: UserDeal[];
    pagination: Pagination;
}
/**
 * @interface UserOrderDeal
 * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-order-deals
 */
interface UserOrderDeal {
    deal_id: number;
    created_at: number;
    market: string;
    order_id: number;
    side: OrderSide;
    type: 'taker' | 'maker';
    fee: string;
    fee_ccy: string;
    price: string;
    amount: string;
    value: string;
    pnl: string;
}
/**
 * @interface ListUserOrderDealsParams
 * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-order-deals
 */
interface ListUserOrderDealsParams {
    market: string;
    order_id: number;
    page?: number;
    limit?: number;
}
/**
 * @interface ListUserOrderDealsResponse
 */
interface ListUserOrderDealsResponse {
    data: UserOrderDeal[];
    pagination: Pagination;
}

declare enum OrderOption {
    POST_ONLY = "post_only",
    IOC = "ioc",
    FOK = "fok"
}
/**
 * @interface Order
 * @description Represents a futures order.
 */
interface Order {
    /**
     * @property {number} order_id - The ID of the order.
     * @example 123456789
     */
    order_id: number;
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} value - The value of the order.
     * @example "22500.00"
     */
    value: string;
    /**
     * @property {string} filled_amount - The filled amount of the order.
     * @example "0.1"
     */
    filled_amount: string;
    /**
     * @property {string} filled_value - The filled value of the order.
     * @example "4500.00"
     */
    filled_value: string;
    /**
     * @property {string} fee - The transaction fee.
     * @example "0.02"
     */
    fee: string;
    /**
     * @property {string} fee_ccy - The currency of the transaction fee.
     * @example "USDT"
     */
    fee_ccy: string;
    /**
     * @property {OrderStatus} status - The status of the order.
     * @example "partially_filled"
     */
    status: OrderStatus;
    /**
     * @property {number} created_at - The time the order was created in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
    /**
     * @property {number} updated_at - The time the order was last updated in milliseconds.
     * @example 1622548800000
     */
    updated_at: number;
    /**
     * @property {string} client_id - The client-provided ID.
     * @example "my-custom-id"
     */
    client_id: string;
}
/**
 * @interface StopOrder
 * @description Represents a futures stop order.
 */
interface StopOrder {
    /**
     * @property {number} stop_id - The ID of the stop order.
     * @example 123456789
     */
    stop_id: number;
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price of the stop order.
     * @example "46000.00"
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     * @example "latest_price"
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {OrderStatus} status - The status of the order.
     * @example "pending"
     */
    status: OrderStatus;
    /**
     * @property {number} created_at - The time the order was created in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
    /**
     * @property {number} updated_at - The time the order was last updated in milliseconds.
     * @example 1622548800000
     */
    updated_at: number;
    /**
     * @property {string} client_id - The client-provided ID.
     * @example "my-custom-stop-id"
     */
    client_id: string;
}
/**
 * @interface PutOrderParams
 * @description Parameters for placing a new futures order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/put-order
 */
interface PutOrderParams {
    /**
     * @property {string} market - The market to place the order in.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} [value] - The value of the order.
     * @example "22500.00"
     */
    value?: string;
    /**
     * @property {string} [client_id] - A unique identifier for the order.
     * @example "my-custom-id"
     */
    client_id?: string;
    /**
     * @property {boolean} [hide] - Whether the order should be hidden.
     * @example false
     */
    hide?: boolean;
    /**
     * @property {OrderOption} [order_option] - Additional order options.
     * @example "ioc"
     */
    order_option?: OrderOption;
    /**
     * @property {string} [take_profit_price] - The take profit price.
     * @example "50000.00"
     */
    take_profit_price?: string;
    /**
     * @property {string} [stop_loss_price] - The stop loss price.
     * @example "40000.00"
     */
    stop_loss_price?: string;
}
/**
 * @interface PutOrderResponse
 * @description The response for the putOrder method.
 */
type PutOrderResponse = Order;
/**
 * @interface PutStopOrderParams
 * @description Parameters for placing a new futures stop order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/put-stop-order
 */
interface PutStopOrderParams {
    /**
     * @property {string} market - The market to place the order in.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price for the stop order.
     * @example "46000.00"
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     * @example "latest_price"
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {string} [client_id] - A unique identifier for the order.
     * @example "my-custom-stop-id"
     */
    client_id?: string;
    /**
     * @property {TakeProfitType} [take_profit_type] - The take profit type.
     * @example "latest_price"
     */
    take_profit_type?: TakeProfitType;
    /**
     * @property {StopLossType} [stop_loss_type] - The stop loss type.
     * @example "latest_price"
     */
    stop_loss_type?: StopLossType;
    /**
     * @property {string} [take_profit_price] - The take profit price.
     * @example "50000.00"
     */
    take_profit_price?: string;
    /**
     * @property {string} [stop_loss_price] - The stop loss price.
     * @example "40000.00"
     */
    stop_loss_price?: string;
}
/**
 * @interface PutStopOrderResponse
 * @description The response for the putStopOrder method.
 */
type PutStopOrderResponse = StopOrder;
/**
 * @interface GetOrderStatusParams
 * @description Parameters for getting the status of a single futures order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/get-order-status
 */
interface GetOrderStatusParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to query.
     * @example 123456789
     */
    order_id: number;
}
/**
 * @interface GetOrderStatusResponse
 * @description The response for the getOrderStatus method.
 */
type GetOrderStatusResponse = Order;
/**
 * @interface GetMultiOrderStatusParams
 * @description Parameters for getting the status of multiple futures orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/get-multi-order-status
 */
interface GetMultiOrderStatusParams {
    /**
     * @property {string} market - The market of the orders.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} order_ids - A comma-separated list of order IDs.
     * @example "123456789,987654321"
     */
    order_ids: string;
}
/**
 * @interface GetMultiOrderStatusResponse
 * @description The response for the getMultiOrderStatus method.
 */
type GetMultiOrderStatusResponse = Order[];
/**
 * @interface ListPendingOrderParams
 * @description Parameters for listing pending futures orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/list-pending-order
 */
interface ListPendingOrderParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders to retrieve.
     * @example "buy"
     */
    side?: OrderSide;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPendingOrderResponse
 * @description The response for the listPendingOrder method.
 */
interface ListPendingOrderResponse {
    data: Order[];
    pagination: Pagination;
}
/**
 * @interface ListFinishedOrderParams
 * @description Parameters for listing finished futures orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/list-finished-order
 */
interface ListFinishedOrderParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders to retrieve.
     * @example "buy"
     */
    side?: OrderSide;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListFinishedOrderResponse
 * @description The response for the listFinishedOrder method.
 */
interface ListFinishedOrderResponse {
    data: Order[];
    pagination: Pagination;
}
/**
 * @interface ListPendingStopOrderParams
 * @description Parameters for listing pending futures stop orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/list-pending-stop-order
 */
interface ListPendingStopOrderParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders to retrieve.
     * @example "buy"
     */
    side?: OrderSide;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPendingStopOrderResponse
 * @description The response for the listPendingStopOrder method.
 */
interface ListPendingStopOrderResponse {
    data: StopOrder[];
    pagination: Pagination;
}
/**
 * @interface ListFinishedStopOrderParams
 * @description Parameters for listing finished futures stop orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/list-finished-stop-order
 */
interface ListFinishedStopOrderParams {
    /**
     * @property {string} market - The market to query.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders to retrieve.
     * @example "buy"
     */
    side?: OrderSide;
    /**
     * @property {number} [start_time] - The start time of the query range in milliseconds.
     * @example 1622548800000
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range in milliseconds.
     * @example 1622635200000
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListFinishedStopOrderResponse
 * @description The response for the listFinishedStopOrder method.
 */
interface ListFinishedStopOrderResponse {
    data: StopOrder[];
    pagination: Pagination;
}
/**
 * @interface EditOrderParams
 * @description Parameters for editing an existing futures order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/edit-order
 */
interface EditOrderParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to edit.
     * @example 123456789
     */
    order_id: number;
    /**
     * @property {string} price - The new price for the order.
     * @example "45500.00"
     */
    price: string;
    /**
     * @property {string} amount - The new amount for the order.
     * @example "0.6"
     */
    amount: string;
}
/**
 * @interface EditOrderResponse
 * @description The response for the editOrder method.
 */
type EditOrderResponse = Order;
/**
 * @interface EditStopOrderParams
 * @description Parameters for editing an existing futures stop order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/edit-stop-order
 */
interface EditStopOrderParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} stop_id - The ID of the stop order to edit.
     * @example 123456789
     */
    stop_id: number;
    /**
     * @property {string} price - The new price for the order.
     * @example "45500.00"
     */
    price: string;
    /**
     * @property {string} amount - The new amount for the order.
     * @example "0.6"
     */
    amount: string;
    /**
     * @property {string} trigger_price - The new trigger price for the stop order.
     * @example "46500.00"
     */
    trigger_price: string;
}
/**
 * @interface EditStopOrderResponse
 * @description The response for the editStopOrder method.
 */
type EditStopOrderResponse = StopOrder;
/**
 * @interface CancelOrderParams
 * @description Parameters for canceling a single futures order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order
 */
interface CancelOrderParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to cancel.
     * @example 123456789
     */
    order_id: number;
}
/**
 * @interface CancelOrderByClientIdParams
 * @description Parameters for canceling a single futures order by its client ID.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order-by-client-id
 */
interface CancelOrderByClientIdParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} client_id - The client ID of the order to cancel.
     * @example "my-custom-id"
     */
    client_id: string;
}
/**
 * @interface CancelStopOrderParams
 * @description Parameters for canceling a single futures stop order.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order
 */
interface CancelStopOrderParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} stop_id - The ID of the stop order to cancel.
     * @example 123456789
     */
    stop_id: number;
}
/**
 * @interface CancelStopOrderByClientIdParams
 * @description Parameters for canceling a single futures stop order by its client ID.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order-by-client-id
 */
interface CancelStopOrderByClientIdParams {
    /**
     * @property {string} market - The market of the order.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} client_id - The client ID of the stop order to cancel.
     * @example "my-custom-stop-id"
     */
    client_id: string;
}
/**
 * @interface CancelAllOrderParams
 * @description Parameters for canceling all futures orders in a specific market.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-all-order
 */
interface CancelAllOrderParams {
    /**
     * @property {string} market - The market to cancel all orders in.
     * @example "BTCUSDT"
     */
    market: string;
}
/**
 * @interface CancelBatchOrderParams
 * @description Parameters for canceling a batch of futures orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-batch-order
 */
interface CancelBatchOrderParams {
    /**
     * @property {string} market - The market of the orders.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} order_ids - A comma-separated list of order IDs to cancel.
     * @example "123456789,987654321"
     */
    order_ids: string;
}
/**
 * @interface CancelBatchStopOrderParams
 * @description Parameters for canceling a batch of futures stop orders.
 * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-batch-stop-order
 */
interface CancelBatchStopOrderParams {
    /**
     * @property {string} market - The market of the orders.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} stop_ids - A comma-separated list of stop order IDs to cancel.
     * @example "123456789,987654321"
     */
    stop_ids: string;
}
/**
 * @interface PutMultiOrderParams
 * @description Parameters for placing multiple futures orders in a single request.
 * @see https://docs.coinex.com/api/v2/futures/order/http/put-multi-order
 */
interface PutMultiOrderParams {
    /**
     * @property {string} market - The market to place the order in.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} [value] - The value of the order.
     * @example "22500.00"
     */
    value?: string;
    /**
     * @property {string} [client_id] - A unique identifier for the order.
     * @example "my-custom-id"
     */
    client_id?: string;
    /**
     * @property {boolean} [hide] - Whether the order should be hidden.
     * @example false
     */
    hide?: boolean;
    /**
     * @property {OrderOption} [order_option] - Additional order options.
     * @example "ioc"
     */
    order_option?: OrderOption;
    /**
     * @property {TakeProfitType} [take_profit_type] - The take profit type.
     * @example "latest_price"
     */
    take_profit_type?: TakeProfitType;
    /**
     * @property {StopLossType} [stop_loss_type] - The stop loss type.
     * @example "latest_price"
     */
    stop_loss_type?: StopLossType;
    /**
     * @property {string} [take_profit_price] - The take profit price.
     * @example "50000.00"
     */
    take_profit_price?: string;
    /**
     * @property {string} [stop_loss_price] - The stop loss price.
     * @example "40000.00"
     */
    stop_loss_price?: string;
}
/**
 * @interface PutMultiStopOrderParams
 * @description Parameters for placing multiple futures stop orders in a single request.
 * @see https://docs.coinex.com/api/v2/futures/order/http/put-multi-stop-order
 */
interface PutMultiStopOrderParams {
    /**
     * @property {string} market - The market to place the order in.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order.
     * @example "buy"
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order.
     * @example "limit"
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price for the stop order.
     * @example "46000.00"
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     * @example "latest_price"
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {string} [client_id] - A unique identifier for the order.
     * @example "my-custom-stop-id"
     */
    client_id?: string;
}

/**
 * @interface AdjustPositionLeverageParams
 * @description Parameters for adjusting the leverage of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/adjust-position-leverage
 */
interface AdjustPositionLeverageParams {
    /**
     * @property {string} market - The market to adjust leverage for.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {number} leverage - The new leverage value.
     * @example 10
     */
    leverage: number;
    /**
     * @property {PositionSide} position_side - The side of the position.
     * @example "long"
     */
    position_side: PositionSide;
}
/**
 * @interface AdjustPositionMarginParams
 * @description Parameters for adjusting the margin of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/adjust-position-margin
 */
interface AdjustPositionMarginParams {
    /**
     * @property {string} market - The market to adjust margin for.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} amount - The amount of margin to add or remove.
     * @example "100.00"
     */
    amount: string;
    /**
     * @property {1 | 2} type - The type of adjustment (1 for add, 2 for remove).
     * @example 1
     */
    type: 1 | 2;
}
/**
 * @interface ClosePositionParams
 * @description Parameters for closing a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/close-position
 */
interface ClosePositionParams {
    /**
     * @property {string} market - The market to close the position in.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} price - The price at which to close the position.
     * @example "45000.00"
     */
    price: string;
    /**
     * @property {string} amount - The amount to close.
     * @example "0.5"
     */
    amount: string;
    /**
     * @property {PositionSide} side - The side of the position to close.
     * @example "long"
     */
    side: PositionSide;
}
/**
 * @interface Position
 * @description Represents a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-finished-position
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-pending-position
 */
interface Position$1 {
    /**
     * @property {number} position_id - The ID of the position.
     * @example 12345
     */
    position_id: number;
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {PositionSide} side - The side of the position.
     * @example "long"
     */
    side: PositionSide;
    /**
     * @property {number} leverage - The leverage of the position.
     * @example 10
     */
    leverage: number;
    /**
     * @property {string} open_price - The opening price of the position.
     * @example "40000.00"
     */
    open_price: string;
    /**
     * @property {string} open_value - The opening value of the position.
     * @example "20000.00"
     */
    open_value: string;
    /**
     * @property {string} open_amount - The opening amount of the position.
     * @example "0.5"
     */
    open_amount: string;
    /**
     * @property {string} close_price - The closing price of the position.
     * @example "45000.00"
     */
    close_price: string;
    /**
     * @property {string} close_value - The closing value of the position.
     * @example "22500.00"
     */
    close_value: string;
    /**
     * @property {string} close_amount - The closing amount of the position.
     * @example "0.5"
     */
    close_amount: string;
    /**
     * @property {string} unrealized_pnl - The unrealized profit and loss.
     * @example "2500.00"
     */
    unrealized_pnl: string;
    /**
     * @property {string} realized_pnl - The realized profit and loss.
     * @example "2000.00"
     */
    realized_pnl: string;
    /**
     * @property {string} avg_price - The average price of the position.
     * @example "42500.00"
     */
    avg_price: string;
    /**
     * @property {string} margin - The margin of the position.
     * @example "2000.00"
     */
    margin: string;
    /**
     * @property {string} maintenance_margin - The maintenance margin of the position.
     * @example "100.00"
     */
    maintenance_margin: string;
    /**
     * @property {string} liquidation_price - The liquidation price of the position.
     * @example "38000.00"
     */
    liquidation_price: string;
    /**
     * @property {string} take_profit_price - The take profit price for the position.
     * @example "50000.00"
     */
    take_profit_price: string;
    /**
     * @property {string} stop_loss_price - The stop loss price for the position.
     * @example "39000.00"
     */
    stop_loss_price: string;
    /**
     * @property {number} created_at - The time the position was created in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
    /**
     * @property {number} updated_at - The time the position was last updated in milliseconds.
     * @example 1622548800000
     */
    updated_at: number;
}
/**
 * @interface ListFinishedPositionParams
 * @description Parameters for listing finished futures positions.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-finished-position
 */
interface ListFinishedPositionParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of positions per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListFinishedPositionResponse
 * @description The response for the listFinishedPosition method.
 */
interface ListFinishedPositionResponse {
    data: Position$1[];
    pagination: Pagination;
}
/**
 * @interface ListPendingPositionParams
 * @description Parameters for listing pending futures positions.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-pending-position
 */
interface ListPendingPositionParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
}
/**
 * @interface ListPendingPositionResponse
 * @description The response for the listPendingPosition method.
 */
type ListPendingPositionResponse = Position$1[];
/**
 * @interface PositionAdlHistory
 * @description Represents the auto-deleveraging history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-positiing-adl-history
 */
interface PositionAdlHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {PositionSide} side - The side of the position.
     * @example "long"
     */
    side: PositionSide;
    /**
     * @property {string} adl_price - The auto-deleveraging price.
     * @example "40000.00"
     */
    adl_price: string;
    /**
     * @property {string} adl_amount - The auto-deleveraging amount.
     * @example "0.1"
     */
    adl_amount: string;
    /**
     * @property {string} adl_value - The auto-deleveraging value.
     * @example "4000.00"
     */
    adl_value: string;
    /**
     * @property {number} created_at - The time of the event in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
}
/**
 * @interface ListPositionAdlHistoryParams
 * @description Parameters for listing the auto-deleveraging history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-positiing-adl-history
 */
interface ListPositionAdlHistoryParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of records per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPositionAdlHistoryResponse
 * @description The response for the listPositionAdlHistory method.
 */
interface ListPositionAdlHistoryResponse {
    data: PositionAdlHistory[];
    pagination: Pagination;
}
/**
 * @interface PositionFundingHistory
 * @description Represents the funding history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-funding-history
 */
interface PositionFundingHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} funding_rate - The funding rate.
     * @example "0.0001"
     */
    funding_rate: string;
    /**
     * @property {string} funding_fee - The funding fee.
     * @example "1.23"
     */
    funding_fee: string;
    /**
     * @property {number} created_at - The time of the event in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
}
/**
 * @interface ListPositionFundingHistoryParams
 * @description Parameters for listing the funding history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-funding-history
 */
interface ListPositionFundingHistoryParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of records per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPositionFundingHistoryResponse
 * @description The response for the listPositionFundingHistory method.
 */
interface ListPositionFundingHistoryResponse {
    data: PositionFundingHistory[];
    pagination: Pagination;
}
/**
 * @interface PositionMarginHistory
 * @description Represents the margin history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-margin-history
 */
interface PositionMarginHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} amount - The amount of margin changed.
     * @example "100.00"
     */
    amount: string;
    /**
     * @property {1 | 2} type - The type of change (1 for add, 2 for remove).
     * @example 1
     */
    type: 1 | 2;
    /**
     * @property {number} created_at - The time of the event in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
}
/**
 * @interface ListPositionMarginHistoryParams
 * @description Parameters for listing the margin history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-margin-history
 */
interface ListPositionMarginHistoryParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of records per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPositionMarginHistoryResponse
 * @description The response for the listPositionMarginHistory method.
 */
interface ListPositionMarginHistoryResponse {
    data: PositionMarginHistory[];
    pagination: Pagination;
}
/**
 * @interface PositionSettleHistory
 * @description Represents the settlement history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-settle-history
 */
interface PositionSettleHistory {
    /**
     * @property {string} market - The market name.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} settle_price - The settlement price.
     * @example "45000.00"
     */
    settle_price: string;
    /**
     * @property {number} created_at - The time of the event in milliseconds.
     * @example 1622548800000
     */
    created_at: number;
}
/**
 * @interface ListPositionSettleHistoryParams
 * @description Parameters for listing the settlement history of a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-settle-history
 */
interface ListPositionSettleHistoryParams {
    /**
     * @property {string} [market] - The market to query.
     * @example "BTCUSDT"
     */
    market?: string;
    /**
     * @property {number} [page] - The page number of the results.
     * @example 1
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of records per page.
     * @example 10
     */
    limit?: number;
}
/**
 * @interface ListPositionSettleHistoryResponse
 * @description The response for the listPositionSettleHistory method.
 */
interface ListPositionSettleHistoryResponse {
    data: PositionSettleHistory[];
    pagination: Pagination;
}
/**
 * @interface SetPositionStopLossParams
 * @description Parameters for setting the stop-loss price for a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/set-position-stop-loss
 */
interface SetPositionStopLossParams {
    /**
     * @property {string} market - The market to set the stop-loss for.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} stop_loss_price - The stop-loss price.
     * @example "39000.00"
     */
    stop_loss_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     * @example "latest_price"
     */
    trigger_price_type: TriggerPriceType;
}
/**
 * @interface SetPositionTakeProfitParams
 * @description Parameters for setting the take-profit price for a futures position.
 * @see https://docs.coinex.com/api/v2/futures/position/http/set-position-take-profit
 */
interface SetPositionTakeProfitParams {
    /**
     * @property {string} market - The market to set the take-profit for.
     * @example "BTCUSDT"
     */
    market: string;
    /**
     * @property {string} take_profit_price - The take-profit price.
     * @example "50000.00"
     */
    take_profit_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     * @example "latest_price"
     */
    trigger_price_type: TriggerPriceType;
}

/**
 * @interface MaintenanceInfo
 * @description Represents the maintenance information for the CoinEx platform.
 * @see https://docs.coinex.com/api/v2/common/maintain/http/get-maintenance-info
 */
interface MaintenanceInfo {
    /**
     * @property {number} started_at - The start time of the maintenance in milliseconds.
     * @example 1622548800000
     */
    started_at: number;
    /**
     * @property {number} ended_at - The end time of the maintenance in milliseconds.
     * @example 1622635200000
     */
    ended_at: number;
    /**
     * @property {('FUTURES' | 'SPOT' | 'ALL_SITE')[]} scope - The scope of the maintenance.
     * @example ["ALL_SITE"]
     */
    scope: ('FUTURES' | 'SPOT' | 'ALL_SITE')[];
    /**
     * @property {string} announce_url - The URL for the maintenance announcement.
     * @example "https://www.coinex.com/announcement/123"
     */
    announce_url: string;
    /**
     * @property {boolean} announce_enabled - Whether the announcement is enabled.
     * @example true
     */
    announce_enabled: boolean;
    /**
     * @property {number} protect_duration_start - The start time of the protection duration in milliseconds.
     * @example 1622548800000
     */
    protect_duration_start: number;
    /**
     * @property {number} protect_duration_end - The end time of the protection duration in milliseconds.
     * @example 1622635200000
     */
    protect_duration_end: number;
}
/**
 * @interface GetMaintenanceInfoResponse
 * @description The response for the getMaintenanceInfo method.
 * @see https://docs.coinex.com/api/v2/common/maintain/http/get-maintenance-info
 */
type GetMaintenanceInfoResponse = MaintenanceInfo[];

/**
 * @interface SpotUserDeal
 * @description Represents a single user deal in the spot market.
 * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-deals
 */
interface SpotUserDeal {
    /**
     * @property {number} deal_id - The ID of the deal.
     */
    deal_id: number;
    /**
     * @property {number} created_at - The time the deal was created.
     */
    created_at: number;
    /**
     * @property {string} market - The market in which the deal was executed.
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order associated with the deal.
     */
    order_id: number;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {'taker' | 'maker'} type - The type of the deal, "taker" or "maker".
     */
    type: 'taker' | 'maker';
    /**
     * @property {string} fee - The transaction fee.
     */
    fee: string;
    /**
     * @property {string} fee_ccy - The currency of the transaction fee.
     */
    fee_ccy: string;
    /**
     * @property {string} price - The price at which the deal was executed.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the deal.
     */
    amount: string;
    /**
     * @property {string} value - The total value of the deal.
     */
    value: string;
}
/**
 * @interface SpotListUserDealsParams
 * @description Parameters for listing user deals in the spot market.
 * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-deals
 */
interface SpotListUserDealsParams {
    /**
     * @property {string} [market] - The market to query, e.g., "BTCUSDT".
     */
    market?: string;
    /**
     * @property {OrderSide} [side] - The side of the order, "buy" or "sell".
     */
    side?: OrderSide;
    /**
     * @property {number} [start_time] - The start time of the query range.
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range.
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of deals to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListUserDealsResponse
 * @description The response for the listUserDeals method.
 */
interface SpotListUserDealsResponse {
    data: SpotUserDeal[];
    pagination: Pagination;
}
/**
 * @interface SpotUserOrderDeal
 * @description Represents a single user order deal in the spot market.
 * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-order-deals
 */
interface SpotUserOrderDeal {
    /**
     * @property {number} deal_id - The ID of the deal.
     */
    deal_id: number;
    /**
     * @property {number} created_at - The time the deal was created.
     */
    created_at: number;
    /**
     * @property {string} market - The market in which the deal was executed.
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order associated with the deal.
     */
    order_id: number;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {'taker' | 'maker'} type - The type of the deal, "taker" or "maker".
     */
    type: 'taker' | 'maker';
    /**
     * @property {string} fee - The transaction fee.
     */
    fee: string;
    /**
     * @property {string} fee_ccy - The currency of the transaction fee.
     */
    fee_ccy: string;
    /**
     * @property {string} price - The price at which the deal was executed.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the deal.
     */
    amount: string;
    /**
     * @property {string} value - The total value of the deal.
     */
    value: string;
}
/**
 * @interface SpotListUserOrderDealsParams
 * @description Parameters for listing user order deals in the spot market.
 * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-order-deals
 */
interface SpotListUserOrderDealsParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to retrieve deals for.
     */
    order_id: number;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of deals to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListUserOrderDealsResponse
 * @description The response for the listUserOrderDeals method.
 */
interface SpotListUserOrderDealsResponse {
    data: SpotUserOrderDeal[];
    pagination: Pagination;
}

type SpotKlinePeriod = '1min' | '5min' | '15min' | '30min' | '1hour' | '2hour' | '4hour' | '6hour' | '12hour' | '1day' | '3day' | '1week';
/**
 * @interface SpotMarketStatus
 * @description Represents the status of a single spot market.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market
 */
interface SpotMarketStatus {
    /**
     * @property {string} market - The name of the market, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {MarketType} market_type - The type of the market, e.g., "spot".
     */
    market_type: MarketType;
    /**
     * @property {string} base_ccy - The base currency, e.g., "BTC".
     */
    base_ccy: string;
    /**
     * @property {string} quote_ccy - The quote currency, e.g., "USDT".
     */
    quote_ccy: string;
    /**
     * @property {number} base_ccy_precision - The precision of the base currency.
     */
    base_ccy_precision: number;
    /**
     * @property {number} quote_ccy_precision - The precision of the quote currency.
     */
    quote_ccy_precision: number;
    /**
     * @property {string} min_amount - The minimum order amount.
     */
    min_amount: string;
    /**
     * @property {boolean} is_amm_available - Whether AMM is available for this market.
     */
    is_amm_available: boolean;
    /**
     * @property {boolean} is_margin_available - Whether margin trading is available for this market.
     */
    is_margin_available: boolean;
    /**
     * @property {boolean} is_emitted - Whether the market is currently active.
     */
    is_emitted: boolean;
}
/**
 * @interface SpotListMarketParams
 * @description Parameters for listing spot markets.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market
 */
interface SpotListMarketParams {
    /**
     * @property {string} [market] - A specific market to query, e.g., "BTCUSDT".
     */
    market?: string;
}
/**
 * @interface SpotListMarketResponse
 * @description The response for the listMarket method.
 */
type SpotListMarketResponse = SpotMarketStatus[];
/**
 * @interface SpotMarketTicker
 * @description Represents the ticker information for a single spot market.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-ticker
 */
interface SpotMarketTicker {
    /**
     * @property {string} market - The name of the market, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} last - The last traded price.
     */
    last: string;
    /**
     * @property {string} open - The opening price.
     */
    open: string;
    /**
     * @property {string} close - The closing price.
     */
    close: string;
    /**
     * @property {string} high - The highest price.
     */
    high: string;
    /**
     * @property {string} low - The lowest price.
     */
    low: string;
    /**
     * @property {string} volume - The trading volume.
     */
    volume: string;
    /**
     * @property {string} value - The trading value.
     */
    value: string;
    /**
     * @property {number} period - The time period in seconds for the ticker data.
     */
    period: number;
}
/**
 * @interface SpotListMarketTickerParams
 * @description Parameters for listing spot market tickers.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-ticker
 */
interface SpotListMarketTickerParams {
    /**
     * @property {string} [market] - A specific market to query, e.g., "BTCUSDT".
     */
    market?: string;
}
/**
 * @interface SpotListMarketTickerResponse
 * @description The response for the listMarketTicker method.
 */
type SpotListMarketTickerResponse = SpotMarketTicker[];
/**
 * @interface SpotMarketDepth
 * @description Represents the market depth for a single spot market.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-depth
 */
interface SpotMarketDepth {
    /**
     * @property {string} last - The last traded price.
     */
    last: string;
    /**
     * @property {number} updated_at - The time of the last update.
     */
    updated_at: number;
    /**
     * @property {[string, string][]} asks - The asks side of the order book.
     */
    asks: [string, string][];
    /**
     * @property {[string, string][]} bids - The bids side of the order book.
     */
    bids: [string, string][];
}
/**
 * @interface SpotListMarketDepthParams
 * @description Parameters for listing spot market depth.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-depth
 */
interface SpotListMarketDepthParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} limit - The number of depth levels to retrieve.
     */
    limit: number;
    /**
     * @property {string} merge_level - The level at which to merge the order book.
     */
    merge_level: string;
}
/**
 * @interface SpotListMarketDepthResponse
 * @description The response for the listMarketDepth method.
 */
type SpotListMarketDepthResponse = SpotMarketDepth;
/**
 * @typedef SpotMarketKline
 * @description Represents a single k-line (candlestick) data point.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-kline
 */
type SpotMarketKline = [
    timestamp: number,
    open: string,
    close: string,
    high: string,
    low: string,
    volume: string,
    value: string
];
/**
 * @interface SpotListMarketKlineParams
 * @description Parameters for listing spot market k-lines.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-kline
 */
interface SpotListMarketKlineParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {PriceType} [price_type] - The type of price to use for the k-line.
     */
    price_type?: TriggerPriceType;
    /**
     * @property {SpotKlinePeriod} period - The k-line period.
     */
    period: SpotKlinePeriod;
    /**
     * @property {number} limit - The number of k-lines to retrieve.
     */
    limit: number;
}
/**
 * @interface SpotListMarketKlineResponse
 * @description The response for the listMarketKline method.
 */
type SpotListMarketKlineResponse = SpotMarketKline[];
/**
 * @interface SpotMarketDeal
 * @description Represents a single market deal.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-deals
 */
interface SpotMarketDeal {
    /**
     * @property {number} deal_id - The ID of the deal.
     */
    deal_id: number;
    /**
     * @property {number} created_at - The time the deal was created.
     */
    created_at: number;
    /**
     * @property {OrderSide} type - The type of the order, "buy" or "sell".
     */
    type: OrderSide;
    /**
     * @property {string} price - The price at which the deal was executed.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the deal.
     */
    amount: string;
}
/**
 * @interface SpotListMarketDealsParams
 * @description Parameters for listing spot market deals.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-deals
 */
interface SpotListMarketDealsParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} [limit] - The number of deals to retrieve.
     */
    limit?: number;
    /**
     * @property {number} [last_id] - The ID of the last deal to start from.
     */
    last_id?: number;
}
/**
 * @interface SpotListMarketDealsResponse
 * @description The response for the listMarketDeals method.
 */
type SpotListMarketDealsResponse = SpotMarketDeal[];
/**
 * @interface SpotMarketIndex
 * @description Represents the index price for a single market.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-index
 */
interface SpotMarketIndex {
    /**
     * @property {string} market - The name of the market, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} index_name - The name of the index.
     */
    index_name: string;
    /**
     * @property {string} index_price - The current index price.
     */
    index_price: string;
}
/**
 * @interface SpotListMarketIndexParams
 * @description Parameters for listing spot market index prices.
 * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-index
 */
interface SpotListMarketIndexParams {
    /**
     * @property {string} [market] - A specific market to query, e.g., "BTCUSDT".
     */
    market?: string;
}
/**
 * @interface SpotListMarketIndexResponse
 * @description The response for the listMarketIndex method.
 */
type SpotListMarketIndexResponse = SpotMarketIndex[];

declare enum SpotOrderOption {
    POST_ONLY = "post_only",
    IOC = "ioc",
    FOK = "fok"
}
/**
 * @interface SpotOrder
 * @description Represents a single spot order.
 */
interface SpotOrder$1 {
    /**
     * @property {number} order_id - The ID of the order.
     */
    order_id: number;
    /**
     * @property {string} market - The market in which the order was placed.
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order, e.g., "limit".
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} value - The total value of the order.
     */
    value: string;
    /**
     * @property {string} filled_amount - The amount that has been filled.
     */
    filled_amount: string;
    /**
     * @property {string} filled_value - The value that has been filled.
     */
    filled_value: string;
    /**
     * @property {string} fee - The transaction fee.
     */
    fee: string;
    /**
     * @property {string} fee_ccy - The currency of the transaction fee.
     */
    fee_ccy: string;
    /**
     * @property {OrderStatus} status - The status of the order.
     */
    status: OrderStatus;
    /**
     * @property {number} created_at - The time the order was created.
     */
    created_at: number;
    /**
     * @property {number} updated_at - The time the order was last updated.
     */
    updated_at: number;
    /**
     * @property {string} client_id - The client-defined ID of the order.
     */
    client_id: string;
}
/**
 * @interface SpotStopOrder
 * @description Represents a single stop order in the spot market.
 */
interface SpotStopOrder {
    /**
     * @property {number} stop_id - The ID of the stop order.
     */
    stop_id: number;
    /**
     * @property {string} market - The market in which the stop order was placed.
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order, e.g., "limit".
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price for the stop order.
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {OrderStatus} status - The status of the stop order.
     */
    status: OrderStatus;
    /**
     * @property {number} created_at - The time the stop order was created.
     */
    created_at: number;
    /**
     * @property {number} updated_at - The time the stop order was last updated.
     */
    updated_at: number;
    /**
     * @property {string} client_id - The client-defined ID of the stop order.
     */
    client_id: string;
}
/**
 * @interface SpotPutOrderParams
 * @description Parameters for placing a spot order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/put-order
 */
interface SpotPutOrderParams {
    /**
     * @property {string} market - The market to place the order in, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order, e.g., "limit".
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} [value] - The total value of the order.
     */
    value?: string;
    /**
     * @property {string} [client_id] - A client-defined ID for the order.
     */
    client_id?: string;
    /**
     * @property {boolean} [hide] - Whether the order should be hidden.
     */
    hide?: boolean;
    /**
     * @property {SpotOrderOption} [order_option] - Additional order options.
     */
    order_option?: SpotOrderOption;
}
/**
 * @interface SpotPutOrderResponse
 * @description The response for the putOrder method.
 */
type SpotPutOrderResponse = SpotOrder$1;
/**
 * @interface SpotPutStopOrderParams
 * @description Parameters for placing a stop order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/put-stop-order
 */
interface SpotPutStopOrderParams {
    /**
     * @property {string} market - The market to place the order in, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order, e.g., "limit".
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price for the stop order.
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {string} [client_id] - A client-defined ID for the order.
     */
    client_id?: string;
    /**
     * @property {TakeProfitType} [take_profit_type] - The type of take-profit.
     */
    take_profit_type?: TakeProfitType;
    /**
     * @property {StopLossType} [stop_loss_type] - The type of stop-loss.
     */
    stop_loss_type?: StopLossType;
    /**
     * @property {string} [take_profit_price] - The take-profit price.
     */
    take_profit_price?: string;
    /**
     * @property {string} [stop_loss_price] - The stop-loss price.
     */
    stop_loss_price?: string;
}
/**
 * @interface SpotPutStopOrderResponse
 * @description The response for the putStopOrder method.
 */
type SpotPutStopOrderResponse = SpotStopOrder;
/**
 * @interface SpotGetOrderStatusParams
 * @description Parameters for getting the status of a spot order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/get-order-status
 */
interface SpotGetOrderStatusParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order.
     */
    order_id: number;
}
/**
 * @interface SpotGetOrderStatusResponse
 * @description The response for the getOrderStatus method.
 */
type SpotGetOrderStatusResponse = SpotOrder$1;
/**
 * @interface SpotGetMultiOrderStatusParams
 * @description Parameters for getting the status of multiple spot orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/get-multi-order-status
 */
interface SpotGetMultiOrderStatusParams {
    /**
     * @property {string} market - The market of the orders, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} order_ids - A comma-separated list of order IDs.
     */
    order_ids: string;
}
/**
 * @interface SpotGetMultiOrderStatusResponse
 * @description The response for the getMultiOrderStatus method.
 */
type SpotGetMultiOrderStatusResponse = SpotOrder$1[];
/**
 * @interface SpotListPendingOrderParams
 * @description Parameters for listing pending spot orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/list-pending-order
 */
interface SpotListPendingOrderParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders, "buy" or "sell".
     */
    side?: OrderSide;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListPendingOrderResponse
 * @description The response for the listPendingOrder method.
 */
interface SpotListPendingOrderResponse {
    data: SpotOrder$1[];
    pagination: Pagination;
}
/**
 * @interface SpotListFinishedOrderParams
 * @description Parameters for listing finished spot orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/list-finished-order
 */
interface SpotListFinishedOrderParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders, "buy" or "sell".
     */
    side?: OrderSide;
    /**
     * @property {number} [start_time] - The start time of the query range.
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range.
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListFinishedOrderResponse
 * @description The response for the listFinishedOrder method.
 */
interface SpotListFinishedOrderResponse {
    data: SpotOrder$1[];
    pagination: Pagination;
}
/**
 * @interface SpotListPendingStopOrderParams
 * @description Parameters for listing pending stop orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/list-pending-stop-order
 */
interface SpotListPendingStopOrderParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders, "buy" or "sell".
     */
    side?: OrderSide;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListPendingStopOrderResponse
 * @description The response for the listPendingStopOrder method.
 */
interface SpotListPendingStopOrderResponse {
    data: SpotStopOrder[];
    pagination: Pagination;
}
/**
 * @interface SpotListFinishedStopOrderParams
 * @description Parameters for listing finished stop orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/list-finished-stop-order
 */
interface SpotListFinishedStopOrderParams {
    /**
     * @property {string} market - The market to query, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} [side] - The side of the orders, "buy" or "sell".
     */
    side?: OrderSide;
    /**
     * @property {number} [start_time] - The start time of the query range.
     */
    start_time?: number;
    /**
     * @property {number} [end_time] - The end time of the query range.
     */
    end_time?: number;
    /**
     * @property {number} [page] - The page number to retrieve.
     */
    page?: number;
    /**
     * @property {number} [limit] - The number of orders to retrieve per page.
     */
    limit?: number;
}
/**
 * @interface SpotListFinishedStopOrderResponse
 * @description The response for the listFinishedStopOrder method.
 */
interface SpotListFinishedStopOrderResponse {
    data: SpotStopOrder[];
    pagination: Pagination;
}
/**
 * @interface SpotEditOrderParams
 * @description Parameters for editing a spot order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/edit-order
 */
interface SpotEditOrderParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to edit.
     */
    order_id: number;
    /**
     * @property {string} price - The new price for the order.
     */
    price: string;
    /**
     * @property {string} amount - The new amount for the order.
     */
    amount: string;
}
/**
 * @interface SpotEditOrderResponse
 * @description The response for the editOrder method.
 */
type SpotEditOrderResponse = SpotOrder$1;
/**
 * @interface SpotEditStopOrderParams
 * @description Parameters for editing a stop order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/edit-stop-order
 */
interface SpotEditStopOrderParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} stop_id - The ID of the stop order to edit.
     */
    stop_id: number;
    /**
     * @property {string} price - The new price for the order.
     */
    price: string;
    /**
     * @property {string} amount - The new amount for the order.
     */
    amount: string;
    /**
     * @property {string} trigger_price - The new trigger price for the stop order.
     */
    trigger_price: string;
}
/**
 * @interface SpotEditStopOrderResponse
 * @description The response for the editStopOrder method.
 */
type SpotEditStopOrderResponse = SpotStopOrder;
/**
 * @interface SpotCancelOrderParams
 * @description Parameters for canceling a spot order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order
 */
interface SpotCancelOrderParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} order_id - The ID of the order to cancel.
     */
    order_id: number;
}
/**
 * @interface SpotCancelOrderByClientIdParams
 * @description Parameters for canceling a spot order by client ID.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order-by-client-id
 */
interface SpotCancelOrderByClientIdParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} client_id - The client-defined ID of the order to cancel.
     */
    client_id: string;
}
/**
 * @interface SpotCancelStopOrderParams
 * @description Parameters for canceling a stop order.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order
 */
interface SpotCancelStopOrderParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {number} stop_id - The ID of the stop order to cancel.
     */
    stop_id: number;
}
/**
 * @interface SpotCancelStopOrderByClientIdParams
 * @description Parameters for canceling a stop order by client ID.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order-by-client-id
 */
interface SpotCancelStopOrderByClientIdParams {
    /**
     * @property {string} market - The market of the order, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} client_id - The client-defined ID of the stop order to cancel.
     */
    client_id: string;
}
/**
 * @interface SpotCancelAllOrderParams
 * @description Parameters for canceling all spot orders in a market.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-all-order
 */
interface SpotCancelAllOrderParams {
    /**
     * @property {string} market - The market in which to cancel all orders, e.g., "BTCUSDT".
     */
    market: string;
}
/**
 * @interface SpotCancelBatchOrderParams
 * @description Parameters for canceling a batch of spot orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-batch-order
 */
interface SpotCancelBatchOrderParams {
    /**
     * @property {string} market - The market of the orders, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} order_ids - A comma-separated list of order IDs to cancel.
     */
    order_ids: string;
}
/**
 * @interface SpotCancelBatchStopOrderParams
 * @description Parameters for canceling a batch of stop orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-batch-stop-order
 */
interface SpotCancelBatchStopOrderParams {
    /**
     * @property {string} market - The market of the orders, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {string} stop_ids - A comma-separated list of stop order IDs to cancel.
     */
    stop_ids: string;
}
/**
 * @interface SpotPutMultiOrderParams
 * @description Parameters for placing multiple spot orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/put-multi-order
 */
interface SpotPutMultiOrderParams {
    /**
     * @property {string} market - The market to place the order in, e.g., "BTCUSDT".
     */
    market: string;
    /**
     * @property {OrderSide} side - The side of the order, "buy" or "sell".
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The type of the order, e.g., "limit".
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} [value] - The total value of the order.
     */
    value?: string;
    /**
     * @property {string} [client_id] - A client-defined ID for the order.
     */
    client_id?: string;
    /**
     * @property {boolean} [hide] - Whether the order should be hidden.
     */
    hide?: boolean;
    /**
     * @property {SpotOrderOption} [order_option] - Additional order options.
     */
    order_option?: SpotOrderOption;
    /**
     * @property {TakeProfitType} [take_profit_type] - The type of take-profit.
     */
    take_profit_type?: TakeProfitType;
    /**
     * @property {StopLossType} [stop_loss_type] - The type of stop-loss.
     */
    stop_loss_type?: StopLossType;
    /**
     * @property {string} [take_profit_price] - The take-profit price.
     */
    take_profit_price?: string;
    /**
     * @property {string} [stop_loss_price] - The stop-loss price.
     */
    stop_loss_price?: string;
}
/**
 * @interface SpotPutMultiStopOrderParams
 * @description Parameters for placing multiple stop orders.
 * @see https://docs.coinex.com/api/v2/spot/order/http/put-multi-stop-order
 */
interface SpotPutMultiStopOrderParams {
    /**
     * @property {string} market - The market name, e.g., BTCUSDT.
     */
    market: string;
    /**
     * @property {OrderSide} side - The order side, 'buy' or 'sell'.
     */
    side: OrderSide;
    /**
     * @property {OrderType} type - The order type, 'limit' or 'market'.
     */
    type: OrderType;
    /**
     * @property {string} price - The price of the order.
     */
    price: string;
    /**
     * @property {string} amount - The amount of the order.
     */
    amount: string;
    /**
     * @property {string} trigger_price - The trigger price for the stop order.
     */
    trigger_price: string;
    /**
     * @property {TriggerPriceType} trigger_price_type - The type of trigger price.
     */
    trigger_price_type: TriggerPriceType;
    /**
     * @property {string} [client_id] - A client-defined ID for the order.
     */
    client_id?: string;
}

/**
 * @interface CoinExOptions
 * @description Options for the CoinEx client.
 */
interface CoinExOptions {
    /**
     * @property {string} apiKey - The API key (access ID).
     */
    apiKey: string;
    /**
     * @property {string} secretKey - The secret key for signing requests.
     */
    secretKey: string;
    /**
     * @property {Options} [kyOptions] - Custom options for the ky instance.
     */
    kyOptions?: Options;
}
/**
 * @interface CoinExResponse
 * @description Represents the unified response structure from the CoinEx API v2.
 */
interface CoinExResponse<T> {
    /**
     * @property {number} code - The response code. Should be 0 for success.
     * @example 0
     */
    code: number;
    /**
     * @property {T} data - The response data.
     */
    data: T;
    /**
     * @property {string} message - The response message.
     * @example "OK"
     */
    message: string;
}
interface RequestOptions extends Options {
    responseType?: 'json' | 'text';
    context?: {
        public?: boolean;
    };
}
/**
 * @interface PingResponse
 * @description Response for the ping method.
 * @see https://docs.coinex.com/api/v2/common/http/ping
 */
interface PingResponse {
    /**
     * @property {string} result - Should be "pong".
     */
    result: 'pong';
}
/**
 * @interface GetSystemTimeResponse
 * @description Response for the getSystemTime method.
 * @see https://docs.coinex.com/api/v2/common/http/time
 */
interface GetSystemTimeResponse {
    /**
     * @property {number} timestamp - Server timestamp, unit: millisecond.
     */
    timestamp: number;
}

declare class Fees {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Account Trading Fee Rate
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAccountTradeFeesResponse>} The account trading fee rate.
     * @see https://docs.coinex.com/api/v2/account/fees/http/get-account-trade-fees
     */
    getAccountTradeFees(params: GetAccountTradeFeesParams, options?: RequestOptions): Promise<GetAccountTradeFeesResponse>;
}

declare class Settings {
    #private;
    constructor(client: CoinExClient);
    /**
     * Query User Futures Market Settings
     *
     * @param options - The options for the request.
     * @returns {Promise<GetFuturesMarketSettingsResponse>} The futures market settings.
     * @see https://docs.coinex.com/api/v2/account/settings/http/accquire-futures-market-settings
     */
    getFuturesMarketSettings(options?: RequestOptions): Promise<GetFuturesMarketSettingsResponse>;
    /**
     * Modify Account Settings
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/settings/http/modify-account-settings
     */
    modifyAccountSettings(params: ModifyAccountSettingsParams, options?: RequestOptions): Promise<{}>;
    /**
     * Change User Futures Market Settings
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/settings/http/modify-futures-market-settings
     */
    modifyFuturesMarketSettings(params: ModifyFuturesMarketSettingsParams, options?: RequestOptions): Promise<{}>;
}

declare class SubAccount {
    #private;
    constructor(client: CoinExClient);
    /**
     * Create a new sub-account.
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     * - You can create up to 20 sub-accounts.
     *
     * @param params - The parameters for creating a sub-account.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/create-sub
     */
    createSubAccount(params: CreateSubAccountParams, options?: RequestOptions): Promise<{}>;
    /**
     * Get the list of sub-accounts.
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for listing sub-accounts.
     * @param options - The options for the request.
     * @returns {Promise<GetSubAccountListResponse>} A list of sub-accounts and pagination info.
     * @see https://docs.coinex.com/api/v2/account/subs/http/list-sub
     */
    getSubAccountList(params?: GetSubAccountListParams, options?: RequestOptions): Promise<GetSubAccountListResponse>;
    /**
     * Disable a sub-account.
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for disabling a sub-account.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/frozen-sub
     */
    disableSubAccount(params: DisableSubAccountParams, options?: RequestOptions): Promise<{}>;
    /**
     * Enable a sub-account.
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for enabling a sub-account.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/cancel-frozen-sub
     */
    enableSubAccount(params: EnableSubAccountParams, options?: RequestOptions): Promise<{}>;
    /**
     * Create a new API key for a sub-account.
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     * - API Administrative Permission is required for the sub-account before it can create API KEY.
     * - Each sub-account can create up to 50 API KEY.
     *
     * @param params - The parameters for creating a sub-account API key.
     * @param options - The options for the request.
     * @returns {Promise<SubAccountApiKey>} The created API key details.
     * @see https://docs.coinex.com/api/v2/account/subs/http/create-sub-api
     */
    createSubAccountApiKey(params: CreateSubAccountApiKeyParams, options?: RequestOptions): Promise<SubAccountApiKey>;
    /**
     * Get Sub-Account API KEY Detail
     * @description
     * **Info:** For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account
     *
     * @param params - The parameters for getting sub-account API key detail.
     * @param options - The options for the request.
     * @returns {Promise<SubAccountApiKey>} The API key details.
     * @see https://docs.coinex.com/api/v2/account/subs/http/get-sub-api
     */
    getSubAccountApiKeyDetail(params: GetSubAccountApiKeyDetailParams, options?: RequestOptions): Promise<SubAccountApiKey>;
    /**
     * Get Sub-Account Info
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * @param options - The options for the request.
     * @returns {Promise<GetSubAccountInfoResponse>} The sub-account info.
     * @see https://docs.coinex.com/api/v2/account/subs/http/get-sub-info
     */
    getSubAccountInfo(options?: RequestOptions): Promise<GetSubAccountInfoResponse>;
    /**
     * Asset Transfer between Sub-Accounts
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/sub-transfer
     */
    subAccountTransfer(params: SubAccountTransferParams, options?: RequestOptions): Promise<{}>;
    /**
     * Get Transfer Records between Sub-Accounts
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetSubAccountTransferHistoryResponse>} The transfer history.
     * @see https://docs.coinex.com/api/v2/account/subs/http/list-sub-transfer-history
     */
    getSubAccountTransferHistory(params: GetSubAccountTransferHistoryParams, options?: RequestOptions): Promise<GetSubAccountTransferHistoryResponse>;
    /**
     * Get Sub-Account API KEY List
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetSubAccountApiKeyListResponse>} The API key list.
     * @see https://docs.coinex.com/api/v2/account/subs/http/list-sub-api
     */
    getSubAccountApiKeyList(params: GetSubAccountApiKeyListParams, options?: RequestOptions): Promise<GetSubAccountApiKeyListResponse>;
    /**
     * Get Spot Balance in Sub-Account
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetSubAccountSpotBalanceResponse>} The spot balance.
     * @see https://docs.coinex.com/api/v2/account/subs/http/get-sub-spot-balance
     */
    getSubAccountSpotBalance(params: GetSubAccountSpotBalanceParams, options?: RequestOptions): Promise<GetSubAccountSpotBalanceResponse>;
    /**
     * Edit Sub-Account API KEY
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/edit-sub-api
     */
    editSubAccountApiKey(params: EditSubAccountApiKeyParams, options?: RequestOptions): Promise<{}>;
    /**
     * Delete Sub-Account API KEY
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - This endpoint can only be accessed using the ACCESS ID of the main account.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/account/subs/http/delete-sub-api
     */
    deleteSubAccountApiKey(params: DeleteSubAccountApiKeyParams, options?: RequestOptions): Promise<{}>;
}

declare class Account {
    #private;
    readonly subaccount: SubAccount;
    readonly fees: Fees;
    readonly settings: Settings;
    constructor(client: CoinExClient);
    /**
     * Get User Account Info
     * @param options - The options for the request.
     * @returns {Promise<GetAccountInfoResponse>} The user account info.
     * @see https://docs.coinex.com/api/v2/account/info/http/get-account-info
     */
    getAccountInfo(options?: RequestOptions): Promise<GetAccountInfoResponse>;
}

declare class Amm {
    #private;
    constructor(client: CoinExClient);
    /**
     * Add AMM Account Liquidity
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/amm/http/add-liquidtiy
     */
    addAMMLiquidity(params: AddAMMLiquidityParams, options?: RequestOptions): Promise<{}>;
    /**
     * Get AMM Income History
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAMMIncomeHistoryResponse>} The AMM income history.
     * @see https://docs.coinex.com/api/v2/assets/amm/http/list-income-history
     */
    getAMMIncomeHistory(params: GetAMMIncomeHistoryParams, options?: RequestOptions): Promise<GetAMMIncomeHistoryResponse>;
    /**
     * Get AMM Liquidity Pool
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAMMLiquidityPoolResponse>} The AMM liquidity pool.
     * @see https://docs.coinex.com/api/v2/assets/amm/http/list-liquidity-pool
     */
    getAMMLiquidityPool(params: GetAMMLiquidityPoolParams, options?: RequestOptions): Promise<GetAMMLiquidityPoolResponse>;
    /**
     * Reduce AMM Account Liquidity
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/amm/http/remove-liquidtiy
     */
    removeAMMLiquidity(params: RemoveAMMLiquidityParams, options?: RequestOptions): Promise<{}>;
}

declare class Balance {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get AMM Account Liquidity
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAMMLiquidityResponse>} The AMM account liquidity.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-amm-liquidity
     */
    getAMMLiquidity(params?: GetAMMLiquidityParams, options?: RequestOptions): Promise<GetAMMLiquidityResponse>;
    /**
     * Get Balance in Credit Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetCreditBalanceResponse>} The credit account balance.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-balance
     */
    getCreditBalance(params?: GetCreditBalanceParams, options?: RequestOptions): Promise<GetCreditBalanceResponse>;
    /**
     * Get Info in Credit Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetCreditInfoResponse>} The credit account info.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-credit-info
     */
    getCreditInfo(params?: GetCreditInfoParams, options?: RequestOptions): Promise<GetCreditInfoResponse>;
    /**
     * Get Balance in Financial Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetFinancialBalanceResponse>} The financial account balance.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-financial-balance
     */
    getFinancialBalance(params?: GetFinancialBalanceParams, options?: RequestOptions): Promise<GetFinancialBalanceResponse>;
    /**
     * Get Balance in Futures Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetFuturesBalanceResponse>} The futures account balance.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-futures-balance
     */
    getFuturesBalance(params?: GetFuturesBalanceParams, options?: RequestOptions): Promise<GetFuturesBalanceResponse>;
    /**
     * Get Balance in Margin Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetMarginBalanceResponse>} The margin account balance.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-marigin-balance
     */
    getMarginBalance(params: GetMarginBalanceParams, options?: RequestOptions): Promise<GetMarginBalanceResponse>;
    /**
     * Get Balance in Spot Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetSpotBalanceResponse>} The spot account balance.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-balance
     */
    getSpotBalance(params?: GetSpotBalanceParams, options?: RequestOptions): Promise<GetSpotBalanceResponse>;
    /**
     * Get Spot Transaction History
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetSpotTransactionHistoryResponse>} The spot transaction history.
     * @see https://docs.coinex.com/api/v2/assets/balance/http/get-spot-transcation-history
     */
    getSpotTransactionHistory(params?: GetSpotTransactionHistoryParams, options?: RequestOptions): Promise<GetSpotTransactionHistoryResponse>;
}

declare class BorrowRepay {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Borrowing Record in Margin Account
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetMarginBorrowHistoryResponse>} The margin borrow history.
     * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-borrow-history
     */
    getMarginBorrowHistory(params: GetMarginBorrowHistoryParams, options?: RequestOptions): Promise<GetMarginBorrowHistoryResponse>;
    /**
     * Get Borrowing Limit
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetMarginInterestLimitResponse>} The margin interest limit.
     * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-interest-limit
     */
    getMarginInterestLimit(params: GetMarginInterestLimitParams, options?: RequestOptions): Promise<GetMarginInterestLimitResponse>;
    /**
     * Margin Loan
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/margin-borrow
     */
    marginBorrow(params: MarginBorrowParams, options?: RequestOptions): Promise<{}>;
    /**
     * Margin Repayment
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/loan-flat/http/margin-repay
     */
    marginRepay(params: MarginRepayParams, options?: RequestOptions): Promise<{}>;
}

declare class DepositWithdrawal {
    #private;
    constructor(client: CoinExClient);
    /**
     * Cancel Withdrawal Request
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/cancel-withdrawal
     */
    cancelWithdrawal(params: CancelWithdrawalParams, options?: RequestOptions): Promise<{}>;
    /**
     * Get Deposit Address
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetDepositAddressResponse>} The deposit address.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-address
     */
    getDepositAddress(params: GetDepositAddressParams, options?: RequestOptions): Promise<GetDepositAddressResponse>;
    /**
     * Get Deposit and Withdrawal Configuration
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetDepositWithdrawalConfigResponse>} The deposit and withdrawal configuration.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/get-deposit-withdrawal-config
     */
    getDepositWithdrawalConfig(params: GetDepositWithdrawalConfigParams, options?: RequestOptions): Promise<GetDepositWithdrawalConfigResponse>;
    /**
     * Get All Deposit and Withdrawal Configuration
     *
     * @param options - The options for the request.
     * @returns {Promise<GetDepositWithdrawalConfigResponse>} The deposit and withdrawal configuration.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-all-deposit-withdrawal-config
     */
    getAllDepositWithdrawalConfig(options?: RequestOptions): Promise<GetDepositWithdrawalConfigResponse>;
    /**
     * Get Coin Info
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAssetInfoResponse>} The asset information.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-assets-info
     */
    getAssetInfo(params: GetAssetInfoParams, options?: RequestOptions): Promise<GetAssetInfoResponse>;
    /**
     * Get Deposit Record
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetDepositHistoryResponse>} The deposit history.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-deposit-history
     */
    getDepositHistory(params: GetDepositHistoryParams, options?: RequestOptions): Promise<GetDepositHistoryResponse>;
    /**
     * Get Withdrawal Record
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetWithdrawalHistoryResponse>} The withdrawal history.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-withdrawal-history
     */
    getWithdrawalHistory(params: GetWithdrawalHistoryParams, options?: RequestOptions): Promise<GetWithdrawalHistoryResponse>;
    /**
     * Update Deposit Address
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/update-deposit-address
     */
    updateDepositAddress(params: UpdateDepositAddressParams, options?: RequestOptions): Promise<{}>;
    /**
     * Submit Withdrawal Request
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/withdrawal
     */
    withdrawal(params: WithdrawalParams, options?: RequestOptions): Promise<{}>;
}

declare class Transfer {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Asset Transfer Record
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetAssetTransferHistoryResponse>} The asset transfer history.
     * @see https://docs.coinex.com/api/v2/assets/transfer/http/list-transfer-history
     */
    getAssetTransferHistory(params: GetAssetTransferHistoryParams, options?: RequestOptions): Promise<GetAssetTransferHistoryResponse>;
    /**
     * Transfer
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/assets/transfer/http/transfer
     */
    transfer(params: TransferParams, options?: RequestOptions): Promise<{}>;
}

declare class Assets {
    readonly amm: Amm;
    readonly balance: Balance;
    readonly borrowRepay: BorrowRepay;
    readonly depositWithdrawal: DepositWithdrawal;
    readonly transfer: Transfer;
    constructor(client: CoinExClient);
}

declare class Maintain {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Maintenance Information
     * @description
     * The protection period refers to a continuous period following the system maintenance (It's an optional configuration, and may or may not be set). During the protection period, you can cancel orders, place orders (limited to Maker Only Limit Orders), and adjust (add or reduce) margins.
     * @param options - The options for the request.
     * @returns {Promise<GetMaintenanceInfoResponse>} Maintenance information.
     * @see https://docs.coinex.com/api/v2/common/http/maintain
     */
    getMaintenanceInfo(options?: RequestOptions): Promise<GetMaintenanceInfoResponse>;
}

declare class Deal$1 {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get User Transaction
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListUserDealsResponse>} The user deals.
     * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-deals
     */
    listUserDeals(params: SpotListUserDealsParams, options?: RequestOptions): Promise<SpotListUserDealsResponse>;
    /**
     * Get User Order Transaction
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListUserOrderDealsResponse>} The user order deals.
     * @see https://docs.coinex.com/api/v2/spot/deal/http/list-user-order-deals
     */
    listUserOrderDeals(params: SpotListUserOrderDealsParams, options?: RequestOptions): Promise<SpotListUserOrderDealsResponse>;
}

declare class Market$1 {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Market Status
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketResponse>} The market status.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market
     */
    listMarket(params?: SpotListMarketParams, options?: RequestOptions): Promise<SpotListMarketResponse>;
    /**
     * Get Market Information
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketTickerResponse>} The market ticker information.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-ticker
     */
    listMarketTicker(params?: SpotListMarketTickerParams, options?: RequestOptions): Promise<SpotListMarketTickerResponse>;
    /**
     * Get Market Depth
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketDepthResponse>} The market depth information.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-depth
     */
    listMarketDepth(params: SpotListMarketDepthParams, options?: RequestOptions): Promise<SpotListMarketDepthResponse>;
    /**
     * Get Market Candlestick
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketKlineResponse>} The market candlestick data.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-kline
     */
    listMarketKline(params: SpotListMarketKlineParams, options?: RequestOptions): Promise<SpotListMarketKlineResponse>;
    /**
     * Get Market Transactions
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketDealsResponse>} The market transactions.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-deals
     */
    listMarketDeals(params: SpotListMarketDealsParams, options?: RequestOptions): Promise<SpotListMarketDealsResponse>;
    /**
     * Get Market Index
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListMarketIndexResponse>} The market index information.
     * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-index
     */
    listMarketIndex(params?: SpotListMarketIndexParams, options?: RequestOptions): Promise<SpotListMarketIndexResponse>;
}

declare class SpotOrder {
    #private;
    constructor(client: CoinExClient);
    /**
     * Place Order
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/put-order
     */
    putOrder(params: SpotPutOrderParams, options?: RequestOptions): Promise<SpotPutOrderResponse>;
    /**
     * Place Stop Order
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/put-stop-order
     */
    putStopOrder(params: SpotPutStopOrderParams, options?: RequestOptions): Promise<SpotPutStopOrderResponse>;
    /**
     * Query Order Status
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/get-order-status
     */
    getOrderStatus(params: SpotGetOrderStatusParams, options?: RequestOptions): Promise<SpotGetOrderStatusResponse>;
    /**
     * Batch Query Order Status
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotGetMultiOrderStatusResponse>} The order status.
     * @see https://docs.coinex.com/api/v2/spot/order/http/get-multi-order-status
     */
    getMultiOrderStatus(params: SpotGetMultiOrderStatusParams, options?: RequestOptions): Promise<SpotGetMultiOrderStatusResponse>;
    /**
     * Get Unfilled Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListPendingOrderResponse>} The unfilled orders.
     * @see https://docs.coinex.com/api/v2/spot/order/http/list-pending-order
     */
    listPendingOrder(params: SpotListPendingOrderParams, options?: RequestOptions): Promise<SpotListPendingOrderResponse>;
    /**
     * Get Filled Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListFinishedOrderResponse>} The filled orders.
     * @see https://docs.coinex.com/api/v2/spot/order/http/list-finished-order
     */
    listFinishedOrder(params: SpotListFinishedOrderParams, options?: RequestOptions): Promise<SpotListFinishedOrderResponse>;
    /**
     * Get Unfilled Stop Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListPendingStopOrderResponse>} The unfilled stop orders.
     * @see https://docs.coinex.com/api/v2/spot/order/http/list-pending-stop-order
     */
    listPendingStopOrder(params: SpotListPendingStopOrderParams, options?: RequestOptions): Promise<SpotListPendingStopOrderResponse>;
    /**
     * Get Filled Stop Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotListFinishedStopOrderResponse>} The filled stop orders.
     * @see https://docs.coinex.com/api/v2/spot/order/http/list-finished-stop-order
     */
    listFinishedStopOrder(params: SpotListFinishedStopOrderParams, options?: RequestOptions): Promise<SpotListFinishedStopOrderResponse>;
    /**
     * Modify Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotEditOrderResponse>} The modified order.
     * @see https://docs.coinex.com/api/v2/spot/order/http/edit-order
     */
    editOrder(params: SpotEditOrderParams, options?: RequestOptions): Promise<SpotEditOrderResponse>;
    /**
     * Modify Stop Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<SpotEditStopOrderResponse>} The modified stop order.
     * @see https://docs.coinex.com/api/v2/spot/order/http/edit-stop-order
     */
    editStopOrder(params: SpotEditStopOrderParams, options?: RequestOptions): Promise<SpotEditStopOrderResponse>;
    /**
     * Cancel Order
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order
     */
    cancelOrder(params: SpotCancelOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Order by client_id
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order-by-client-id
     */
    cancelOrderByClientId(params: SpotCancelOrderByClientIdParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Stop Order
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order
     */
    cancelStopOrder(params: SpotCancelStopOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Stop Order by client_id
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order-by-client-id
     */
    cancelStopOrderByClientId(params: SpotCancelStopOrderByClientIdParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel All Orders
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-all-order
     */
    cancelAllOrder(params: SpotCancelAllOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Cancel Orders
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-batch-order
     */
    cancelBatchOrder(params: SpotCancelBatchOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Cancel Stop Orders
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/cancel-batch-stop-order
     */
    cancelBatchStopOrder(params: SpotCancelBatchStopOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Place Orders
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/spot/order/http/put-multi-order
     */
    putMultiOrder(params: SpotPutMultiOrderParams[], options?: RequestOptions): Promise<{}>;
    /**
     * Batch Place Stop Orders
     *
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/spot/order/http/put-multi-stop-order
     */
    putMultiStopOrder(params: SpotPutMultiStopOrderParams[], options?: RequestOptions): Promise<{}>;
}

declare class Spot {
    readonly market: Market$1;
    readonly deal: Deal$1;
    readonly order: SpotOrder;
    constructor(client: CoinExClient);
}

declare class Deal {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get User Transaction
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListUserDealsResponse>} The user deals.
     * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-deals
     */
    listUserDeals(params: ListUserDealsParams, options?: RequestOptions): Promise<ListUserDealsResponse>;
    /**
     * Get User Order Transaction
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListUserOrderDealsResponse>} The user order deals.
     * @see https://docs.coinex.com/api/v2/futures/deal/http/list-user-order-deals
     */
    listUserOrderDeals(params: ListUserOrderDealsParams, options?: RequestOptions): Promise<ListUserOrderDealsResponse>;
}

declare class Market {
    #private;
    constructor(client: CoinExClient);
    /**
     * Get Market Basis Rate History
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-basis-history
     */
    listMarketBasisHistory(params: ListMarketBasisHistoryParams, options?: RequestOptions): Promise<ListMarketBasisHistoryResponse>;
    /**
     * Get Market Transactions
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-deals
     */
    listMarketDeals(params: ListMarketDealsParams, options?: RequestOptions): Promise<ListMarketDealsResponse>;
    /**
     * Get Market Depth
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-depth
     */
    listMarketDepth(params: ListMarketDepthParams, options?: RequestOptions): Promise<ListMarketDepthResponse>;
    /**
     * Get Market Funding Rate History
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate-history
     */
    listMarketFundingRateHistory(params: ListMarketFundingRateHistoryParams, options?: RequestOptions): Promise<ListMarketFundingRateHistoryResponse>;
    /**
     * Get Market Funding Rate
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-funding-rate
     */
    listMarketFundingRate(params: ListMarketFundingRateParams, options?: RequestOptions): Promise<ListMarketFundingRateResponse>;
    /**
     * Get Market Index
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-index
     */
    listMarketIndex(params: ListMarketIndexParams, options?: RequestOptions): Promise<ListMarketIndexResponse>;
    /**
     * Get Market Candlestick
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-kline
     */
    listMarketKline(params: ListMarketKlineParams, options?: RequestOptions): Promise<ListMarketKlineResponse>;
    /**
     * Get Market Liquidation History
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-liquidation-history
     */
    listMarketLiquidationHistory(params: ListMarketLiquidationHistoryParams, options?: RequestOptions): Promise<ListMarketLiquidationHistoryResponse>;
    /**
     * Get Market Position Level
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-position-level
     */
    listMarketPositionLevel(params: ListMarketPositionLevelParams, options?: RequestOptions): Promise<ListMarketPositionLevelResponse>;
    /**
     * Get Market Premium Index Price History
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-premium-history
     */
    listMarketPremiumHistory(params: ListMarketPremiumHistoryParams, options?: RequestOptions): Promise<ListMarketPremiumHistoryResponse>;
    /**
     * Get Market Information
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-ticker
     */
    listMarketTicker(params: ListMarketTickerParams, options?: RequestOptions): Promise<ListMarketTickerResponse>;
    /**
     * Get Market Status
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListMarketResponse>} The market status.
     * @see https://docs.coinex.com/api/v2/futures/market/http/list-market
     */
    listMarket(params: ListMarketParams, options?: RequestOptions): Promise<ListMarketResponse>;
}

declare class FuturesOrder {
    #private;
    constructor(client: CoinExClient);
    /**
     * Place Order
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/put-order
     */
    putOrder(params: PutOrderParams, options?: RequestOptions): Promise<PutOrderResponse>;
    /**
     * Place Stop Order
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/put-stop-order
     */
    putStopOrder(params: PutStopOrderParams, options?: RequestOptions): Promise<PutStopOrderResponse>;
    /**
     * Query Order Status
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/get-order-status
     */
    getOrderStatus(params: GetOrderStatusParams, options?: RequestOptions): Promise<GetOrderStatusResponse>;
    /**
     * Batch Query Order Status
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     *
     * **Reminder:**
     * - The maximum limit is 100 order_id.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<GetMultiOrderStatusResponse>} The order status.
     * @see https://docs.coinex.com/api/v2/futures/order/http/get-multi-order-status
     */
    getMultiOrderStatus(params: GetMultiOrderStatusParams, options?: RequestOptions): Promise<GetMultiOrderStatusResponse>;
    /**
     * Get Unfilled Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListPendingOrderResponse>} The unfilled orders.
     * @see https://docs.coinex.com/api/v2/futures/order/http/list-pending-order
     */
    listPendingOrder(params: ListPendingOrderParams, options?: RequestOptions): Promise<ListPendingOrderResponse>;
    /**
     * Get Filled Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListFinishedOrderResponse>} The filled orders.
     * @see https://docs.coinex.com/api/v2/futures/order/http/list-finished-order
     */
    listFinishedOrder(params: ListFinishedOrderParams, options?: RequestOptions): Promise<ListFinishedOrderResponse>;
    /**
     * Get Unfilled Stop Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListPendingStopOrderResponse>} The unfilled stop orders.
     * @see https://docs.coinex.com/api/v2/futures/order/http/list-pending-stop-order
     */
    listPendingStopOrder(params: ListPendingStopOrderParams, options?: RequestOptions): Promise<ListPendingStopOrderResponse>;
    /**
     * Get Filled Stop Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The maximum limit is 100.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<ListFinishedStopOrderResponse>} The filled stop orders.
     * @see https://docs.coinex.com/api/v2/futures/order/http/list-finished-stop-order
     */
    listFinishedStopOrder(params: ListFinishedStopOrderParams, options?: RequestOptions): Promise<ListFinishedStopOrderResponse>;
    /**
     * Modify Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The order can only be modified when it is in the pending state.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<EditOrderResponse>} The modified order.
     * @see https://docs.coinex.com/api/v2/futures/order/http/edit-order
     */
    editOrder(params: EditOrderParams, options?: RequestOptions): Promise<EditOrderResponse>;
    /**
     * Modify Stop Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The stop order can only be modified when it is in the pending state.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<EditStopOrderResponse>} The modified stop order.
     * @see https://docs.coinex.com/api/v2/futures/order/http/edit-stop-order
     */
    editStopOrder(params: EditStopOrderParams, options?: RequestOptions): Promise<EditStopOrderResponse>;
    /**
     * Cancel Order
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The order can only be canceled when it is in the pending state.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order
     */
    cancelOrder(params: CancelOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Order by client_id
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order-by-client-id
     */
    cancelOrderByClientId(params: CancelOrderByClientIdParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Stop Order
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order
     */
    cancelStopOrder(params: CancelStopOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel Stop Order by client_id
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order-by-client-id
     */
    cancelStopOrderByClientId(params: CancelStopOrderByClientIdParams, options?: RequestOptions): Promise<{}>;
    /**
     * Cancel All Orders
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-all-order
     */
    cancelAllOrder(params: CancelAllOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Cancel Orders
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-batch-order
     */
    cancelBatchOrder(params: CancelBatchOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Cancel Stop Orders
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/cancel-batch-stop-order
     */
    cancelBatchStopOrder(params: CancelBatchStopOrderParams, options?: RequestOptions): Promise<{}>;
    /**
     * Batch Place Orders
     * @description
     * **Info:**
     * - This endpoint requires signature. For specific signature rules, please refer to [Authentication](https://docs.coinex.com/api/v2/authorization).
     * - This endpoint will trigger rate limit. For specific rules, please refer to [Rate Limit](https://docs.coinex.com/api/v2/rate-limit).
     *
     * **Reminder:**
     * - The request endpoint of this batch allows up to 100 sub-requests at a time.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/futures/order/http/put-multi-order
     */
    putMultiOrder(params: PutMultiOrderParams[], options?: RequestOptions): Promise<{}>;
    /**
     * Batch Place Stop Orders
     * @description
     * **Info:**
     * - This endpoint requires signature.
     * - This endpoint will trigger rate limit.
     * @param params
     * @param options
     * @see https://docs.coinex.com/api/v2/futures/order/http/put-multi-stop-order
     */
    putMultiStopOrder(params: PutMultiStopOrderParams[], options?: RequestOptions): Promise<{}>;
}

declare class Position {
    #private;
    constructor(client: CoinExClient);
    /**
     * Adjust Position Leverage
     * @see https://docs.coinex.com/api/v2/futures/position/http/adjust-position-leverage
     */
    adjustPositionLeverage(params: AdjustPositionLeverageParams, options?: RequestOptions): Promise<{}>;
    /**
     * Adjust Position Margin
     * @see https://docs.coinex.com/api/v2/futures/position/http/adjust-position-margin
     */
    adjustPositionMargin(params: AdjustPositionMarginParams, options?: RequestOptions): Promise<{}>;
    /**
     * Close Position
     * @see https://docs.coinex.com/api/v2/futures/position/http/close-position
     */
    closePosition(params: ClosePositionParams, options?: RequestOptions): Promise<{}>;
    /**
     * Get Historical Position
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-finished-position
     */
    listFinishedPosition(params: ListFinishedPositionParams, options?: RequestOptions): Promise<ListFinishedPositionResponse>;
    /**
     * Get Current Position
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-pending-position
     */
    listPendingPosition(params: ListPendingPositionParams, options?: RequestOptions): Promise<ListPendingPositionResponse>;
    /**
     * Get Position Auto Deleverage History
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-positiing-adl-history
     */
    listPositionAdlHistory(params: ListPositionAdlHistoryParams, options?: RequestOptions): Promise<ListPositionAdlHistoryResponse>;
    /**
     * Get Position Funding Rate History
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-funding-history
     */
    listPositionFundingHistory(params: ListPositionFundingHistoryParams, options?: RequestOptions): Promise<ListPositionFundingHistoryResponse>;
    /**
     * Get Position Margin Change History
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-margin-history
     */
    listPositionMarginHistory(params: ListPositionMarginHistoryParams, options?: RequestOptions): Promise<ListPositionMarginHistoryResponse>;
    /**
     * Get Position Auto Settlement History
     * @see https://docs.coinex.com/api/v2/futures/position/http/list-position-settle-history
     */
    listPositionSettleHistory(params: ListPositionSettleHistoryParams, options?: RequestOptions): Promise<ListPositionSettleHistoryResponse>;
    /**
     * Set Position Stop Loss
     * @see https://docs.coinex.com/api/v2/futures/position/http/set-position-stop-loss
     */
    setPositionStopLoss(params: SetPositionStopLossParams, options?: RequestOptions): Promise<{}>;
    /**
     * Set Position Take Profit
     * @description
     * **Info:**
     * - This endpoint will trigger rate limit.
     *
     * @param params - The parameters for the request.
     * @param options - The options for the request.
     * @returns {Promise<{}>} An empty object on success.
     * @see https://docs.coinex.com/api/v2/futures/position/http/set-position-take-profit
     */
    setPositionTakeProfit(params: SetPositionTakeProfitParams, options?: RequestOptions): Promise<{}>;
}

declare class Futures {
    readonly market: Market;
    readonly deal: Deal;
    readonly order: FuturesOrder;
    readonly position: Position;
    constructor(client: CoinExClient);
}

declare class CoinExClient {
    #private;
    readonly account: Account;
    readonly assets: Assets;
    readonly maintain: Maintain;
    readonly spot: Spot;
    readonly futures: Futures;
    constructor(options: CoinExOptions);
    request<T>(path: string, options?: RequestOptions): Promise<T>;
    /**
     * Ping the server.
     * @param options - The options for the request.
     * @returns {Promise<PingResponse>} A promise that resolves with the ping response.
     * @see https://docs.coinex.com/api/v2/common/http/ping
     */
    ping(options?: RequestOptions): Promise<PingResponse>;
    /**
     * Get the system time.
     * @param options - The options for the request.
     * @returns {Promise<GetSystemTimeResponse>} A promise that resolves with the system time.
     * @see https://docs.coinex.com/api/v2/common/http/time
     */
    getSystemTime(options?: RequestOptions): Promise<GetSystemTimeResponse>;
}

/**
 * @class CoinExAPIError
 * @extends Error
 * @description Custom error class for CoinEx API errors.
 */
declare class CoinExAPIError extends Error {
    /**
     * @property {number} code - The error code from the CoinEx API.
     */
    readonly code: number;
    /**
     * @constructor
     * @param {number} code - The error code.
     * @param {string} message - The error message.
     */
    constructor(code: number, message: string);
}

/**
 * Removes properties with `undefined` values from an object.
 * @param obj - The object to filter.
 * @param deep - Whether to filter deeply.
 * @returns {T} A new object without `undefined` properties.
 * @example
 * const obj = { a: 1, b: undefined, c: { d: 2, e: undefined } };
 * const newObj = noUndefined(obj); // { a: 1, c: { d: 2, e: undefined } }
 * const deepNewObj = noUndefined(obj, true); // { a: 1, c: { d: 2 } }
 */
declare function noUndefined<T extends object>(obj: T, deep?: boolean): T;

export { type AMMIncomeHistory, type AMMLiquidityInfo, type AMMLiquidityPool, type AddAMMLiquidityParams, type AdjustPositionLeverageParams, type AdjustPositionMarginParams, AmmType, type AssetInfo, type AssetTransferHistory, type CancelAllOrderParams, type CancelBatchOrderParams, type CancelBatchStopOrderParams, type CancelOrderByClientIdParams, type CancelOrderParams, type CancelStopOrderByClientIdParams, type CancelStopOrderParams, type CancelWithdrawalParams, type ClosePositionParams, CoinExAPIError, CoinExClient, type CoinExOptions, type CoinExResponse, ContractType, type CreateSubAccountApiKeyParams, type CreateSubAccountParams, type CreditBalance, type CreditInfo, type DeleteSubAccountApiKeyParams, type DepositAddress, type DepositHistory, DepositStatus, type DepositWithdrawalConfig, type DisableSubAccountParams, type EditOrderParams, type EditOrderResponse, type EditStopOrderParams, type EditStopOrderResponse, type EditSubAccountApiKeyParams, type EnableSubAccountParams, type Fee, type FinancialBalance, type FuturesBalance, type FuturesMarketStatus, type GetAMMIncomeHistoryParams, type GetAMMIncomeHistoryResponse, type GetAMMLiquidityParams, type GetAMMLiquidityPoolParams, type GetAMMLiquidityPoolResponse, type GetAMMLiquidityResponse, type GetAccountInfoResponse, type GetAccountTradeFeesParams, type GetAccountTradeFeesResponse, type GetAllDepositWithdrawalConfigResponse, type GetAssetInfoParams, type GetAssetInfoResponse, type GetAssetTransferHistoryParams, type GetAssetTransferHistoryResponse, type GetCreditBalanceParams, type GetCreditBalanceResponse, type GetCreditInfoParams, type GetCreditInfoResponse, type GetDepositAddressParams, type GetDepositAddressResponse, type GetDepositHistoryParams, type GetDepositHistoryResponse, type GetDepositWithdrawalConfigParams, type GetDepositWithdrawalConfigResponse, type GetFinancialBalanceParams, type GetFinancialBalanceResponse, type GetFuturesBalanceParams, type GetFuturesBalanceResponse, type GetFuturesMarketSettingsResponse, type GetMaintenanceInfoResponse, type GetMarginBalanceParams, type GetMarginBalanceResponse, type GetMarginBorrowHistoryParams, type GetMarginBorrowHistoryResponse, type GetMarginInterestLimitParams, type GetMarginInterestLimitResponse, type GetMultiOrderStatusParams, type GetMultiOrderStatusResponse, type GetOrderStatusParams, type GetOrderStatusResponse, type GetSpotBalanceParams, type GetSpotBalanceResponse, type GetSpotTransactionHistoryParams, type GetSpotTransactionHistoryResponse, type GetSubAccountApiKeyDetailParams, type GetSubAccountApiKeyListParams, type GetSubAccountApiKeyListResponse, type GetSubAccountInfoResponse, type GetSubAccountListParams, type GetSubAccountListResponse, type GetSubAccountSpotBalanceParams, type GetSubAccountSpotBalanceResponse, type GetSubAccountTransferHistoryParams, type GetSubAccountTransferHistoryResponse, type GetSystemTimeResponse, type GetWithdrawalHistoryParams, type GetWithdrawalHistoryResponse, type KlinePeriod, type ListFinishedOrderParams, type ListFinishedOrderResponse, type ListFinishedPositionParams, type ListFinishedPositionResponse, type ListFinishedStopOrderParams, type ListFinishedStopOrderResponse, type ListMarketBasisHistoryParams, type ListMarketBasisHistoryResponse, type ListMarketDealsParams, type ListMarketDealsResponse, type ListMarketDepthParams, type ListMarketDepthResponse, type ListMarketFundingRateHistoryParams, type ListMarketFundingRateHistoryResponse, type ListMarketFundingRateParams, type ListMarketFundingRateResponse, type ListMarketIndexParams, type ListMarketIndexResponse, type ListMarketKlineParams, type ListMarketKlineResponse, type ListMarketLiquidationHistoryParams, type ListMarketLiquidationHistoryResponse, type ListMarketParams, type ListMarketPositionLevelParams, type ListMarketPositionLevelResponse, type ListMarketPremiumHistoryParams, type ListMarketPremiumHistoryResponse, type ListMarketResponse, type ListMarketTickerParams, type ListMarketTickerResponse, type ListPendingOrderParams, type ListPendingOrderResponse, type ListPendingPositionParams, type ListPendingPositionResponse, type ListPendingStopOrderParams, type ListPendingStopOrderResponse, type ListPositionAdlHistoryParams, type ListPositionAdlHistoryResponse, type ListPositionFundingHistoryParams, type ListPositionFundingHistoryResponse, type ListPositionMarginHistoryParams, type ListPositionMarginHistoryResponse, type ListPositionSettleHistoryParams, type ListPositionSettleHistoryResponse, type ListUserDealsParams, type ListUserDealsResponse, type ListUserOrderDealsParams, type ListUserOrderDealsResponse, LoanStatus, Locale, type MaintenanceInfo, type MarginBalance, type MarginBalanceDetail, type MarginBorrowHistory, type MarginBorrowParams, type MarginInterestLimit, MarginMode, type MarginRepayParams, type MarketBasisHistory, type MarketDeal, type MarketDepth, type MarketFundingRate, type MarketFundingRateHistory, type MarketIndex, type MarketKline, type MarketLiquidationHistory, type MarketPositionLevel, type MarketPremiumHistory, MarketStatus, type MarketTicker, MarketType, type ModifyAccountSettingsParams, type ModifyFuturesMarketSettingsParams, type Order, OrderEvent, OrderOption, OrderSide, OrderStatus, OrderType, type Pagination, Permission, type PingResponse, type Position$1 as Position, type PositionAdlHistory, PositionEvent, PositionFinishedType, type PositionFundingHistory, type PositionMarginHistory, type PositionSettleHistory, PositionSide, type PutMultiOrderParams, type PutMultiStopOrderParams, type PutOrderParams, type PutOrderResponse, type PutStopOrderParams, type PutStopOrderResponse, type RemoveAMMLiquidityParams, type RequestOptions, type SetPositionStopLossParams, type SetPositionTakeProfitParams, type SpotBalance, type SpotCancelAllOrderParams, type SpotCancelBatchOrderParams, type SpotCancelBatchStopOrderParams, type SpotCancelOrderByClientIdParams, type SpotCancelOrderParams, type SpotCancelStopOrderByClientIdParams, type SpotCancelStopOrderParams, type SpotEditOrderParams, type SpotEditOrderResponse, type SpotEditStopOrderParams, type SpotEditStopOrderResponse, type SpotGetMultiOrderStatusParams, type SpotGetMultiOrderStatusResponse, type SpotGetOrderStatusParams, type SpotGetOrderStatusResponse, type SpotKlinePeriod, type SpotListFinishedOrderParams, type SpotListFinishedOrderResponse, type SpotListFinishedStopOrderParams, type SpotListFinishedStopOrderResponse, type SpotListMarketDealsParams, type SpotListMarketDealsResponse, type SpotListMarketDepthParams, type SpotListMarketDepthResponse, type SpotListMarketIndexParams, type SpotListMarketIndexResponse, type SpotListMarketKlineParams, type SpotListMarketKlineResponse, type SpotListMarketParams, type SpotListMarketResponse, type SpotListMarketTickerParams, type SpotListMarketTickerResponse, type SpotListPendingOrderParams, type SpotListPendingOrderResponse, type SpotListPendingStopOrderParams, type SpotListPendingStopOrderResponse, type SpotListUserDealsParams, type SpotListUserDealsResponse, type SpotListUserOrderDealsParams, type SpotListUserOrderDealsResponse, type SpotMarketDeal, type SpotMarketDepth, type SpotMarketIndex, type SpotMarketKline, type SpotMarketStatus, type SpotMarketTicker, type SpotOrder$1 as SpotOrder, SpotOrderOption, type SpotPutMultiOrderParams, type SpotPutMultiStopOrderParams, type SpotPutOrderParams, type SpotPutOrderResponse, type SpotPutStopOrderParams, type SpotPutStopOrderResponse, type SpotStopOrder, type SpotTransaction, type SpotUserDeal, type SpotUserOrderDeal, StopLossType, type StopOrder, StopOrderEvent, StopOrderStatus, StpMode, type SubAccountApiKey, type SubAccountInfo, type SubAccountSpotBalance, type SubAccountTransferHistory, type SubAccountTransferParams, TakeProfitType, TransactionType, TransferDirection, type TransferParams, TransferStatus, TriggerDirection, TriggerPriceType, type UpdateDepositAddressParams, type UserDeal, type UserOrderDeal, UserType, type WithdrawalHistory, type WithdrawalParams, noUndefined };
