{"version":3,"sources":["../src/derivatives-trading-usds-futures.ts","../package.json","../src/rest-api/index.ts","../src/rest-api/types/modify-multiple-orders-batch-orders-parameter-inner.ts","../src/rest-api/types/place-multiple-orders-batch-orders-parameter-inner.ts","../src/rest-api/modules/account-api.ts","../src/rest-api/modules/convert-api.ts","../src/rest-api/modules/market-data-api.ts","../src/rest-api/modules/portfolio-margin-endpoints-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/modules/user-data-streams-api.ts","../src/rest-api/rest-api.ts","../src/websocket-api/index.ts","../src/websocket-api/modules/account-api.ts","../src/websocket-api/modules/market-data-api.ts","../src/websocket-api/modules/trade-api.ts","../src/websocket-api/modules/user-data-streams-api.ts","../src/websocket-api/websocket-api.ts","../src/websocket-api/websocket-api-connection.ts","../src/websocket-streams/index.ts","../src/websocket-streams/modules/websocket-market-streams-api.ts","../src/websocket-streams/websocket-streams.ts","../src/websocket-streams/websocket-streams-connection.ts","../src/index.ts"],"sourcesContent":["import {\n    buildUserAgent,\n    ConfigurationRestAPI,\n    ConfigurationWebsocketAPI,\n    ConfigurationWebsocketStreams,\n    DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL,\n} from '@binance/common';\nimport { name, version } from '../package.json';\nimport { RestAPI } from './rest-api';\nimport { WebsocketAPI } from './websocket-api';\nimport { WebsocketStreams } from './websocket-streams';\n\nexport interface ConfigurationDerivativesTradingUsdsFutures {\n    configurationRestAPI?: ConfigurationRestAPI;\n    configurationWebsocketAPI?: ConfigurationWebsocketAPI;\n    configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class DerivativesTradingUsdsFutures {\n    public restAPI!: RestAPI;\n    public websocketAPI!: WebsocketAPI;\n    public websocketStreams!: WebsocketStreams;\n\n    constructor(config: ConfigurationDerivativesTradingUsdsFutures) {\n        const userAgent = buildUserAgent(name, version);\n\n        if (config?.configurationRestAPI) {\n            const configRestAPI = new ConfigurationRestAPI(\n                config.configurationRestAPI\n            ) as ConfigurationRestAPI & {\n                baseOptions: Record<string, unknown>;\n            };\n            configRestAPI.basePath =\n                configRestAPI.basePath || DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL;\n            configRestAPI.baseOptions = configRestAPI.baseOptions || {};\n            configRestAPI.baseOptions.headers = {\n                ...(configRestAPI.baseOptions.headers || {}),\n                'User-Agent': userAgent,\n            };\n            this.restAPI = new RestAPI(configRestAPI);\n        }\n        if (config?.configurationWebsocketAPI) {\n            const configWebsocketAPI = new ConfigurationWebsocketAPI(\n                config.configurationWebsocketAPI\n            ) as ConfigurationWebsocketAPI & {\n                userAgent: string;\n            };\n            configWebsocketAPI.wsURL =\n                configWebsocketAPI.wsURL || DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL;\n            configWebsocketAPI.userAgent = userAgent;\n            this.websocketAPI = new WebsocketAPI(configWebsocketAPI);\n        }\n        if (config?.configurationWebsocketStreams) {\n            const configWebsocketStreams = new ConfigurationWebsocketStreams(\n                config.configurationWebsocketStreams\n            ) as ConfigurationWebsocketStreams & {\n                userAgent: string;\n            };\n            configWebsocketStreams.wsURL =\n                configWebsocketStreams.wsURL ||\n                DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL;\n            configWebsocketStreams.userAgent = userAgent;\n            this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n        }\n    }\n}\n","{\n    \"name\": \"@binance/derivatives-trading-usds-futures\",\n    \"description\": \"Official Binance Derivatives Trading (COIN-M Futures) Connector - A lightweight library that provides a convenient interface to Binance's COINN-M Futures REST API, WebSocket API and WebSocket Streams.\",\n    \"version\": \"10.0.2\",\n    \"main\": \"./dist/index.js\",\n    \"module\": \"./dist/index.mjs\",\n    \"types\": \"./dist/index.d.ts\",\n    \"exports\": {\n        \".\": {\n            \"require\": \"./dist/index.js\",\n            \"import\": \"./dist/index.mjs\"\n        }\n    },\n    \"scripts\": {\n        \"prepublishOnly\": \"npm run build\",\n        \"build\": \"npm run clean && tsup\",\n        \"typecheck\": \"tsc --noEmit\",\n        \"clean\": \"rm -rf dist\",\n        \"test\": \"npx jest --maxWorkers=4 --bail\",\n        \"test:watch\": \"npx jest --watch\",\n        \"format\": \"npx prettier --ignore-path .prettierignore --write .\",\n        \"lint\": \"npx eslint '**/*.ts' --fix\"\n    },\n    \"keywords\": [\n        \"Binance\",\n        \"API\",\n        \"Derivatives\",\n        \"Futures\",\n        \"Coin-M\",\n        \"Connector\",\n        \"REST\",\n        \"WebSocket\",\n        \"Trading\"\n    ],\n    \"author\": \"Binance\",\n    \"license\": \"MIT\",\n    \"files\": [\n        \"dist\"\n    ],\n    \"devDependencies\": {\n        \"@types/jest\": \"^29.5.4\",\n        \"@types/node\": \"^20.17.24\",\n        \"eslint\": \"8.57.0\",\n        \"jest\": \"^29.6.4\",\n        \"prettier\": \"^3.3.3\",\n        \"ts-jest\": \"^29.1.1\",\n        \"ts-node\": \"^10.9.1\",\n        \"tsup\": \"^8.4.0\",\n        \"typescript\": \"^5.7.2\",\n        \"typescript-eslint\": \"^8.24.0\"\n    },\n    \"dependencies\": {\n        \"@binance/common\": \"1.2.3\",\n        \"@types/ws\": \"^8.5.5\",\n        \"axios\": \"^1.7.4\",\n        \"ws\": \"^8.17.1\"\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './rest-api';\n","/* tslint:disable */\n\n/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface ModifyMultipleOrdersBatchOrdersParameterInner\n */\nexport interface ModifyMultipleOrdersBatchOrdersParameterInner {\n    /**\n     *\n     * @type {number}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    orderId?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    origClientOrderId?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    symbol?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    side?: ModifyMultipleOrdersBatchOrdersParameterInnerSideEnum;\n    /**\n     *\n     * @type {number}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    quantity?: number;\n    /**\n     *\n     * @type {number}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    price?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    priceMatch?: ModifyMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum;\n    /**\n     *\n     * @type {number}\n     * @memberof ModifyMultipleOrdersBatchOrdersParameterInner\n     */\n    recvWindow?: number;\n}\n\nexport const ModifyMultipleOrdersBatchOrdersParameterInnerSideEnum = {\n    BUY: 'BUY',\n    SELL: 'SELL',\n} as const;\n\nexport type ModifyMultipleOrdersBatchOrdersParameterInnerSideEnum =\n    (typeof ModifyMultipleOrdersBatchOrdersParameterInnerSideEnum)[keyof typeof ModifyMultipleOrdersBatchOrdersParameterInnerSideEnum];\nexport const ModifyMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum = {\n    NONE: 'NONE',\n    OPPONENT: 'OPPONENT',\n    OPPONENT_5: 'OPPONENT_5',\n    OPPONENT_10: 'OPPONENT_10',\n    OPPONENT_20: 'OPPONENT_20',\n    QUEUE: 'QUEUE',\n    QUEUE_5: 'QUEUE_5',\n    QUEUE_10: 'QUEUE_10',\n    QUEUE_20: 'QUEUE_20',\n} as const;\n\nexport type ModifyMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum =\n    (typeof ModifyMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum)[keyof typeof ModifyMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum];\n","/* tslint:disable */\n\n/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface PlaceMultipleOrdersBatchOrdersParameterInner\n */\nexport interface PlaceMultipleOrdersBatchOrdersParameterInner {\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    symbol?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    side?: PlaceMultipleOrdersBatchOrdersParameterInnerSideEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    positionSide?: PlaceMultipleOrdersBatchOrdersParameterInnerPositionSideEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    type?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    timeInForce?: PlaceMultipleOrdersBatchOrdersParameterInnerTimeInForceEnum;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    quantity?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    reduceOnly?: string;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    price?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    newClientOrderId?: string;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    stopPrice?: number;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    activationPrice?: number;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    callbackRate?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    workingType?: PlaceMultipleOrdersBatchOrdersParameterInnerWorkingTypeEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    priceProtect?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    newOrderRespType?: PlaceMultipleOrdersBatchOrdersParameterInnerNewOrderRespTypeEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    priceMatch?: PlaceMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    selfTradePreventionMode?: PlaceMultipleOrdersBatchOrdersParameterInnerSelfTradePreventionModeEnum;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersBatchOrdersParameterInner\n     */\n    goodTillDate?: number;\n}\n\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerSideEnum = {\n    BUY: 'BUY',\n    SELL: 'SELL',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerSideEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerSideEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerSideEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerPositionSideEnum = {\n    BOTH: 'BOTH',\n    LONG: 'LONG',\n    SHORT: 'SHORT',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerPositionSideEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerPositionSideEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerPositionSideEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerTimeInForceEnum = {\n    GTC: 'GTC',\n    IOC: 'IOC',\n    FOK: 'FOK',\n    GTX: 'GTX',\n    GTD: 'GTD',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerTimeInForceEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerTimeInForceEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerTimeInForceEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerWorkingTypeEnum = {\n    MARK_PRICE: 'MARK_PRICE',\n    CONTRACT_PRICE: 'CONTRACT_PRICE',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerWorkingTypeEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerWorkingTypeEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerWorkingTypeEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerNewOrderRespTypeEnum = {\n    ACK: 'ACK',\n    RESULT: 'RESULT',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerNewOrderRespTypeEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerNewOrderRespTypeEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerNewOrderRespTypeEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum = {\n    NONE: 'NONE',\n    OPPONENT: 'OPPONENT',\n    OPPONENT_5: 'OPPONENT_5',\n    OPPONENT_10: 'OPPONENT_10',\n    OPPONENT_20: 'OPPONENT_20',\n    QUEUE: 'QUEUE',\n    QUEUE_5: 'QUEUE_5',\n    QUEUE_10: 'QUEUE_10',\n    QUEUE_20: 'QUEUE_20',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerPriceMatchEnum];\nexport const PlaceMultipleOrdersBatchOrdersParameterInnerSelfTradePreventionModeEnum = {\n    EXPIRE_TAKER: 'EXPIRE_TAKER',\n    EXPIRE_BOTH: 'EXPIRE_BOTH',\n    EXPIRE_MAKER: 'EXPIRE_MAKER',\n} as const;\n\nexport type PlaceMultipleOrdersBatchOrdersParameterInnerSelfTradePreventionModeEnum =\n    (typeof PlaceMultipleOrdersBatchOrdersParameterInnerSelfTradePreventionModeEnum)[keyof typeof PlaceMultipleOrdersBatchOrdersParameterInnerSelfTradePreventionModeEnum];\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AccountInformationV2Response,\n    AccountInformationV3Response,\n    FuturesAccountBalanceV2Response,\n    FuturesAccountBalanceV3Response,\n    FuturesAccountConfigurationResponse,\n    FuturesTradingQuantitativeRulesIndicatorsResponse,\n    GetBnbBurnStatusResponse,\n    GetCurrentMultiAssetsModeResponse,\n    GetCurrentPositionModeResponse,\n    GetDownloadIdForFuturesOrderHistoryResponse,\n    GetDownloadIdForFuturesTradeHistoryResponse,\n    GetDownloadIdForFuturesTransactionHistoryResponse,\n    GetFuturesOrderHistoryDownloadLinkByIdResponse,\n    GetFuturesTradeDownloadLinkByIdResponse,\n    GetFuturesTransactionHistoryDownloadLinkByIdResponse,\n    GetIncomeHistoryResponse,\n    NotionalAndLeverageBracketsResponse,\n    QueryUserRateLimitResponse,\n    SymbolConfigurationResponse,\n    ToggleBnbBurnOnFuturesTradeResponse,\n    UserCommissionRateResponse,\n} from '../types';\n\n/**\n * AccountApi - axios parameter creator\n */\nconst AccountApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n         *\n         * Weight: 5\n         *\n         * @summary Account Information V2(USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountInformationV2: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v2/account',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n         *\n         * Weight: 5\n         *\n         * @summary Account Information V3(USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountInformationV3: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v3/account',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query account balance info\n         *\n         * Weight: 5\n         *\n         * @summary Futures Account Balance V2 (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        futuresAccountBalanceV2: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v2/balance',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query account balance info\n         *\n         * Weight: 5\n         *\n         * @summary Futures Account Balance V3 (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        futuresAccountBalanceV3: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v3/balance',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query account configuration\n         *\n         * Weight: 5\n         *\n         * @summary Futures Account Configuration(USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        futuresAccountConfiguration: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/accountConfig',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Futures trading quantitative rules indicators, for more information on this, please refer to the [Futures Trading Quantitative Rules](https://www.binance.com/en/support/faq/4f462ebe6ff445d4a170be7d9e897272)\n         *\n         * Weight: - 1 for a single symbol\n         * - 10 when the symbol parameter is omitted\n         *\n         * @summary Futures Trading Quantitative Rules Indicators (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        futuresTradingQuantitativeRulesIndicators: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/apiTradingStatus',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get user's BNB Fee Discount (Fee Discount On or Fee Discount Off )\n         *\n         * Weight: 30\n         *\n         * @summary Get BNB Burn Status (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getBnbBurnStatus: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/feeBurn',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n         *\n         * Weight: 30\n         *\n         * @summary Get Current Multi-Assets Mode (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getCurrentMultiAssetsMode: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/multiAssetsMargin',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n         *\n         * Weight: 30\n         *\n         * @summary Get Current Position Mode(USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getCurrentPositionMode: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/positionSide/dual',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get Download Id For Futures Order History\n         *\n         * Request Limitation is 10 times per month, shared by front end download page and rest api\n         * The time between `startTime` and `endTime` can not be longer than 1 year\n         *\n         * Weight: 1000\n         *\n         * @summary Get Download Id For Futures Order History (USER_DATA)\n         * @param {number} startTime Timestamp in ms\n         * @param {number} endTime Timestamp in ms\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getDownloadIdForFuturesOrderHistory: async (\n            startTime: number,\n            endTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'startTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesOrderHistory', 'startTime', startTime);\n            // verify required parameter 'endTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesOrderHistory', 'endTime', endTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order/asyn',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get download id for futures trade history\n         *\n         * Request Limitation is 5 times per month, shared by front end download page and rest api\n         * The time between `startTime` and `endTime` can not be longer than 1 year\n         *\n         * Weight: 1000\n         *\n         * @summary Get Download Id For Futures Trade History (USER_DATA)\n         * @param {number} startTime Timestamp in ms\n         * @param {number} endTime Timestamp in ms\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getDownloadIdForFuturesTradeHistory: async (\n            startTime: number,\n            endTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'startTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesTradeHistory', 'startTime', startTime);\n            // verify required parameter 'endTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesTradeHistory', 'endTime', endTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/trade/asyn',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get download id for futures transaction history\n         *\n         * Request Limitation is 5 times per month, shared by front end download page and rest api\n         * The time between `startTime` and `endTime` can not be longer than 1 year\n         *\n         * Weight: 1000\n         *\n         * @summary Get Download Id For Futures Transaction History(USER_DATA)\n         * @param {number} startTime Timestamp in ms\n         * @param {number} endTime Timestamp in ms\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getDownloadIdForFuturesTransactionHistory: async (\n            startTime: number,\n            endTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'startTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesTransactionHistory', 'startTime', startTime);\n            // verify required parameter 'endTime' is not null or undefined\n            assertParamExists('getDownloadIdForFuturesTransactionHistory', 'endTime', endTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/income/asyn',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get futures order history download link by Id\n         *\n         * Download link expiration: 24h\n         *\n         * Weight: 10\n         *\n         * @summary Get Futures Order History Download Link by Id (USER_DATA)\n         * @param {string} downloadId get by download id api\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getFuturesOrderHistoryDownloadLinkById: async (\n            downloadId: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'downloadId' is not null or undefined\n            assertParamExists('getFuturesOrderHistoryDownloadLinkById', 'downloadId', downloadId);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (downloadId !== undefined && downloadId !== null) {\n                localVarQueryParameter['downloadId'] = downloadId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order/asyn/id',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get futures trade download link by Id\n         *\n         * Download link expiration: 24h\n         *\n         * Weight: 10\n         *\n         * @summary Get Futures Trade Download Link by Id(USER_DATA)\n         * @param {string} downloadId get by download id api\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getFuturesTradeDownloadLinkById: async (\n            downloadId: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'downloadId' is not null or undefined\n            assertParamExists('getFuturesTradeDownloadLinkById', 'downloadId', downloadId);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (downloadId !== undefined && downloadId !== null) {\n                localVarQueryParameter['downloadId'] = downloadId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/trade/asyn/id',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get futures transaction history download link by Id\n         *\n         * Download link expiration: 24h\n         *\n         * Weight: 10\n         *\n         * @summary Get Futures Transaction History Download Link by Id (USER_DATA)\n         * @param {string} downloadId get by download id api\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getFuturesTransactionHistoryDownloadLinkById: async (\n            downloadId: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'downloadId' is not null or undefined\n            assertParamExists(\n                'getFuturesTransactionHistoryDownloadLinkById',\n                'downloadId',\n                downloadId\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (downloadId !== undefined && downloadId !== null) {\n                localVarQueryParameter['downloadId'] = downloadId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/income/asyn/id',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query income history\n         *\n         * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n         * If `incomeType ` is not sent, all kinds of flow will be returned\n         * \"trandId\" is unique in the same incomeType for a user\n         * Income history only contains data for the last three months\n         *\n         * Weight: 30\n         *\n         * @summary Get Income History (USER_DATA)\n         * @param {string} [symbol]\n         * @param {string} [incomeType] TRANSFER, WELCOME_BONUS, REALIZED_PNL, FUNDING_FEE, COMMISSION, INSURANCE_CLEAR, REFERRAL_KICKBACK, COMMISSION_REBATE, API_REBATE, CONTEST_REWARD, CROSS_COLLATERAL_TRANSFER, OPTIONS_PREMIUM_FEE, OPTIONS_SETTLE_PROFIT, INTERNAL_TRANSFER, AUTO_EXCHANGE, DELIVERED_SETTELMENT, COIN_SWAP_DEPOSIT, COIN_SWAP_WITHDRAW, POSITION_LIMIT_INCREASE_FEE, STRATEGY_UMFUTURES_TRANSFER，FEE_RETURN，BFUSD_REWARD\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [page]\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getIncomeHistory: async (\n            symbol?: string,\n            incomeType?: string,\n            startTime?: number,\n            endTime?: number,\n            page?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (incomeType !== undefined && incomeType !== null) {\n                localVarQueryParameter['incomeType'] = incomeType;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (page !== undefined && page !== null) {\n                localVarQueryParameter['page'] = page;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/income',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query user notional and leverage bracket on speicfic symbol\n         *\n         * Weight: 1\n         *\n         * @summary Notional and Leverage Brackets (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        notionalAndLeverageBrackets: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/leverageBracket',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query User Rate Limit\n         *\n         * Weight: 1\n         *\n         * @summary Query User Rate Limit (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryUserRateLimit: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/rateLimit/order',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account symbol configuration.\n         *\n         * Weight: 5\n         *\n         * @summary Symbol Configuration(USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        symbolConfiguration: async (symbol?: string, recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/symbolConfig',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on ***EVERY symbol***\n         *\n         * Weight: 1\n         *\n         * @summary Toggle BNB Burn On Futures Trade (TRADE)\n         * @param {string} feeBurn \"true\": Fee Discount On; \"false\": Fee Discount Off\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        toggleBnbBurnOnFuturesTrade: async (\n            feeBurn: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'feeBurn' is not null or undefined\n            assertParamExists('toggleBnbBurnOnFuturesTrade', 'feeBurn', feeBurn);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (feeBurn !== undefined && feeBurn !== null) {\n                localVarQueryParameter['feeBurn'] = feeBurn;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/feeBurn',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get User Commission Rate\n         *\n         * Weight: 20\n         *\n         * @summary User Commission Rate (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        userCommissionRate: async (symbol: string, recvWindow?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('userCommissionRate', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/commissionRate',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * AccountApi - interface\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    accountInformationV2(\n        requestParameters?: AccountInformationV2Request\n    ): Promise<RestApiResponse<AccountInformationV2Response>>;\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V3(USER_DATA)\n     * @param {AccountInformationV3Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    accountInformationV3(\n        requestParameters?: AccountInformationV3Request\n    ): Promise<RestApiResponse<AccountInformationV3Response>>;\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2 (USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountBalanceV2(\n        requestParameters?: FuturesAccountBalanceV2Request\n    ): Promise<RestApiResponse<FuturesAccountBalanceV2Response>>;\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V3 (USER_DATA)\n     * @param {FuturesAccountBalanceV3Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountBalanceV3(\n        requestParameters?: FuturesAccountBalanceV3Request\n    ): Promise<RestApiResponse<FuturesAccountBalanceV3Response>>;\n    /**\n     * Query account configuration\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Configuration(USER_DATA)\n     * @param {FuturesAccountConfigurationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountConfiguration(\n        requestParameters?: FuturesAccountConfigurationRequest\n    ): Promise<RestApiResponse<FuturesAccountConfigurationResponse>>;\n    /**\n     * Futures trading quantitative rules indicators, for more information on this, please refer to the [Futures Trading Quantitative Rules](https://www.binance.com/en/support/faq/4f462ebe6ff445d4a170be7d9e897272)\n     *\n     * Weight: - 1 for a single symbol\n     * - 10 when the symbol parameter is omitted\n     *\n     * @summary Futures Trading Quantitative Rules Indicators (USER_DATA)\n     * @param {FuturesTradingQuantitativeRulesIndicatorsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    futuresTradingQuantitativeRulesIndicators(\n        requestParameters?: FuturesTradingQuantitativeRulesIndicatorsRequest\n    ): Promise<RestApiResponse<FuturesTradingQuantitativeRulesIndicatorsResponse>>;\n    /**\n     * Get user's BNB Fee Discount (Fee Discount On or Fee Discount Off )\n     *\n     * Weight: 30\n     *\n     * @summary Get BNB Burn Status (USER_DATA)\n     * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getBnbBurnStatus(\n        requestParameters?: GetBnbBurnStatusRequest\n    ): Promise<RestApiResponse<GetBnbBurnStatusResponse>>;\n    /**\n     * Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Multi-Assets Mode (USER_DATA)\n     * @param {GetCurrentMultiAssetsModeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getCurrentMultiAssetsMode(\n        requestParameters?: GetCurrentMultiAssetsModeRequest\n    ): Promise<RestApiResponse<GetCurrentMultiAssetsModeResponse>>;\n    /**\n     * Get user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Position Mode(USER_DATA)\n     * @param {GetCurrentPositionModeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getCurrentPositionMode(\n        requestParameters?: GetCurrentPositionModeRequest\n    ): Promise<RestApiResponse<GetCurrentPositionModeResponse>>;\n    /**\n     * Get Download Id For Futures Order History\n     *\n     * Request Limitation is 10 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Order History (USER_DATA)\n     * @param {GetDownloadIdForFuturesOrderHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getDownloadIdForFuturesOrderHistory(\n        requestParameters: GetDownloadIdForFuturesOrderHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesOrderHistoryResponse>>;\n    /**\n     * Get download id for futures trade history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Trade History (USER_DATA)\n     * @param {GetDownloadIdForFuturesTradeHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getDownloadIdForFuturesTradeHistory(\n        requestParameters: GetDownloadIdForFuturesTradeHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTradeHistoryResponse>>;\n    /**\n     * Get download id for futures transaction history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Transaction History(USER_DATA)\n     * @param {GetDownloadIdForFuturesTransactionHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getDownloadIdForFuturesTransactionHistory(\n        requestParameters: GetDownloadIdForFuturesTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTransactionHistoryResponse>>;\n    /**\n     * Get futures order history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Order History Download Link by Id (USER_DATA)\n     * @param {GetFuturesOrderHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getFuturesOrderHistoryDownloadLinkById(\n        requestParameters: GetFuturesOrderHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesOrderHistoryDownloadLinkByIdResponse>>;\n    /**\n     * Get futures trade download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Trade Download Link by Id(USER_DATA)\n     * @param {GetFuturesTradeDownloadLinkByIdRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getFuturesTradeDownloadLinkById(\n        requestParameters: GetFuturesTradeDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTradeDownloadLinkByIdResponse>>;\n    /**\n     * Get futures transaction history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Transaction History Download Link by Id (USER_DATA)\n     * @param {GetFuturesTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getFuturesTransactionHistoryDownloadLinkById(\n        requestParameters: GetFuturesTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTransactionHistoryDownloadLinkByIdResponse>>;\n    /**\n     * Query income history\n     *\n     * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n     * If `incomeType ` is not sent, all kinds of flow will be returned\n     * \"trandId\" is unique in the same incomeType for a user\n     * Income history only contains data for the last three months\n     *\n     * Weight: 30\n     *\n     * @summary Get Income History (USER_DATA)\n     * @param {GetIncomeHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getIncomeHistory(\n        requestParameters?: GetIncomeHistoryRequest\n    ): Promise<RestApiResponse<GetIncomeHistoryResponse>>;\n    /**\n     * Query user notional and leverage bracket on speicfic symbol\n     *\n     * Weight: 1\n     *\n     * @summary Notional and Leverage Brackets (USER_DATA)\n     * @param {NotionalAndLeverageBracketsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    notionalAndLeverageBrackets(\n        requestParameters?: NotionalAndLeverageBracketsRequest\n    ): Promise<RestApiResponse<NotionalAndLeverageBracketsResponse>>;\n    /**\n     * Query User Rate Limit\n     *\n     * Weight: 1\n     *\n     * @summary Query User Rate Limit (USER_DATA)\n     * @param {QueryUserRateLimitRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    queryUserRateLimit(\n        requestParameters?: QueryUserRateLimitRequest\n    ): Promise<RestApiResponse<QueryUserRateLimitResponse>>;\n    /**\n     * Get current account symbol configuration.\n     *\n     * Weight: 5\n     *\n     * @summary Symbol Configuration(USER_DATA)\n     * @param {SymbolConfigurationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    symbolConfiguration(\n        requestParameters?: SymbolConfigurationRequest\n    ): Promise<RestApiResponse<SymbolConfigurationResponse>>;\n    /**\n     * Change user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Toggle BNB Burn On Futures Trade (TRADE)\n     * @param {ToggleBnbBurnOnFuturesTradeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    toggleBnbBurnOnFuturesTrade(\n        requestParameters: ToggleBnbBurnOnFuturesTradeRequest\n    ): Promise<RestApiResponse<ToggleBnbBurnOnFuturesTradeResponse>>;\n    /**\n     * Get User Commission Rate\n     *\n     * Weight: 20\n     *\n     * @summary User Commission Rate (USER_DATA)\n     * @param {UserCommissionRateRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    userCommissionRate(\n        requestParameters: UserCommissionRateRequest\n    ): Promise<RestApiResponse<UserCommissionRateResponse>>;\n}\n\n/**\n * Request parameters for accountInformationV2 operation in AccountApi.\n * @interface AccountInformationV2Request\n */\nexport interface AccountInformationV2Request {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountInformationV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for accountInformationV3 operation in AccountApi.\n * @interface AccountInformationV3Request\n */\nexport interface AccountInformationV3Request {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountInformationV3\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresAccountBalanceV2 operation in AccountApi.\n * @interface FuturesAccountBalanceV2Request\n */\nexport interface FuturesAccountBalanceV2Request {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountBalanceV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresAccountBalanceV3 operation in AccountApi.\n * @interface FuturesAccountBalanceV3Request\n */\nexport interface FuturesAccountBalanceV3Request {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountBalanceV3\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresAccountConfiguration operation in AccountApi.\n * @interface FuturesAccountConfigurationRequest\n */\nexport interface FuturesAccountConfigurationRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountConfiguration\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresTradingQuantitativeRulesIndicators operation in AccountApi.\n * @interface FuturesTradingQuantitativeRulesIndicatorsRequest\n */\nexport interface FuturesTradingQuantitativeRulesIndicatorsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiFuturesTradingQuantitativeRulesIndicators\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesTradingQuantitativeRulesIndicators\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getBnbBurnStatus operation in AccountApi.\n * @interface GetBnbBurnStatusRequest\n */\nexport interface GetBnbBurnStatusRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetBnbBurnStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getCurrentMultiAssetsMode operation in AccountApi.\n * @interface GetCurrentMultiAssetsModeRequest\n */\nexport interface GetCurrentMultiAssetsModeRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetCurrentMultiAssetsMode\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getCurrentPositionMode operation in AccountApi.\n * @interface GetCurrentPositionModeRequest\n */\nexport interface GetCurrentPositionModeRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetCurrentPositionMode\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getDownloadIdForFuturesOrderHistory operation in AccountApi.\n * @interface GetDownloadIdForFuturesOrderHistoryRequest\n */\nexport interface GetDownloadIdForFuturesOrderHistoryRequest {\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesOrderHistory\n     */\n    readonly startTime: number;\n\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesOrderHistory\n     */\n    readonly endTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesOrderHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getDownloadIdForFuturesTradeHistory operation in AccountApi.\n * @interface GetDownloadIdForFuturesTradeHistoryRequest\n */\nexport interface GetDownloadIdForFuturesTradeHistoryRequest {\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTradeHistory\n     */\n    readonly startTime: number;\n\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTradeHistory\n     */\n    readonly endTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTradeHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getDownloadIdForFuturesTransactionHistory operation in AccountApi.\n * @interface GetDownloadIdForFuturesTransactionHistoryRequest\n */\nexport interface GetDownloadIdForFuturesTransactionHistoryRequest {\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTransactionHistory\n     */\n    readonly startTime: number;\n\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTransactionHistory\n     */\n    readonly endTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForFuturesTransactionHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getFuturesOrderHistoryDownloadLinkById operation in AccountApi.\n * @interface GetFuturesOrderHistoryDownloadLinkByIdRequest\n */\nexport interface GetFuturesOrderHistoryDownloadLinkByIdRequest {\n    /**\n     * get by download id api\n     * @type {string}\n     * @memberof AccountApiGetFuturesOrderHistoryDownloadLinkById\n     */\n    readonly downloadId: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetFuturesOrderHistoryDownloadLinkById\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getFuturesTradeDownloadLinkById operation in AccountApi.\n * @interface GetFuturesTradeDownloadLinkByIdRequest\n */\nexport interface GetFuturesTradeDownloadLinkByIdRequest {\n    /**\n     * get by download id api\n     * @type {string}\n     * @memberof AccountApiGetFuturesTradeDownloadLinkById\n     */\n    readonly downloadId: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetFuturesTradeDownloadLinkById\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getFuturesTransactionHistoryDownloadLinkById operation in AccountApi.\n * @interface GetFuturesTransactionHistoryDownloadLinkByIdRequest\n */\nexport interface GetFuturesTransactionHistoryDownloadLinkByIdRequest {\n    /**\n     * get by download id api\n     * @type {string}\n     * @memberof AccountApiGetFuturesTransactionHistoryDownloadLinkById\n     */\n    readonly downloadId: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetFuturesTransactionHistoryDownloadLinkById\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getIncomeHistory operation in AccountApi.\n * @interface GetIncomeHistoryRequest\n */\nexport interface GetIncomeHistoryRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly symbol?: string;\n\n    /**\n     * TRANSFER, WELCOME_BONUS, REALIZED_PNL, FUNDING_FEE, COMMISSION, INSURANCE_CLEAR, REFERRAL_KICKBACK, COMMISSION_REBATE, API_REBATE, CONTEST_REWARD, CROSS_COLLATERAL_TRANSFER, OPTIONS_PREMIUM_FEE, OPTIONS_SETTLE_PROFIT, INTERNAL_TRANSFER, AUTO_EXCHANGE, DELIVERED_SETTELMENT, COIN_SWAP_DEPOSIT, COIN_SWAP_WITHDRAW, POSITION_LIMIT_INCREASE_FEE, STRATEGY_UMFUTURES_TRANSFER，FEE_RETURN，BFUSD_REWARD\n     * @type {string}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly incomeType?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly endTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly page?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetIncomeHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for notionalAndLeverageBrackets operation in AccountApi.\n * @interface NotionalAndLeverageBracketsRequest\n */\nexport interface NotionalAndLeverageBracketsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiNotionalAndLeverageBrackets\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiNotionalAndLeverageBrackets\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryUserRateLimit operation in AccountApi.\n * @interface QueryUserRateLimitRequest\n */\nexport interface QueryUserRateLimitRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiQueryUserRateLimit\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for symbolConfiguration operation in AccountApi.\n * @interface SymbolConfigurationRequest\n */\nexport interface SymbolConfigurationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiSymbolConfiguration\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiSymbolConfiguration\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for toggleBnbBurnOnFuturesTrade operation in AccountApi.\n * @interface ToggleBnbBurnOnFuturesTradeRequest\n */\nexport interface ToggleBnbBurnOnFuturesTradeRequest {\n    /**\n     * \"true\": Fee Discount On; \"false\": Fee Discount Off\n     * @type {string}\n     * @memberof AccountApiToggleBnbBurnOnFuturesTrade\n     */\n    readonly feeBurn: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiToggleBnbBurnOnFuturesTrade\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for userCommissionRate operation in AccountApi.\n * @interface UserCommissionRateRequest\n */\nexport interface UserCommissionRateRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiUserCommissionRate\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiUserCommissionRate\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * AccountApi - object-oriented interface\n * @class AccountApi\n */\nexport class AccountApi implements AccountApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = AccountApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Information-V2 Binance API Documentation}\n     */\n    public async accountInformationV2(\n        requestParameters: AccountInformationV2Request = {}\n    ): Promise<RestApiResponse<AccountInformationV2Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountInformationV2(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountInformationV2Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V3(USER_DATA)\n     * @param {AccountInformationV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Information-V3 Binance API Documentation}\n     */\n    public async accountInformationV3(\n        requestParameters: AccountInformationV3Request = {}\n    ): Promise<RestApiResponse<AccountInformationV3Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountInformationV3(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountInformationV3Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2 (USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Account-Balance-V2 Binance API Documentation}\n     */\n    public async futuresAccountBalanceV2(\n        requestParameters: FuturesAccountBalanceV2Request = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceV2Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.futuresAccountBalanceV2(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<FuturesAccountBalanceV2Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V3 (USER_DATA)\n     * @param {FuturesAccountBalanceV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Account-Balance-V3 Binance API Documentation}\n     */\n    public async futuresAccountBalanceV3(\n        requestParameters: FuturesAccountBalanceV3Request = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceV3Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.futuresAccountBalanceV3(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<FuturesAccountBalanceV3Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query account configuration\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Configuration(USER_DATA)\n     * @param {FuturesAccountConfigurationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountConfigurationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Config Binance API Documentation}\n     */\n    public async futuresAccountConfiguration(\n        requestParameters: FuturesAccountConfigurationRequest = {}\n    ): Promise<RestApiResponse<FuturesAccountConfigurationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.futuresAccountConfiguration(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<FuturesAccountConfigurationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Futures trading quantitative rules indicators, for more information on this, please refer to the [Futures Trading Quantitative Rules](https://www.binance.com/en/support/faq/4f462ebe6ff445d4a170be7d9e897272)\n     *\n     * Weight: - 1 for a single symbol\n     * - 10 when the symbol parameter is omitted\n     *\n     * @summary Futures Trading Quantitative Rules Indicators (USER_DATA)\n     * @param {FuturesTradingQuantitativeRulesIndicatorsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesTradingQuantitativeRulesIndicatorsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Trading-Quantitative-Rules-Indicators Binance API Documentation}\n     */\n    public async futuresTradingQuantitativeRulesIndicators(\n        requestParameters: FuturesTradingQuantitativeRulesIndicatorsRequest = {}\n    ): Promise<RestApiResponse<FuturesTradingQuantitativeRulesIndicatorsResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.futuresTradingQuantitativeRulesIndicators(\n                requestParameters?.symbol,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<FuturesTradingQuantitativeRulesIndicatorsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get user's BNB Fee Discount (Fee Discount On or Fee Discount Off )\n     *\n     * Weight: 30\n     *\n     * @summary Get BNB Burn Status (USER_DATA)\n     * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-BNB-Burn-Status Binance API Documentation}\n     */\n    public async getBnbBurnStatus(\n        requestParameters: GetBnbBurnStatusRequest = {}\n    ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getBnbBurnStatus(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetBnbBurnStatusResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Multi-Assets Mode (USER_DATA)\n     * @param {GetCurrentMultiAssetsModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetCurrentMultiAssetsModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Current-Multi-Assets-Mode Binance API Documentation}\n     */\n    public async getCurrentMultiAssetsMode(\n        requestParameters: GetCurrentMultiAssetsModeRequest = {}\n    ): Promise<RestApiResponse<GetCurrentMultiAssetsModeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getCurrentMultiAssetsMode(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetCurrentMultiAssetsModeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Position Mode(USER_DATA)\n     * @param {GetCurrentPositionModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetCurrentPositionModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Current-Position-Mode Binance API Documentation}\n     */\n    public async getCurrentPositionMode(\n        requestParameters: GetCurrentPositionModeRequest = {}\n    ): Promise<RestApiResponse<GetCurrentPositionModeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getCurrentPositionMode(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetCurrentPositionModeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get Download Id For Futures Order History\n     *\n     * Request Limitation is 10 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Order History (USER_DATA)\n     * @param {GetDownloadIdForFuturesOrderHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesOrderHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Order-History Binance API Documentation}\n     */\n    public async getDownloadIdForFuturesOrderHistory(\n        requestParameters: GetDownloadIdForFuturesOrderHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesOrderHistoryResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getDownloadIdForFuturesOrderHistory(\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetDownloadIdForFuturesOrderHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get download id for futures trade history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Trade History (USER_DATA)\n     * @param {GetDownloadIdForFuturesTradeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesTradeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Trade-History Binance API Documentation}\n     */\n    public async getDownloadIdForFuturesTradeHistory(\n        requestParameters: GetDownloadIdForFuturesTradeHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTradeHistoryResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getDownloadIdForFuturesTradeHistory(\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetDownloadIdForFuturesTradeHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get download id for futures transaction history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Transaction History(USER_DATA)\n     * @param {GetDownloadIdForFuturesTransactionHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesTransactionHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Transaction-History Binance API Documentation}\n     */\n    public async getDownloadIdForFuturesTransactionHistory(\n        requestParameters: GetDownloadIdForFuturesTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTransactionHistoryResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getDownloadIdForFuturesTransactionHistory(\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetDownloadIdForFuturesTransactionHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get futures order history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Order History Download Link by Id (USER_DATA)\n     * @param {GetFuturesOrderHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesOrderHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Order-History-Download-Link-by-Id Binance API Documentation}\n     */\n    public async getFuturesOrderHistoryDownloadLinkById(\n        requestParameters: GetFuturesOrderHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesOrderHistoryDownloadLinkByIdResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getFuturesOrderHistoryDownloadLinkById(\n                requestParameters?.downloadId,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetFuturesOrderHistoryDownloadLinkByIdResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get futures trade download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Trade Download Link by Id(USER_DATA)\n     * @param {GetFuturesTradeDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesTradeDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Trade-Download-Link-by-Id Binance API Documentation}\n     */\n    public async getFuturesTradeDownloadLinkById(\n        requestParameters: GetFuturesTradeDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTradeDownloadLinkByIdResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getFuturesTradeDownloadLinkById(\n                requestParameters?.downloadId,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetFuturesTradeDownloadLinkByIdResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get futures transaction history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Transaction History Download Link by Id (USER_DATA)\n     * @param {GetFuturesTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesTransactionHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Transaction-History-Download-Link-by-Id Binance API Documentation}\n     */\n    public async getFuturesTransactionHistoryDownloadLinkById(\n        requestParameters: GetFuturesTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTransactionHistoryDownloadLinkByIdResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getFuturesTransactionHistoryDownloadLinkById(\n                requestParameters?.downloadId,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetFuturesTransactionHistoryDownloadLinkByIdResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query income history\n     *\n     * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n     * If `incomeType ` is not sent, all kinds of flow will be returned\n     * \"trandId\" is unique in the same incomeType for a user\n     * Income history only contains data for the last three months\n     *\n     * Weight: 30\n     *\n     * @summary Get Income History (USER_DATA)\n     * @param {GetIncomeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetIncomeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Income-History Binance API Documentation}\n     */\n    public async getIncomeHistory(\n        requestParameters: GetIncomeHistoryRequest = {}\n    ): Promise<RestApiResponse<GetIncomeHistoryResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getIncomeHistory(\n            requestParameters?.symbol,\n            requestParameters?.incomeType,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.page,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetIncomeHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query user notional and leverage bracket on speicfic symbol\n     *\n     * Weight: 1\n     *\n     * @summary Notional and Leverage Brackets (USER_DATA)\n     * @param {NotionalAndLeverageBracketsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalAndLeverageBracketsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Notional-and-Leverage-Brackets Binance API Documentation}\n     */\n    public async notionalAndLeverageBrackets(\n        requestParameters: NotionalAndLeverageBracketsRequest = {}\n    ): Promise<RestApiResponse<NotionalAndLeverageBracketsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.notionalAndLeverageBrackets(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NotionalAndLeverageBracketsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query User Rate Limit\n     *\n     * Weight: 1\n     *\n     * @summary Query User Rate Limit (USER_DATA)\n     * @param {QueryUserRateLimitRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryUserRateLimitResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Query-Rate-Limit Binance API Documentation}\n     */\n    public async queryUserRateLimit(\n        requestParameters: QueryUserRateLimitRequest = {}\n    ): Promise<RestApiResponse<QueryUserRateLimitResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryUserRateLimit(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryUserRateLimitResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account symbol configuration.\n     *\n     * Weight: 5\n     *\n     * @summary Symbol Configuration(USER_DATA)\n     * @param {SymbolConfigurationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolConfigurationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Symbol-Config Binance API Documentation}\n     */\n    public async symbolConfiguration(\n        requestParameters: SymbolConfigurationRequest = {}\n    ): Promise<RestApiResponse<SymbolConfigurationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.symbolConfiguration(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<SymbolConfigurationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Change user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Toggle BNB Burn On Futures Trade (TRADE)\n     * @param {ToggleBnbBurnOnFuturesTradeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ToggleBnbBurnOnFuturesTradeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Toggle-BNB-Burn-On-Futures-Trade Binance API Documentation}\n     */\n    public async toggleBnbBurnOnFuturesTrade(\n        requestParameters: ToggleBnbBurnOnFuturesTradeRequest\n    ): Promise<RestApiResponse<ToggleBnbBurnOnFuturesTradeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.toggleBnbBurnOnFuturesTrade(\n            requestParameters?.feeBurn,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ToggleBnbBurnOnFuturesTradeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get User Commission Rate\n     *\n     * Weight: 20\n     *\n     * @summary User Commission Rate (USER_DATA)\n     * @param {UserCommissionRateRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UserCommissionRateResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/User-Commission-Rate Binance API Documentation}\n     */\n    public async userCommissionRate(\n        requestParameters: UserCommissionRateRequest\n    ): Promise<RestApiResponse<UserCommissionRateResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.userCommissionRate(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<UserCommissionRateResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AcceptTheOfferedQuoteResponse,\n    ListAllConvertPairsResponse,\n    OrderStatusResponse,\n    SendQuoteRequestResponse,\n} from '../types';\n\n/**\n * ConvertApi - axios parameter creator\n */\nconst ConvertApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Accept the offered quote by quote ID.\n         *\n         * Weight: 200(IP)\n         *\n         * @summary Accept the offered quote (USER_DATA)\n         * @param {string} quoteId\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        acceptTheOfferedQuote: async (\n            quoteId: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'quoteId' is not null or undefined\n            assertParamExists('acceptTheOfferedQuote', 'quoteId', quoteId);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (quoteId !== undefined && quoteId !== null) {\n                localVarQueryParameter['quoteId'] = quoteId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/convert/acceptQuote',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n         *\n         * User needs to supply either or both of the input parameter\n         * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n         * Asset BNFCR is only available to convert for MICA region users.\n         *\n         * Weight: 20(IP)\n         *\n         * @summary List All Convert Pairs\n         * @param {string} [fromAsset] User spends coin\n         * @param {string} [toAsset] User receives coin\n         *\n         * @throws {RequiredError}\n         */\n        listAllConvertPairs: async (fromAsset?: string, toAsset?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (fromAsset !== undefined && fromAsset !== null) {\n                localVarQueryParameter['fromAsset'] = fromAsset;\n            }\n\n            if (toAsset !== undefined && toAsset !== null) {\n                localVarQueryParameter['toAsset'] = toAsset;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/convert/exchangeInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query order status by order ID.\n         *\n         * Weight: 50(IP)\n         *\n         * @summary Order status(USER_DATA)\n         * @param {string} [orderId] Either orderId or quoteId is required\n         * @param {string} [quoteId] Either orderId or quoteId is required\n         *\n         * @throws {RequiredError}\n         */\n        orderStatus: async (orderId?: string, quoteId?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (quoteId !== undefined && quoteId !== null) {\n                localVarQueryParameter['quoteId'] = quoteId;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/convert/orderStatus',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Request a quote for the requested token pairs\n         *\n         * Either fromAmount or toAmount should be sent\n         * `quoteId` will be returned only if you have enough funds to convert\n         *\n         * Weight: 50(IP)\n         *\n         * @summary Send Quote Request(USER_DATA)\n         * @param {string} fromAsset\n         * @param {string} toAsset\n         * @param {number} [fromAmount] When specified, it is the amount you will be debited after the conversion\n         * @param {number} [toAmount] When specified, it is the amount you will be credited after the conversion\n         * @param {string} [validTime] 10s, default 10s\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        sendQuoteRequest: async (\n            fromAsset: string,\n            toAsset: string,\n            fromAmount?: number,\n            toAmount?: number,\n            validTime?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'fromAsset' is not null or undefined\n            assertParamExists('sendQuoteRequest', 'fromAsset', fromAsset);\n            // verify required parameter 'toAsset' is not null or undefined\n            assertParamExists('sendQuoteRequest', 'toAsset', toAsset);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (fromAsset !== undefined && fromAsset !== null) {\n                localVarQueryParameter['fromAsset'] = fromAsset;\n            }\n\n            if (toAsset !== undefined && toAsset !== null) {\n                localVarQueryParameter['toAsset'] = toAsset;\n            }\n\n            if (fromAmount !== undefined && fromAmount !== null) {\n                localVarQueryParameter['fromAmount'] = fromAmount;\n            }\n\n            if (toAmount !== undefined && toAmount !== null) {\n                localVarQueryParameter['toAmount'] = toAmount;\n            }\n\n            if (validTime !== undefined && validTime !== null) {\n                localVarQueryParameter['validTime'] = validTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/convert/getQuote',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * ConvertApi - interface\n * @interface ConvertApi\n */\nexport interface ConvertApiInterface {\n    /**\n     * Accept the offered quote by quote ID.\n     *\n     * Weight: 200(IP)\n     *\n     * @summary Accept the offered quote (USER_DATA)\n     * @param {AcceptTheOfferedQuoteRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApiInterface\n     */\n    acceptTheOfferedQuote(\n        requestParameters: AcceptTheOfferedQuoteRequest\n    ): Promise<RestApiResponse<AcceptTheOfferedQuoteResponse>>;\n    /**\n     * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n     *\n     * User needs to supply either or both of the input parameter\n     * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n     * Asset BNFCR is only available to convert for MICA region users.\n     *\n     * Weight: 20(IP)\n     *\n     * @summary List All Convert Pairs\n     * @param {ListAllConvertPairsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApiInterface\n     */\n    listAllConvertPairs(\n        requestParameters?: ListAllConvertPairsRequest\n    ): Promise<RestApiResponse<ListAllConvertPairsResponse>>;\n    /**\n     * Query order status by order ID.\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Order status(USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApiInterface\n     */\n    orderStatus(\n        requestParameters?: OrderStatusRequest\n    ): Promise<RestApiResponse<OrderStatusResponse>>;\n    /**\n     * Request a quote for the requested token pairs\n     *\n     * Either fromAmount or toAmount should be sent\n     * `quoteId` will be returned only if you have enough funds to convert\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Send Quote Request(USER_DATA)\n     * @param {SendQuoteRequestRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApiInterface\n     */\n    sendQuoteRequest(\n        requestParameters: SendQuoteRequestRequest\n    ): Promise<RestApiResponse<SendQuoteRequestResponse>>;\n}\n\n/**\n * Request parameters for acceptTheOfferedQuote operation in ConvertApi.\n * @interface AcceptTheOfferedQuoteRequest\n */\nexport interface AcceptTheOfferedQuoteRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof ConvertApiAcceptTheOfferedQuote\n     */\n    readonly quoteId: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof ConvertApiAcceptTheOfferedQuote\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for listAllConvertPairs operation in ConvertApi.\n * @interface ListAllConvertPairsRequest\n */\nexport interface ListAllConvertPairsRequest {\n    /**\n     * User spends coin\n     * @type {string}\n     * @memberof ConvertApiListAllConvertPairs\n     */\n    readonly fromAsset?: string;\n\n    /**\n     * User receives coin\n     * @type {string}\n     * @memberof ConvertApiListAllConvertPairs\n     */\n    readonly toAsset?: string;\n}\n\n/**\n * Request parameters for orderStatus operation in ConvertApi.\n * @interface OrderStatusRequest\n */\nexport interface OrderStatusRequest {\n    /**\n     * Either orderId or quoteId is required\n     * @type {string}\n     * @memberof ConvertApiOrderStatus\n     */\n    readonly orderId?: string;\n\n    /**\n     * Either orderId or quoteId is required\n     * @type {string}\n     * @memberof ConvertApiOrderStatus\n     */\n    readonly quoteId?: string;\n}\n\n/**\n * Request parameters for sendQuoteRequest operation in ConvertApi.\n * @interface SendQuoteRequestRequest\n */\nexport interface SendQuoteRequestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly fromAsset: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly toAsset: string;\n\n    /**\n     * When specified, it is the amount you will be debited after the conversion\n     * @type {number}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly fromAmount?: number;\n\n    /**\n     * When specified, it is the amount you will be credited after the conversion\n     * @type {number}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly toAmount?: number;\n\n    /**\n     * 10s, default 10s\n     * @type {string}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly validTime?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof ConvertApiSendQuoteRequest\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * ConvertApi - object-oriented interface\n * @class ConvertApi\n */\nexport class ConvertApi implements ConvertApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = ConvertApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Accept the offered quote by quote ID.\n     *\n     * Weight: 200(IP)\n     *\n     * @summary Accept the offered quote (USER_DATA)\n     * @param {AcceptTheOfferedQuoteRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AcceptTheOfferedQuoteResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Accept-Quote Binance API Documentation}\n     */\n    public async acceptTheOfferedQuote(\n        requestParameters: AcceptTheOfferedQuoteRequest\n    ): Promise<RestApiResponse<AcceptTheOfferedQuoteResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.acceptTheOfferedQuote(\n            requestParameters?.quoteId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AcceptTheOfferedQuoteResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n     *\n     * User needs to supply either or both of the input parameter\n     * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n     * Asset BNFCR is only available to convert for MICA region users.\n     *\n     * Weight: 20(IP)\n     *\n     * @summary List All Convert Pairs\n     * @param {ListAllConvertPairsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ListAllConvertPairsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/ Binance API Documentation}\n     */\n    public async listAllConvertPairs(\n        requestParameters: ListAllConvertPairsRequest = {}\n    ): Promise<RestApiResponse<ListAllConvertPairsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.listAllConvertPairs(\n            requestParameters?.fromAsset,\n            requestParameters?.toAsset\n        );\n        return sendRequest<ListAllConvertPairsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query order status by order ID.\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Order status(USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderStatusResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Order-Status Binance API Documentation}\n     */\n    public async orderStatus(\n        requestParameters: OrderStatusRequest = {}\n    ): Promise<RestApiResponse<OrderStatusResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderStatus(\n            requestParameters?.orderId,\n            requestParameters?.quoteId\n        );\n        return sendRequest<OrderStatusResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Request a quote for the requested token pairs\n     *\n     * Either fromAmount or toAmount should be sent\n     * `quoteId` will be returned only if you have enough funds to convert\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Send Quote Request(USER_DATA)\n     * @param {SendQuoteRequestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SendQuoteRequestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof ConvertApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Send-quote-request Binance API Documentation}\n     */\n    public async sendQuoteRequest(\n        requestParameters: SendQuoteRequestRequest\n    ): Promise<RestApiResponse<SendQuoteRequestResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.sendQuoteRequest(\n            requestParameters?.fromAsset,\n            requestParameters?.toAsset,\n            requestParameters?.fromAmount,\n            requestParameters?.toAmount,\n            requestParameters?.validTime,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<SendQuoteRequestResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    BasisResponse,\n    CheckServerTimeResponse,\n    CompositeIndexSymbolInformationResponse,\n    CompressedAggregateTradesListResponse,\n    ContinuousContractKlineCandlestickDataResponse,\n    ExchangeInformationResponse,\n    GetFundingRateHistoryResponse,\n    GetFundingRateInfoResponse,\n    IndexPriceKlineCandlestickDataResponse,\n    KlineCandlestickDataResponse,\n    LongShortRatioResponse,\n    MarkPriceKlineCandlestickDataResponse,\n    MarkPriceResponse,\n    MultiAssetsModeAssetIndexResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OpenInterestStatisticsResponse,\n    OrderBookResponse,\n    PremiumIndexKlineDataResponse,\n    QuarterlyContractSettlementPriceResponse,\n    QueryIndexPriceConstituentsResponse,\n    QueryInsuranceFundBalanceSnapshotResponse,\n    RecentTradesListResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\n    SymbolPriceTickerV2Response,\n    TakerBuySellVolumeResponse,\n    Ticker24hrPriceChangeStatisticsResponse,\n    TopTraderLongShortRatioAccountsResponse,\n    TopTraderLongShortRatioPositionsResponse,\n} from '../types';\n\n/**\n * MarketDataApi - axios parameter creator\n */\nconst MarketDataApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Query future basis\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 30 days is available.\n         *\n         * Weight: 0\n         *\n         * @summary Basis\n         * @param {string} pair\n         * @param {BasisContractTypeEnum} contractType\n         * @param {BasisPeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} limit Default 30,Max 500\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        basis: async (\n            pair: string,\n            contractType: BasisContractTypeEnum,\n            period: BasisPeriodEnum,\n            limit: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('basis', 'pair', pair);\n            // verify required parameter 'contractType' is not null or undefined\n            assertParamExists('basis', 'contractType', contractType);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('basis', 'period', period);\n            // verify required parameter 'limit' is not null or undefined\n            assertParamExists('basis', 'limit', limit);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\n            }\n\n            if (contractType !== undefined && contractType !== null) {\n                localVarQueryParameter['contractType'] = contractType;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/basis',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test connectivity to the Rest API and get the current server time.\n         *\n         * Weight: 1\n         *\n         * @summary Check Server Time\n         *\n         * @throws {RequiredError}\n         */\n        checkServerTime: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/time',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query composite index symbol information\n         *\n         * Only for composite index symbols\n         *\n         * Weight: 1\n         *\n         * @summary Composite Index Symbol Information\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        compositeIndexSymbolInformation: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/indexInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get compressed, aggregate market trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\n         *\n         *\n         * support querying futures trade histories that are not older than one year\n         * If both `startTime` and `endTime` are sent, time between `startTime` and `endTime` must be less than 1 hour.\n         * If `fromId`, `startTime`, and `endTime` are not sent, the most recent aggregate trades will be returned.\n         * Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.\n         * Sending both `startTime`/`endTime` and `fromId` might cause response timeout, please send either `fromId` or `startTime`/`endTime`\n         *\n         * Weight: 20\n         *\n         * @summary Compressed/Aggregate Trades List\n         * @param {string} symbol\n         * @param {number} [fromId] ID to get aggregate trades from INCLUSIVE.\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        compressedAggregateTradesList: async (\n            symbol: string,\n            fromId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('compressedAggregateTradesList', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/aggTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for a specific contract type.\n         * Klines are uniquely identified by their open time.\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         * Contract type:\n         * PERPETUAL\n         * CURRENT_QUARTER\n         * NEXT_QUARTER\n         *\n         * Weight: based on parameter LIMIT\n         * | LIMIT       | weight |\n         * | ----------- | ------ |\n         * | [1,100)     | 1      |\n         * | [100, 500)  | 2      |\n         * | [500, 1000] | 5      |\n         * | > 1000      | 10     |\n         *\n         * @summary Continuous Contract Kline/Candlestick Data\n         * @param {string} pair\n         * @param {ContinuousContractKlineCandlestickDataContractTypeEnum} contractType\n         * @param {ContinuousContractKlineCandlestickDataIntervalEnum} interval\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        continuousContractKlineCandlestickData: async (\n            pair: string,\n            contractType: ContinuousContractKlineCandlestickDataContractTypeEnum,\n            interval: ContinuousContractKlineCandlestickDataIntervalEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('continuousContractKlineCandlestickData', 'pair', pair);\n            // verify required parameter 'contractType' is not null or undefined\n            assertParamExists(\n                'continuousContractKlineCandlestickData',\n                'contractType',\n                contractType\n            );\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('continuousContractKlineCandlestickData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\n            }\n\n            if (contractType !== undefined && contractType !== null) {\n                localVarQueryParameter['contractType'] = contractType;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/continuousKlines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Current exchange trading rules and symbol information\n         *\n         * Weight: 1\n         *\n         * @summary Exchange Information\n         *\n         * @throws {RequiredError}\n         */\n        exchangeInformation: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/exchangeInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get Funding Rate History\n         *\n         *\n         * If `startTime` and `endTime` are not sent, the most recent `limit` datas are returned.\n         * If the number of data between `startTime` and `endTime` is larger than `limit`, return as `startTime` + `limit`.\n         * In ascending order.\n         *\n         * Weight: share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n         *\n         * @summary Get Funding Rate History\n         * @param {string} [symbol]\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        getFundingRateHistory: async (\n            symbol?: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/fundingRate',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n         *\n         * Weight: 0\n         * share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n         *\n         * @summary Get Funding Rate Info\n         *\n         * @throws {RequiredError}\n         */\n        getFundingRateInfo: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/fundingInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for the index price of a pair.\n         * Klines are uniquely identified by their open time.\n         *\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         *\n         * Weight: based on parameter LIMIT\n         * | LIMIT       | weight |\n         * | ----------- | ------ |\n         * | [1,100)     | 1      |\n         * | [100, 500)  | 2      |\n         * | [500, 1000] | 5      |\n         * | > 1000      | 10     |\n         *\n         * @summary Index Price Kline/Candlestick Data\n         * @param {string} pair\n         * @param {IndexPriceKlineCandlestickDataIntervalEnum} interval\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        indexPriceKlineCandlestickData: async (\n            pair: string,\n            interval: IndexPriceKlineCandlestickDataIntervalEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('indexPriceKlineCandlestickData', 'pair', pair);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('indexPriceKlineCandlestickData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/indexPriceKlines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for a symbol.\n         * Klines are uniquely identified by their open time.\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         *\n         * Weight: based on parameter LIMIT\n         * | LIMIT       | weight |\n         * | ----------- | ------ |\n         * | [1,100)     | 1      |\n         * | [100, 500)  | 2      |\n         * | [500, 1000] | 5      |\n         * | > 1000      | 10     |\n         *\n         * @summary Kline/Candlestick Data\n         * @param {string} symbol\n         * @param {KlineCandlestickDataIntervalEnum} interval\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        klineCandlestickData: async (\n            symbol: string,\n            interval: KlineCandlestickDataIntervalEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klineCandlestickData', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klineCandlestickData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/klines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query symbol Long/Short Ratio\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 30 days is available.\n         * IP rate limit 1000 requests/5min\n         *\n         * Weight: 0\n         *\n         * @summary Long/Short Ratio\n         * @param {string} symbol\n         * @param {LongShortRatioPeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        longShortRatio: async (\n            symbol: string,\n            period: LongShortRatioPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('longShortRatio', 'symbol', symbol);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('longShortRatio', 'period', period);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/globalLongShortAccountRatio',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Mark Price and Funding Rate\n         *\n         * Weight: 1\n         *\n         * @summary Mark Price\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        markPrice: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/premiumIndex',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for the mark price of a symbol.\n         * Klines are uniquely identified by their open time.\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         *\n         * Weight: based on parameter LIMIT\n         * | LIMIT       | weight |\n         * | ----------- | ------ |\n         * | [1,100)     | 1      |\n         * | [100, 500)  | 2      |\n         * | [500, 1000] | 5      |\n         * | > 1000      | 10     |\n         *\n         * @summary Mark Price Kline/Candlestick Data\n         * @param {string} symbol\n         * @param {MarkPriceKlineCandlestickDataIntervalEnum} interval\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        markPriceKlineCandlestickData: async (\n            symbol: string,\n            interval: MarkPriceKlineCandlestickDataIntervalEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('markPriceKlineCandlestickData', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('markPriceKlineCandlestickData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/markPriceKlines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * asset index for Multi-Assets mode\n         *\n         * Weight: 1 for a single symbol; 10 when the symbol parameter is omitted\n         *\n         * @summary Multi-Assets Mode Asset Index\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        multiAssetsModeAssetIndex: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/assetIndex',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get older market historical trades.\n         *\n         * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n         * Only supports data from within the last three months\n         *\n         * Weight: 20\n         *\n         * @summary Old Trades Lookup (MARKET_DATA)\n         * @param {string} symbol\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [fromId] ID to get aggregate trades from INCLUSIVE.\n         *\n         * @throws {RequiredError}\n         */\n        oldTradesLookup: async (\n            symbol: string,\n            limit?: number,\n            fromId?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('oldTradesLookup', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/historicalTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get present open interest of a specific symbol.\n         *\n         * Weight: 1\n         *\n         * @summary Open Interest\n         * @param {string} symbol\n         *\n         * @throws {RequiredError}\n         */\n        openInterest: async (symbol: string): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('openInterest', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/openInterest',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Open Interest Statistics\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 1 month is available.\n         * IP rate limit 1000 requests/5min\n         *\n         * Weight: 0\n         *\n         * @summary Open Interest Statistics\n         * @param {string} symbol\n         * @param {OpenInterestStatisticsPeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        openInterestStatistics: async (\n            symbol: string,\n            period: OpenInterestStatisticsPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('openInterestStatistics', 'symbol', symbol);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('openInterestStatistics', 'period', period);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/openInterestHist',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query symbol orderbook\n         *\n         * Weight: Adjusted based on the limit:\n         * | Limit         | Weight |\n         * | ------------- | ------ |\n         * | 5, 10, 20, 50 | 2      |\n         * | 100           | 5      |\n         * | 500           | 10     |\n         * | 1000          | 20     |\n         *\n         * @summary Order Book\n         * @param {string} symbol\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        orderBook: async (symbol: string, limit?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderBook', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/depth',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Premium index kline bars of a symbol. Klines are uniquely identified by their open time.\n         *\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         *\n         * Weight: based on parameter LIMIT\n         * | LIMIT       | weight |\n         * | ----------- | ------ |\n         * | [1,100)     | 1      |\n         * | [100, 500)  | 2      |\n         * | [500, 1000] | 5      |\n         * | > 1000      | 10     |\n         *\n         * @summary Premium index Kline Data\n         * @param {string} symbol\n         * @param {PremiumIndexKlineDataIntervalEnum} interval\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        premiumIndexKlineData: async (\n            symbol: string,\n            interval: PremiumIndexKlineDataIntervalEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('premiumIndexKlineData', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('premiumIndexKlineData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/premiumIndexKlines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Latest price for a symbol or symbols.\n         *\n         * Weight: 0\n         *\n         * @summary Quarterly Contract Settlement Price\n         * @param {string} pair\n         *\n         * @throws {RequiredError}\n         */\n        quarterlyContractSettlementPrice: async (pair: string): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('quarterlyContractSettlementPrice', 'pair', pair);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/delivery-price',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query index price constituents\n         *\n         * Weight: 2\n         *\n         * @summary Query Index Price Constituents\n         * @param {string} symbol\n         *\n         * @throws {RequiredError}\n         */\n        queryIndexPriceConstituents: async (symbol: string): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('queryIndexPriceConstituents', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/constituents',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query Insurance Fund Balance Snapshot\n         *\n         * Weight: 1\n         *\n         * @summary Query Insurance Fund Balance Snapshot\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        queryInsuranceFundBalanceSnapshot: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/insuranceBalance',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get recent market trades\n         *\n         * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n         *\n         * Weight: 5\n         *\n         * @summary Recent Trades List\n         * @param {string} symbol\n         * @param {number} [limit] Default 100; max 1000\n         *\n         * @throws {RequiredError}\n         */\n        recentTradesList: async (symbol: string, limit?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('recentTradesList', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/trades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Best price/qty on the order book for a symbol or symbols.\n         *\n         * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n         * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n         *\n         * Weight: 2 for a single symbol;\n         * 5 when the symbol parameter is omitted\n         *\n         * @summary Symbol Order Book Ticker\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        symbolOrderBookTicker: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/ticker/bookTicker',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Latest price for a symbol or symbols.\n         *\n         * If the symbol is not sent, prices for all symbols will be returned in an array.\n         *\n         * Weight: 1 for a single symbol;\n         * 2 when the symbol parameter is omitted\n         *\n         * @summary Symbol Price Ticker\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        symbolPriceTicker: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/ticker/price',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Latest price for a symbol or symbols.\n         *\n         * If the symbol is not sent, prices for all symbols will be returned in an array.\n         * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n         *\n         * Weight: 1 for a single symbol;\n         * 2 when the symbol parameter is omitted\n         *\n         * @summary Symbol Price Ticker V2\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        symbolPriceTickerV2: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v2/ticker/price',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Taker Buy/Sell Volume\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 30 days is available.\n         * IP rate limit 1000 requests/5min\n         *\n         * Weight: 0\n         *\n         * @summary Taker Buy/Sell Volume\n         * @param {string} symbol\n         * @param {TakerBuySellVolumePeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        takerBuySellVolume: async (\n            symbol: string,\n            period: TakerBuySellVolumePeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('takerBuySellVolume', 'symbol', symbol);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('takerBuySellVolume', 'period', period);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/takerlongshortRatio',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test connectivity to the Rest API.\n         *\n         * Weight: 1\n         *\n         * @summary Test Connectivity\n         *\n         * @throws {RequiredError}\n         */\n        testConnectivity: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/ping',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * 24 hour rolling window price change statistics.\n         **Careful** when accessing this with no symbol.\n         *\n         * If the symbol is not sent, tickers for all symbols will be returned in an array.\n         *\n         * Weight: 1 for a single symbol;\n         * 40 when the symbol parameter is omitted\n         *\n         * @summary 24hr Ticker Price Change Statistics\n         * @param {string} [symbol]\n         *\n         * @throws {RequiredError}\n         */\n        ticker24hrPriceChangeStatistics: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/ticker/24hr',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * The proportion of net long and net short accounts to total accounts of the top 20% users with the highest margin balance. Each account is counted once only.\n         * Long Account % = Accounts of top traders with net long positions / Total accounts of top traders with open positions\n         * Short Account % = Accounts of top traders with net short positions / Total accounts of top traders with open positions\n         * Long/Short Ratio (Accounts) = Long Account % / Short Account %\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 30 days is available.\n         * IP rate limit 1000 requests/5min\n         *\n         * Weight: 0\n         *\n         * @summary Top Trader Long/Short Ratio (Accounts)\n         * @param {string} symbol\n         * @param {TopTraderLongShortRatioAccountsPeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        topTraderLongShortRatioAccounts: async (\n            symbol: string,\n            period: TopTraderLongShortRatioAccountsPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('topTraderLongShortRatioAccounts', 'symbol', symbol);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('topTraderLongShortRatioAccounts', 'period', period);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/topLongShortAccountRatio',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * The proportion of net long and net short positions to total open positions of the top 20% users with the highest margin balance.\n         * Long Position % = Long positions of top traders / Total open positions of top traders\n         * Short Position % = Short positions of top traders / Total open positions of top traders\n         * Long/Short Ratio (Positions) = Long Position % / Short Position %\n         *\n         * If startTime and endTime are not sent, the most recent data is returned.\n         * Only the data of the latest 30 days is available.\n         * IP rate limit 1000 requests/5min\n         *\n         * Weight: 0\n         *\n         * @summary Top Trader Long/Short Ratio (Positions)\n         * @param {string} symbol\n         * @param {TopTraderLongShortRatioPositionsPeriodEnum} period \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         *\n         * @throws {RequiredError}\n         */\n        topTraderLongShortRatioPositions: async (\n            symbol: string,\n            period: TopTraderLongShortRatioPositionsPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('topTraderLongShortRatioPositions', 'symbol', symbol);\n            // verify required parameter 'period' is not null or undefined\n            assertParamExists('topTraderLongShortRatioPositions', 'period', period);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (period !== undefined && period !== null) {\n                localVarQueryParameter['period'] = period;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/futures/data/topLongShortPositionRatio',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * MarketDataApi - interface\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n    /**\n     * Query future basis\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     *\n     * Weight: 0\n     *\n     * @summary Basis\n     * @param {BasisRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    basis(requestParameters: BasisRequest): Promise<RestApiResponse<BasisResponse>>;\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>>;\n    /**\n     * Query composite index symbol information\n     *\n     * Only for composite index symbols\n     *\n     * Weight: 1\n     *\n     * @summary Composite Index Symbol Information\n     * @param {CompositeIndexSymbolInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    compositeIndexSymbolInformation(\n        requestParameters?: CompositeIndexSymbolInformationRequest\n    ): Promise<RestApiResponse<CompositeIndexSymbolInformationResponse>>;\n    /**\n     * Get compressed, aggregate market trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\n     *\n     *\n     * support querying futures trade histories that are not older than one year\n     * If both `startTime` and `endTime` are sent, time between `startTime` and `endTime` must be less than 1 hour.\n     * If `fromId`, `startTime`, and `endTime` are not sent, the most recent aggregate trades will be returned.\n     * Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.\n     * Sending both `startTime`/`endTime` and `fromId` might cause response timeout, please send either `fromId` or `startTime`/`endTime`\n     *\n     * Weight: 20\n     *\n     * @summary Compressed/Aggregate Trades List\n     * @param {CompressedAggregateTradesListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    compressedAggregateTradesList(\n        requestParameters: CompressedAggregateTradesListRequest\n    ): Promise<RestApiResponse<CompressedAggregateTradesListResponse>>;\n    /**\n     * Kline/candlestick bars for a specific contract type.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Continuous Contract Kline/Candlestick Data\n     * @param {ContinuousContractKlineCandlestickDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    continuousContractKlineCandlestickData(\n        requestParameters: ContinuousContractKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<ContinuousContractKlineCandlestickDataResponse>>;\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>>;\n    /**\n     * Get Funding Rate History\n     *\n     *\n     * If `startTime` and `endTime` are not sent, the most recent `limit` datas are returned.\n     * If the number of data between `startTime` and `endTime` is larger than `limit`, return as `startTime` + `limit`.\n     * In ascending order.\n     *\n     * Weight: share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate History\n     * @param {GetFundingRateHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    getFundingRateHistory(\n        requestParameters?: GetFundingRateHistoryRequest\n    ): Promise<RestApiResponse<GetFundingRateHistoryResponse>>;\n    /**\n     * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n     *\n     * Weight: 0\n     * share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate Info\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    getFundingRateInfo(): Promise<RestApiResponse<GetFundingRateInfoResponse>>;\n    /**\n     * Kline/candlestick bars for the index price of a pair.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Index Price Kline/Candlestick Data\n     * @param {IndexPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    indexPriceKlineCandlestickData(\n        requestParameters: IndexPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<IndexPriceKlineCandlestickDataResponse>>;\n    /**\n     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>>;\n    /**\n     * Query symbol Long/Short Ratio\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Long/Short Ratio\n     * @param {LongShortRatioRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    longShortRatio(\n        requestParameters: LongShortRatioRequest\n    ): Promise<RestApiResponse<LongShortRatioResponse>>;\n    /**\n     * Mark Price and Funding Rate\n     *\n     * Weight: 1\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    markPrice(requestParameters?: MarkPriceRequest): Promise<RestApiResponse<MarkPriceResponse>>;\n    /**\n     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Mark Price Kline/Candlestick Data\n     * @param {MarkPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    markPriceKlineCandlestickData(\n        requestParameters: MarkPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<MarkPriceKlineCandlestickDataResponse>>;\n    /**\n     * asset index for Multi-Assets mode\n     *\n     * Weight: 1 for a single symbol; 10 when the symbol parameter is omitted\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    multiAssetsModeAssetIndex(\n        requestParameters?: MultiAssetsModeAssetIndexRequest\n    ): Promise<RestApiResponse<MultiAssetsModeAssetIndexResponse>>;\n    /**\n     * Get older market historical trades.\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     * Only supports data from within the last three months\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>>;\n    /**\n     * Get present open interest of a specific symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>>;\n    /**\n     * Open Interest Statistics\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 1 month is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest Statistics\n     * @param {OpenInterestStatisticsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    openInterestStatistics(\n        requestParameters: OpenInterestStatisticsRequest\n    ): Promise<RestApiResponse<OpenInterestStatisticsResponse>>;\n    /**\n     * Query symbol orderbook\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    orderBook(requestParameters: OrderBookRequest): Promise<RestApiResponse<OrderBookResponse>>;\n    /**\n     * Premium index kline bars of a symbol. Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Premium index Kline Data\n     * @param {PremiumIndexKlineDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    premiumIndexKlineData(\n        requestParameters: PremiumIndexKlineDataRequest\n    ): Promise<RestApiResponse<PremiumIndexKlineDataResponse>>;\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * Weight: 0\n     *\n     * @summary Quarterly Contract Settlement Price\n     * @param {QuarterlyContractSettlementPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    quarterlyContractSettlementPrice(\n        requestParameters: QuarterlyContractSettlementPriceRequest\n    ): Promise<RestApiResponse<QuarterlyContractSettlementPriceResponse>>;\n    /**\n     * Query index price constituents\n     *\n     * Weight: 2\n     *\n     * @summary Query Index Price Constituents\n     * @param {QueryIndexPriceConstituentsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    queryIndexPriceConstituents(\n        requestParameters: QueryIndexPriceConstituentsRequest\n    ): Promise<RestApiResponse<QueryIndexPriceConstituentsResponse>>;\n    /**\n     * Query Insurance Fund Balance Snapshot\n     *\n     * Weight: 1\n     *\n     * @summary Query Insurance Fund Balance Snapshot\n     * @param {QueryInsuranceFundBalanceSnapshotRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    queryInsuranceFundBalanceSnapshot(\n        requestParameters?: QueryInsuranceFundBalanceSnapshotRequest\n    ): Promise<RestApiResponse<QueryInsuranceFundBalanceSnapshotResponse>>;\n    /**\n     * Get recent market trades\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>>;\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    symbolOrderBookTicker(\n        requestParameters?: SymbolOrderBookTickerRequest\n    ): Promise<RestApiResponse<SymbolOrderBookTickerResponse>>;\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    symbolPriceTicker(\n        requestParameters?: SymbolPriceTickerRequest\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>>;\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker V2\n     * @param {SymbolPriceTickerV2Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    symbolPriceTickerV2(\n        requestParameters?: SymbolPriceTickerV2Request\n    ): Promise<RestApiResponse<SymbolPriceTickerV2Response>>;\n    /**\n     * Taker Buy/Sell Volume\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Taker Buy/Sell Volume\n     * @param {TakerBuySellVolumeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    takerBuySellVolume(\n        requestParameters: TakerBuySellVolumeRequest\n    ): Promise<RestApiResponse<TakerBuySellVolumeResponse>>;\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    testConnectivity(): Promise<RestApiResponse<void>>;\n    /**\n     * 24 hour rolling window price change statistics.\n     **Careful** when accessing this with no symbol.\n     *\n     * If the symbol is not sent, tickers for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 40 when the symbol parameter is omitted\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    ticker24hrPriceChangeStatistics(\n        requestParameters?: Ticker24hrPriceChangeStatisticsRequest\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>;\n    /**\n     * The proportion of net long and net short accounts to total accounts of the top 20% users with the highest margin balance. Each account is counted once only.\n     * Long Account % = Accounts of top traders with net long positions / Total accounts of top traders with open positions\n     * Short Account % = Accounts of top traders with net short positions / Total accounts of top traders with open positions\n     * Long/Short Ratio (Accounts) = Long Account % / Short Account %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Accounts)\n     * @param {TopTraderLongShortRatioAccountsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    topTraderLongShortRatioAccounts(\n        requestParameters: TopTraderLongShortRatioAccountsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioAccountsResponse>>;\n    /**\n     * The proportion of net long and net short positions to total open positions of the top 20% users with the highest margin balance.\n     * Long Position % = Long positions of top traders / Total open positions of top traders\n     * Short Position % = Short positions of top traders / Total open positions of top traders\n     * Long/Short Ratio (Positions) = Long Position % / Short Position %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Positions)\n     * @param {TopTraderLongShortRatioPositionsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    topTraderLongShortRatioPositions(\n        requestParameters: TopTraderLongShortRatioPositionsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioPositionsResponse>>;\n}\n\n/**\n * Request parameters for basis operation in MarketDataApi.\n * @interface BasisRequest\n */\nexport interface BasisRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiBasis\n     */\n    readonly pair: string;\n\n    /**\n     *\n     * @type {'PERPETUAL' | 'CURRENT_MONTH' | 'NEXT_MONTH' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'PERPETUAL_DELIVERING'}\n     * @memberof MarketDataApiBasis\n     */\n    readonly contractType: BasisContractTypeEnum;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiBasis\n     */\n    readonly period: BasisPeriodEnum;\n\n    /**\n     * Default 30,Max 500\n     * @type {number}\n     * @memberof MarketDataApiBasis\n     */\n    readonly limit: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiBasis\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiBasis\n     */\n    readonly endTime?: number;\n}\n\n/**\n * Request parameters for compositeIndexSymbolInformation operation in MarketDataApi.\n * @interface CompositeIndexSymbolInformationRequest\n */\nexport interface CompositeIndexSymbolInformationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiCompositeIndexSymbolInformation\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for compressedAggregateTradesList operation in MarketDataApi.\n * @interface CompressedAggregateTradesListRequest\n */\nexport interface CompressedAggregateTradesListRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiCompressedAggregateTradesList\n     */\n    readonly symbol: string;\n\n    /**\n     * ID to get aggregate trades from INCLUSIVE.\n     * @type {number}\n     * @memberof MarketDataApiCompressedAggregateTradesList\n     */\n    readonly fromId?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiCompressedAggregateTradesList\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiCompressedAggregateTradesList\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiCompressedAggregateTradesList\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for continuousContractKlineCandlestickData operation in MarketDataApi.\n * @interface ContinuousContractKlineCandlestickDataRequest\n */\nexport interface ContinuousContractKlineCandlestickDataRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly pair: string;\n\n    /**\n     *\n     * @type {'PERPETUAL' | 'CURRENT_MONTH' | 'NEXT_MONTH' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'PERPETUAL_DELIVERING'}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly contractType: ContinuousContractKlineCandlestickDataContractTypeEnum;\n\n    /**\n     *\n     * @type {'1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly interval: ContinuousContractKlineCandlestickDataIntervalEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for getFundingRateHistory operation in MarketDataApi.\n * @interface GetFundingRateHistoryRequest\n */\nexport interface GetFundingRateHistoryRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiGetFundingRateHistory\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistory\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistory\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistory\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for indexPriceKlineCandlestickData operation in MarketDataApi.\n * @interface IndexPriceKlineCandlestickDataRequest\n */\nexport interface IndexPriceKlineCandlestickDataRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiIndexPriceKlineCandlestickData\n     */\n    readonly pair: string;\n\n    /**\n     *\n     * @type {'1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketDataApiIndexPriceKlineCandlestickData\n     */\n    readonly interval: IndexPriceKlineCandlestickDataIntervalEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiIndexPriceKlineCandlestickData\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiIndexPriceKlineCandlestickData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiIndexPriceKlineCandlestickData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for klineCandlestickData operation in MarketDataApi.\n * @interface KlineCandlestickDataRequest\n */\nexport interface KlineCandlestickDataRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly interval: KlineCandlestickDataIntervalEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for longShortRatio operation in MarketDataApi.\n * @interface LongShortRatioRequest\n */\nexport interface LongShortRatioRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly symbol: string;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly period: LongShortRatioPeriodEnum;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly endTime?: number;\n}\n\n/**\n * Request parameters for markPrice operation in MarketDataApi.\n * @interface MarkPriceRequest\n */\nexport interface MarkPriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiMarkPrice\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for markPriceKlineCandlestickData operation in MarketDataApi.\n * @interface MarkPriceKlineCandlestickDataRequest\n */\nexport interface MarkPriceKlineCandlestickDataRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiMarkPriceKlineCandlestickData\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketDataApiMarkPriceKlineCandlestickData\n     */\n    readonly interval: MarkPriceKlineCandlestickDataIntervalEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiMarkPriceKlineCandlestickData\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiMarkPriceKlineCandlestickData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiMarkPriceKlineCandlestickData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for multiAssetsModeAssetIndex operation in MarketDataApi.\n * @interface MultiAssetsModeAssetIndexRequest\n */\nexport interface MultiAssetsModeAssetIndexRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiMultiAssetsModeAssetIndex\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for oldTradesLookup operation in MarketDataApi.\n * @interface OldTradesLookupRequest\n */\nexport interface OldTradesLookupRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly symbol: string;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly limit?: number;\n\n    /**\n     * ID to get aggregate trades from INCLUSIVE.\n     * @type {number}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly fromId?: number;\n}\n\n/**\n * Request parameters for openInterest operation in MarketDataApi.\n * @interface OpenInterestRequest\n */\nexport interface OpenInterestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiOpenInterest\n     */\n    readonly symbol: string;\n}\n\n/**\n * Request parameters for openInterestStatistics operation in MarketDataApi.\n * @interface OpenInterestStatisticsRequest\n */\nexport interface OpenInterestStatisticsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly symbol: string;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly period: OpenInterestStatisticsPeriodEnum;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly endTime?: number;\n}\n\n/**\n * Request parameters for orderBook operation in MarketDataApi.\n * @interface OrderBookRequest\n */\nexport interface OrderBookRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly symbol: string;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for premiumIndexKlineData operation in MarketDataApi.\n * @interface PremiumIndexKlineDataRequest\n */\nexport interface PremiumIndexKlineDataRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiPremiumIndexKlineData\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketDataApiPremiumIndexKlineData\n     */\n    readonly interval: PremiumIndexKlineDataIntervalEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiPremiumIndexKlineData\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiPremiumIndexKlineData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiPremiumIndexKlineData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for quarterlyContractSettlementPrice operation in MarketDataApi.\n * @interface QuarterlyContractSettlementPriceRequest\n */\nexport interface QuarterlyContractSettlementPriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiQuarterlyContractSettlementPrice\n     */\n    readonly pair: string;\n}\n\n/**\n * Request parameters for queryIndexPriceConstituents operation in MarketDataApi.\n * @interface QueryIndexPriceConstituentsRequest\n */\nexport interface QueryIndexPriceConstituentsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiQueryIndexPriceConstituents\n     */\n    readonly symbol: string;\n}\n\n/**\n * Request parameters for queryInsuranceFundBalanceSnapshot operation in MarketDataApi.\n * @interface QueryInsuranceFundBalanceSnapshotRequest\n */\nexport interface QueryInsuranceFundBalanceSnapshotRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiQueryInsuranceFundBalanceSnapshot\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for recentTradesList operation in MarketDataApi.\n * @interface RecentTradesListRequest\n */\nexport interface RecentTradesListRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiRecentTradesList\n     */\n    readonly symbol: string;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiRecentTradesList\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for symbolOrderBookTicker operation in MarketDataApi.\n * @interface SymbolOrderBookTickerRequest\n */\nexport interface SymbolOrderBookTickerRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiSymbolOrderBookTicker\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for symbolPriceTicker operation in MarketDataApi.\n * @interface SymbolPriceTickerRequest\n */\nexport interface SymbolPriceTickerRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTicker\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for symbolPriceTickerV2 operation in MarketDataApi.\n * @interface SymbolPriceTickerV2Request\n */\nexport interface SymbolPriceTickerV2Request {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTickerV2\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for takerBuySellVolume operation in MarketDataApi.\n * @interface TakerBuySellVolumeRequest\n */\nexport interface TakerBuySellVolumeRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly symbol: string;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly period: TakerBuySellVolumePeriodEnum;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly endTime?: number;\n}\n\n/**\n * Request parameters for ticker24hrPriceChangeStatistics operation in MarketDataApi.\n * @interface Ticker24hrPriceChangeStatisticsRequest\n */\nexport interface Ticker24hrPriceChangeStatisticsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiTicker24hrPriceChangeStatistics\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for topTraderLongShortRatioAccounts operation in MarketDataApi.\n * @interface TopTraderLongShortRatioAccountsRequest\n */\nexport interface TopTraderLongShortRatioAccountsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiTopTraderLongShortRatioAccounts\n     */\n    readonly symbol: string;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiTopTraderLongShortRatioAccounts\n     */\n    readonly period: TopTraderLongShortRatioAccountsPeriodEnum;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioAccounts\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioAccounts\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioAccounts\n     */\n    readonly endTime?: number;\n}\n\n/**\n * Request parameters for topTraderLongShortRatioPositions operation in MarketDataApi.\n * @interface TopTraderLongShortRatioPositionsRequest\n */\nexport interface TopTraderLongShortRatioPositionsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly symbol: string;\n\n    /**\n     * \"5m\",\"15m\",\"30m\",\"1h\",\"2h\",\"4h\",\"6h\",\"12h\",\"1d\"\n     * @type {'5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '12h' | '1d'}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly period: TopTraderLongShortRatioPositionsPeriodEnum;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly endTime?: number;\n}\n\n/**\n * MarketDataApi - object-oriented interface\n * @class MarketDataApi\n */\nexport class MarketDataApi implements MarketDataApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = MarketDataApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Query future basis\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     *\n     * Weight: 0\n     *\n     * @summary Basis\n     * @param {BasisRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<BasisResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Basis Binance API Documentation}\n     */\n    public async basis(requestParameters: BasisRequest): Promise<RestApiResponse<BasisResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.basis(\n            requestParameters?.pair,\n            requestParameters?.contractType,\n            requestParameters?.period,\n            requestParameters?.limit,\n            requestParameters?.startTime,\n            requestParameters?.endTime\n        );\n        return sendRequest<BasisResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     * @returns {Promise<RestApiResponse<CheckServerTimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Check-Server-Time Binance API Documentation}\n     */\n    public async checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.checkServerTime();\n        return sendRequest<CheckServerTimeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query composite index symbol information\n     *\n     * Only for composite index symbols\n     *\n     * Weight: 1\n     *\n     * @summary Composite Index Symbol Information\n     * @param {CompositeIndexSymbolInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CompositeIndexSymbolInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Composite-Index-Symbol-Information Binance API Documentation}\n     */\n    public async compositeIndexSymbolInformation(\n        requestParameters: CompositeIndexSymbolInformationRequest = {}\n    ): Promise<RestApiResponse<CompositeIndexSymbolInformationResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.compositeIndexSymbolInformation(\n                requestParameters?.symbol\n            );\n        return sendRequest<CompositeIndexSymbolInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get compressed, aggregate market trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\n     *\n     *\n     * support querying futures trade histories that are not older than one year\n     * If both `startTime` and `endTime` are sent, time between `startTime` and `endTime` must be less than 1 hour.\n     * If `fromId`, `startTime`, and `endTime` are not sent, the most recent aggregate trades will be returned.\n     * Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.\n     * Sending both `startTime`/`endTime` and `fromId` might cause response timeout, please send either `fromId` or `startTime`/`endTime`\n     *\n     * Weight: 20\n     *\n     * @summary Compressed/Aggregate Trades List\n     * @param {CompressedAggregateTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CompressedAggregateTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Compressed-Aggregate-Trades-List Binance API Documentation}\n     */\n    public async compressedAggregateTradesList(\n        requestParameters: CompressedAggregateTradesListRequest\n    ): Promise<RestApiResponse<CompressedAggregateTradesListResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.compressedAggregateTradesList(\n                requestParameters?.symbol,\n                requestParameters?.fromId,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit\n            );\n        return sendRequest<CompressedAggregateTradesListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Kline/candlestick bars for a specific contract type.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Continuous Contract Kline/Candlestick Data\n     * @param {ContinuousContractKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ContinuousContractKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Continuous-Contract-Kline-Candlestick-Data Binance API Documentation}\n     */\n    public async continuousContractKlineCandlestickData(\n        requestParameters: ContinuousContractKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<ContinuousContractKlineCandlestickDataResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.continuousContractKlineCandlestickData(\n                requestParameters?.pair,\n                requestParameters?.contractType,\n                requestParameters?.interval,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit\n            );\n        return sendRequest<ContinuousContractKlineCandlestickDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     * @returns {Promise<RestApiResponse<ExchangeInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Exchange-Information Binance API Documentation}\n     */\n    public async exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.exchangeInformation();\n        return sendRequest<ExchangeInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get Funding Rate History\n     *\n     *\n     * If `startTime` and `endTime` are not sent, the most recent `limit` datas are returned.\n     * If the number of data between `startTime` and `endTime` is larger than `limit`, return as `startTime` + `limit`.\n     * In ascending order.\n     *\n     * Weight: share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate History\n     * @param {GetFundingRateHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFundingRateHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Get-Funding-Rate-History Binance API Documentation}\n     */\n    public async getFundingRateHistory(\n        requestParameters: GetFundingRateHistoryRequest = {}\n    ): Promise<RestApiResponse<GetFundingRateHistoryResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getFundingRateHistory(\n            requestParameters?.symbol,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<GetFundingRateHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n     *\n     * Weight: 0\n     * share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate Info\n     * @returns {Promise<RestApiResponse<GetFundingRateInfoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Get-Funding-Rate-Info Binance API Documentation}\n     */\n    public async getFundingRateInfo(): Promise<RestApiResponse<GetFundingRateInfoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getFundingRateInfo();\n        return sendRequest<GetFundingRateInfoResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Kline/candlestick bars for the index price of a pair.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Index Price Kline/Candlestick Data\n     * @param {IndexPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<IndexPriceKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Index-Price-Kline-Candlestick-Data Binance API Documentation}\n     */\n    public async indexPriceKlineCandlestickData(\n        requestParameters: IndexPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<IndexPriceKlineCandlestickDataResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.indexPriceKlineCandlestickData(\n                requestParameters?.pair,\n                requestParameters?.interval,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit\n            );\n        return sendRequest<IndexPriceKlineCandlestickDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<KlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Kline-Candlestick-Data Binance API Documentation}\n     */\n    public async klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.klineCandlestickData(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<KlineCandlestickDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query symbol Long/Short Ratio\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Long/Short Ratio\n     * @param {LongShortRatioRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<LongShortRatioResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Long-Short-Ratio Binance API Documentation}\n     */\n    public async longShortRatio(\n        requestParameters: LongShortRatioRequest\n    ): Promise<RestApiResponse<LongShortRatioResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.longShortRatio(\n            requestParameters?.symbol,\n            requestParameters?.period,\n            requestParameters?.limit,\n            requestParameters?.startTime,\n            requestParameters?.endTime\n        );\n        return sendRequest<LongShortRatioResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Mark Price and Funding Rate\n     *\n     * Weight: 1\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Mark-Price Binance API Documentation}\n     */\n    public async markPrice(\n        requestParameters: MarkPriceRequest = {}\n    ): Promise<RestApiResponse<MarkPriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.markPrice(\n            requestParameters?.symbol\n        );\n        return sendRequest<MarkPriceResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Mark Price Kline/Candlestick Data\n     * @param {MarkPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MarkPriceKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Mark-Price-Kline-Candlestick-Data Binance API Documentation}\n     */\n    public async markPriceKlineCandlestickData(\n        requestParameters: MarkPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<MarkPriceKlineCandlestickDataResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.markPriceKlineCandlestickData(\n                requestParameters?.symbol,\n                requestParameters?.interval,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit\n            );\n        return sendRequest<MarkPriceKlineCandlestickDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * asset index for Multi-Assets mode\n     *\n     * Weight: 1 for a single symbol; 10 when the symbol parameter is omitted\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MultiAssetsModeAssetIndexResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Multi-Assets-Mode-Asset-Index Binance API Documentation}\n     */\n    public async multiAssetsModeAssetIndex(\n        requestParameters: MultiAssetsModeAssetIndexRequest = {}\n    ): Promise<RestApiResponse<MultiAssetsModeAssetIndexResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.multiAssetsModeAssetIndex(\n            requestParameters?.symbol\n        );\n        return sendRequest<MultiAssetsModeAssetIndexResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get older market historical trades.\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     * Only supports data from within the last three months\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OldTradesLookupResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Old-Trades-Lookup Binance API Documentation}\n     */\n    public async oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.oldTradesLookup(\n            requestParameters?.symbol,\n            requestParameters?.limit,\n            requestParameters?.fromId\n        );\n        return sendRequest<OldTradesLookupResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get present open interest of a specific symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Open-Interest Binance API Documentation}\n     */\n    public async openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.openInterest(\n            requestParameters?.symbol\n        );\n        return sendRequest<OpenInterestResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Open Interest Statistics\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 1 month is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest Statistics\n     * @param {OpenInterestStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Open-Interest-Statistics Binance API Documentation}\n     */\n    public async openInterestStatistics(\n        requestParameters: OpenInterestStatisticsRequest\n    ): Promise<RestApiResponse<OpenInterestStatisticsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.openInterestStatistics(\n            requestParameters?.symbol,\n            requestParameters?.period,\n            requestParameters?.limit,\n            requestParameters?.startTime,\n            requestParameters?.endTime\n        );\n        return sendRequest<OpenInterestStatisticsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query symbol orderbook\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderBookResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Order-Book Binance API Documentation}\n     */\n    public async orderBook(\n        requestParameters: OrderBookRequest\n    ): Promise<RestApiResponse<OrderBookResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderBook(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<OrderBookResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Premium index kline bars of a symbol. Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Premium index Kline Data\n     * @param {PremiumIndexKlineDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PremiumIndexKlineDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Premium-index-Kline-Data Binance API Documentation}\n     */\n    public async premiumIndexKlineData(\n        requestParameters: PremiumIndexKlineDataRequest\n    ): Promise<RestApiResponse<PremiumIndexKlineDataResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.premiumIndexKlineData(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<PremiumIndexKlineDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * Weight: 0\n     *\n     * @summary Quarterly Contract Settlement Price\n     * @param {QuarterlyContractSettlementPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QuarterlyContractSettlementPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Delivery-Price Binance API Documentation}\n     */\n    public async quarterlyContractSettlementPrice(\n        requestParameters: QuarterlyContractSettlementPriceRequest\n    ): Promise<RestApiResponse<QuarterlyContractSettlementPriceResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.quarterlyContractSettlementPrice(\n                requestParameters?.pair\n            );\n        return sendRequest<QuarterlyContractSettlementPriceResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query index price constituents\n     *\n     * Weight: 2\n     *\n     * @summary Query Index Price Constituents\n     * @param {QueryIndexPriceConstituentsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryIndexPriceConstituentsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Index-Constituents Binance API Documentation}\n     */\n    public async queryIndexPriceConstituents(\n        requestParameters: QueryIndexPriceConstituentsRequest\n    ): Promise<RestApiResponse<QueryIndexPriceConstituentsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryIndexPriceConstituents(\n            requestParameters?.symbol\n        );\n        return sendRequest<QueryIndexPriceConstituentsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Query Insurance Fund Balance Snapshot\n     *\n     * Weight: 1\n     *\n     * @summary Query Insurance Fund Balance Snapshot\n     * @param {QueryInsuranceFundBalanceSnapshotRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryInsuranceFundBalanceSnapshotResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Query-Insurance-Fund-Balance-Snapshot Binance API Documentation}\n     */\n    public async queryInsuranceFundBalanceSnapshot(\n        requestParameters: QueryInsuranceFundBalanceSnapshotRequest = {}\n    ): Promise<RestApiResponse<QueryInsuranceFundBalanceSnapshotResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.queryInsuranceFundBalanceSnapshot(\n                requestParameters?.symbol\n            );\n        return sendRequest<QueryInsuranceFundBalanceSnapshotResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get recent market trades\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Recent-Trades-List Binance API Documentation}\n     */\n    public async recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.recentTradesList(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<RecentTradesListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolOrderBookTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Order-Book-Ticker Binance API Documentation}\n     */\n    public async symbolOrderBookTicker(\n        requestParameters: SymbolOrderBookTickerRequest = {}\n    ): Promise<RestApiResponse<SymbolOrderBookTickerResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.symbolOrderBookTicker(\n            requestParameters?.symbol\n        );\n        return sendRequest<SymbolOrderBookTickerResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Price-Ticker Binance API Documentation}\n     */\n    public async symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest = {}\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.symbolPriceTicker(\n            requestParameters?.symbol\n        );\n        return sendRequest<SymbolPriceTickerResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker V2\n     * @param {SymbolPriceTickerV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Price-Ticker-V2 Binance API Documentation}\n     */\n    public async symbolPriceTickerV2(\n        requestParameters: SymbolPriceTickerV2Request = {}\n    ): Promise<RestApiResponse<SymbolPriceTickerV2Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.symbolPriceTickerV2(\n            requestParameters?.symbol\n        );\n        return sendRequest<SymbolPriceTickerV2Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Taker Buy/Sell Volume\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Taker Buy/Sell Volume\n     * @param {TakerBuySellVolumeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TakerBuySellVolumeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Taker-BuySell-Volume Binance API Documentation}\n     */\n    public async takerBuySellVolume(\n        requestParameters: TakerBuySellVolumeRequest\n    ): Promise<RestApiResponse<TakerBuySellVolumeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.takerBuySellVolume(\n            requestParameters?.symbol,\n            requestParameters?.period,\n            requestParameters?.limit,\n            requestParameters?.startTime,\n            requestParameters?.endTime\n        );\n        return sendRequest<TakerBuySellVolumeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Test-Connectivity Binance API Documentation}\n     */\n    public async testConnectivity(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.testConnectivity();\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * 24 hour rolling window price change statistics.\n     **Careful** when accessing this with no symbol.\n     *\n     * If the symbol is not sent, tickers for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 40 when the symbol parameter is omitted\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/24hr-Ticker-Price-Change-Statistics Binance API Documentation}\n     */\n    public async ticker24hrPriceChangeStatistics(\n        requestParameters: Ticker24hrPriceChangeStatisticsRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.ticker24hrPriceChangeStatistics(\n                requestParameters?.symbol\n            );\n        return sendRequest<Ticker24hrPriceChangeStatisticsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * The proportion of net long and net short accounts to total accounts of the top 20% users with the highest margin balance. Each account is counted once only.\n     * Long Account % = Accounts of top traders with net long positions / Total accounts of top traders with open positions\n     * Short Account % = Accounts of top traders with net short positions / Total accounts of top traders with open positions\n     * Long/Short Ratio (Accounts) = Long Account % / Short Account %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Accounts)\n     * @param {TopTraderLongShortRatioAccountsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TopTraderLongShortRatioAccountsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Top-Long-Short-Account-Ratio Binance API Documentation}\n     */\n    public async topTraderLongShortRatioAccounts(\n        requestParameters: TopTraderLongShortRatioAccountsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioAccountsResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.topTraderLongShortRatioAccounts(\n                requestParameters?.symbol,\n                requestParameters?.period,\n                requestParameters?.limit,\n                requestParameters?.startTime,\n                requestParameters?.endTime\n            );\n        return sendRequest<TopTraderLongShortRatioAccountsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * The proportion of net long and net short positions to total open positions of the top 20% users with the highest margin balance.\n     * Long Position % = Long positions of top traders / Total open positions of top traders\n     * Short Position % = Short positions of top traders / Total open positions of top traders\n     * Long/Short Ratio (Positions) = Long Position % / Short Position %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Positions)\n     * @param {TopTraderLongShortRatioPositionsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TopTraderLongShortRatioPositionsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Top-Trader-Long-Short-Ratio Binance API Documentation}\n     */\n    public async topTraderLongShortRatioPositions(\n        requestParameters: TopTraderLongShortRatioPositionsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioPositionsResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.topTraderLongShortRatioPositions(\n                requestParameters?.symbol,\n                requestParameters?.period,\n                requestParameters?.limit,\n                requestParameters?.startTime,\n                requestParameters?.endTime\n            );\n        return sendRequest<TopTraderLongShortRatioPositionsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n}\n\nexport enum BasisContractTypeEnum {\n    PERPETUAL = 'PERPETUAL',\n    CURRENT_MONTH = 'CURRENT_MONTH',\n    NEXT_MONTH = 'NEXT_MONTH',\n    CURRENT_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    PERPETUAL_DELIVERING = 'PERPETUAL_DELIVERING',\n}\n\nexport enum BasisPeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n\nexport enum ContinuousContractKlineCandlestickDataContractTypeEnum {\n    PERPETUAL = 'PERPETUAL',\n    CURRENT_MONTH = 'CURRENT_MONTH',\n    NEXT_MONTH = 'NEXT_MONTH',\n    CURRENT_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    PERPETUAL_DELIVERING = 'PERPETUAL_DELIVERING',\n}\n\nexport enum ContinuousContractKlineCandlestickDataIntervalEnum {\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum IndexPriceKlineCandlestickDataIntervalEnum {\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum KlineCandlestickDataIntervalEnum {\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum LongShortRatioPeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n\nexport enum MarkPriceKlineCandlestickDataIntervalEnum {\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum OpenInterestStatisticsPeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n\nexport enum PremiumIndexKlineDataIntervalEnum {\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum TakerBuySellVolumePeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n\nexport enum TopTraderLongShortRatioAccountsPeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n\nexport enum TopTraderLongShortRatioPositionsPeriodEnum {\n    PERIOD_5m = '5m',\n    PERIOD_15m = '15m',\n    PERIOD_30m = '30m',\n    PERIOD_1h = '1h',\n    PERIOD_2h = '2h',\n    PERIOD_4h = '4h',\n    PERIOD_6h = '6h',\n    PERIOD_12h = '12h',\n    PERIOD_1d = '1d',\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type { ClassicPortfolioMarginAccountInformationResponse } from '../types';\n\n/**\n * PortfolioMarginEndpointsApi - axios parameter creator\n */\nconst PortfolioMarginEndpointsApiAxiosParamCreator = function (\n    configuration: ConfigurationRestAPI\n) {\n    return {\n        /**\n         * Get Classic Portfolio Margin current account information.\n         *\n         *\n         * maxWithdrawAmount is for asset transfer out to the spot wallet.\n         *\n         * Weight: 5\n         *\n         * @summary Classic Portfolio Margin Account Information (USER_DATA)\n         * @param {string} asset\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        classicPortfolioMarginAccountInformation: async (\n            asset: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'asset' is not null or undefined\n            assertParamExists('classicPortfolioMarginAccountInformation', 'asset', asset);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (asset !== undefined && asset !== null) {\n                localVarQueryParameter['asset'] = asset;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/pmAccountInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * PortfolioMarginEndpointsApi - interface\n * @interface PortfolioMarginEndpointsApi\n */\nexport interface PortfolioMarginEndpointsApiInterface {\n    /**\n     * Get Classic Portfolio Margin current account information.\n     *\n     *\n     * maxWithdrawAmount is for asset transfer out to the spot wallet.\n     *\n     * Weight: 5\n     *\n     * @summary Classic Portfolio Margin Account Information (USER_DATA)\n     * @param {ClassicPortfolioMarginAccountInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof PortfolioMarginEndpointsApiInterface\n     */\n    classicPortfolioMarginAccountInformation(\n        requestParameters: ClassicPortfolioMarginAccountInformationRequest\n    ): Promise<RestApiResponse<ClassicPortfolioMarginAccountInformationResponse>>;\n}\n\n/**\n * Request parameters for classicPortfolioMarginAccountInformation operation in PortfolioMarginEndpointsApi.\n * @interface ClassicPortfolioMarginAccountInformationRequest\n */\nexport interface ClassicPortfolioMarginAccountInformationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof PortfolioMarginEndpointsApiClassicPortfolioMarginAccountInformation\n     */\n    readonly asset: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof PortfolioMarginEndpointsApiClassicPortfolioMarginAccountInformation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * PortfolioMarginEndpointsApi - object-oriented interface\n * @class PortfolioMarginEndpointsApi\n */\nexport class PortfolioMarginEndpointsApi implements PortfolioMarginEndpointsApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator =\n            PortfolioMarginEndpointsApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get Classic Portfolio Margin current account information.\n     *\n     *\n     * maxWithdrawAmount is for asset transfer out to the spot wallet.\n     *\n     * Weight: 5\n     *\n     * @summary Classic Portfolio Margin Account Information (USER_DATA)\n     * @param {ClassicPortfolioMarginAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ClassicPortfolioMarginAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof PortfolioMarginEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/portfolio-margin-endpoints/Classic-Portfolio-Margin-Account-Information Binance API Documentation}\n     */\n    public async classicPortfolioMarginAccountInformation(\n        requestParameters: ClassicPortfolioMarginAccountInformationRequest\n    ): Promise<RestApiResponse<ClassicPortfolioMarginAccountInformationResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.classicPortfolioMarginAccountInformation(\n                requestParameters?.asset,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<ClassicPortfolioMarginAccountInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AccountTradeListResponse,\n    AllOrdersResponse,\n    AutoCancelAllOpenOrdersResponse,\n    CancelAllOpenOrdersResponse,\n    CancelMultipleOrdersResponse,\n    CancelOrderResponse,\n    ChangeInitialLeverageResponse,\n    ChangeMarginTypeResponse,\n    ChangeMultiAssetsModeResponse,\n    ChangePositionModeResponse,\n    CurrentAllOpenOrdersResponse,\n    GetOrderModifyHistoryResponse,\n    GetPositionMarginChangeHistoryResponse,\n    ModifyIsolatedPositionMarginResponse,\n    ModifyMultipleOrdersBatchOrdersParameterInner,\n    ModifyMultipleOrdersResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PlaceMultipleOrdersBatchOrdersParameterInner,\n    PlaceMultipleOrdersResponse,\n    PositionAdlQuantileEstimationResponse,\n    PositionInformationV2Response,\n    PositionInformationV3Response,\n    QueryCurrentOpenOrderResponse,\n    QueryOrderResponse,\n    TestOrderResponse,\n    UsersForceOrdersResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Get trades for a specific account and symbol.\n         *\n         * If `startTime` and `endTime` are both not sent, then the last 7 days' data will be returned.\n         * The time between `startTime` and `endTime` cannot be longer than 7 days.\n         * The parameter `fromId` cannot be sent with `startTime` or `endTime`.\n         * Only support querying trade in the past 6 months\n         *\n         * Weight: 5\n         *\n         * @summary Account Trade List (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [fromId] ID to get aggregate trades from INCLUSIVE.\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountTradeList: async (\n            symbol: string,\n            orderId?: number,\n            startTime?: number,\n            endTime?: number,\n            fromId?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('accountTradeList', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/userTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get all account orders; active, canceled, or filled.\n         *\n         * These orders will not be found:\n         * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n         * order create time + 90 days < current time\n         *\n         * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n         * The query time period must be less then 7 days( default as the recent 7 days).\n         *\n         * Weight: 5\n         *\n         * @summary All Orders (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        allOrders: async (\n            symbol: string,\n            orderId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('allOrders', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/allOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel all open orders of the specified symbol at the end of the specified countdown.\n         * The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and replaced by a new one.\n         *\n         * Example usage:\n         * Call this endpoint at 30s intervals with an countdownTime of 120000 (120s).\n         * If this endpoint is not called within 120 seconds, all your orders of the specified symbol will be automatically canceled.\n         * If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n         *\n         * The system will check all countdowns **approximately every 10 milliseconds**, so please note that sufficient redundancy should be considered when using this function. We do not recommend setting the countdown time to be too precise or too small.\n         *\n         * Weight: 10\n         *\n         * @summary Auto-Cancel All Open Orders (TRADE)\n         * @param {string} symbol\n         * @param {number} countdownTime countdown time, 1000 for 1 second. 0 to cancel the timer\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        autoCancelAllOpenOrders: async (\n            symbol: string,\n            countdownTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('autoCancelAllOpenOrders', 'symbol', symbol);\n            // verify required parameter 'countdownTime' is not null or undefined\n            assertParamExists('autoCancelAllOpenOrders', 'countdownTime', countdownTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (countdownTime !== undefined && countdownTime !== null) {\n                localVarQueryParameter['countdownTime'] = countdownTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/countdownCancelAll',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel All Open Orders\n         *\n         * Weight: 1\n         *\n         * @summary Cancel All Open Orders (TRADE)\n         * @param {string} symbol\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelAllOpenOrders: async (symbol: string, recvWindow?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelAllOpenOrders', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/allOpenOrders',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel Multiple Orders\n         *\n         * Either `orderIdList` or `origClientOrderIdList ` must be sent.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel Multiple Orders (TRADE)\n         * @param {string} symbol\n         * @param {Array<number>} [orderIdList] max length 10 <br /> e.g. [1234567,2345678]\n         * @param {Array<string>} [origClientOrderIdList] max length 10<br /> e.g. [\"my_id_1\",\"my_id_2\"], encode the double quotes. No space after comma.\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelMultipleOrders: async (\n            symbol: string,\n            orderIdList?: Array<number>,\n            origClientOrderIdList?: Array<string>,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelMultipleOrders', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderIdList) {\n                localVarQueryParameter['orderIdList'] = orderIdList;\n            }\n\n            if (origClientOrderIdList) {\n                localVarQueryParameter['origClientOrderIdList'] = origClientOrderIdList;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/batchOrders',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel an active order.\n         *\n         * Either `orderId` or `origClientOrderId` must be sent.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel Order (TRADE)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelOrder: async (\n            symbol: string,\n            orderId?: number,\n            origClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelOrder', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (origClientOrderId !== undefined && origClientOrderId !== null) {\n                localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's initial leverage of specific symbol market.\n         *\n         * Weight: 1\n         *\n         * @summary Change Initial Leverage(TRADE)\n         * @param {string} symbol\n         * @param {number} leverage target initial leverage: int from 1 to 125\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        changeInitialLeverage: async (\n            symbol: string,\n            leverage: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('changeInitialLeverage', 'symbol', symbol);\n            // verify required parameter 'leverage' is not null or undefined\n            assertParamExists('changeInitialLeverage', 'leverage', leverage);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (leverage !== undefined && leverage !== null) {\n                localVarQueryParameter['leverage'] = leverage;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/leverage',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change symbol level margin type\n         *\n         * Weight: 1\n         *\n         * @summary Change Margin Type(TRADE)\n         * @param {string} symbol\n         * @param {ChangeMarginTypeMarginTypeEnum} marginType ISOLATED, CROSSED\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        changeMarginType: async (\n            symbol: string,\n            marginType: ChangeMarginTypeMarginTypeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('changeMarginType', 'symbol', symbol);\n            // verify required parameter 'marginType' is not null or undefined\n            assertParamExists('changeMarginType', 'marginType', marginType);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (marginType !== undefined && marginType !== null) {\n                localVarQueryParameter['marginType'] = marginType;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/marginType',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n         *\n         * Weight: 1\n         *\n         * @summary Change Multi-Assets Mode (TRADE)\n         * @param {string} multiAssetsMargin \"true\": Multi-Assets Mode; \"false\": Single-Asset Mode\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        changeMultiAssetsMode: async (\n            multiAssetsMargin: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'multiAssetsMargin' is not null or undefined\n            assertParamExists('changeMultiAssetsMode', 'multiAssetsMargin', multiAssetsMargin);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (multiAssetsMargin !== undefined && multiAssetsMargin !== null) {\n                localVarQueryParameter['multiAssetsMargin'] = multiAssetsMargin;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/multiAssetsMargin',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n         *\n         * Weight: 1\n         *\n         * @summary Change Position Mode(TRADE)\n         * @param {string} dualSidePosition \"true\": Hedge Mode; \"false\": One-way Mode\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        changePositionMode: async (\n            dualSidePosition: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'dualSidePosition' is not null or undefined\n            assertParamExists('changePositionMode', 'dualSidePosition', dualSidePosition);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (dualSidePosition !== undefined && dualSidePosition !== null) {\n                localVarQueryParameter['dualSidePosition'] = dualSidePosition;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/positionSide/dual',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get all open orders on a symbol.\n         *\n         * If the symbol is not sent, orders for all symbols will be returned in an array.\n         *\n         * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n         * Careful when accessing this with no symbol.\n         *\n         * @summary Current All Open Orders (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        currentAllOpenOrders: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/openOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get order modification history\n         *\n         * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n         * Order modify history longer than 3 month is not avaliable\n         *\n         * Weight: 1\n         *\n         * @summary Get Order Modify History (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getOrderModifyHistory: async (\n            symbol: string,\n            orderId?: number,\n            origClientOrderId?: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('getOrderModifyHistory', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (origClientOrderId !== undefined && origClientOrderId !== null) {\n                localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/orderAmendment',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get Position Margin Change History\n         *\n         * Support querying future histories that are not older than 30 days\n         * The time between `startTime` and `endTime`can't be more than 30 days\n         *\n         * Weight: 1\n         *\n         * @summary Get Position Margin Change History (TRADE)\n         * @param {string} symbol\n         * @param {number} [type] 1: Add position margin，2: Reduce position margin\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getPositionMarginChangeHistory: async (\n            symbol: string,\n            type?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('getPositionMarginChangeHistory', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/positionMargin/history',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Modify Isolated Position Margin\n         *\n         *\n         * Only for isolated symbol\n         *\n         * Weight: 1\n         *\n         * @summary Modify Isolated Position Margin(TRADE)\n         * @param {string} symbol\n         * @param {number} amount\n         * @param {string} type\n         * @param {ModifyIsolatedPositionMarginPositionSideEnum} [positionSide] Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        modifyIsolatedPositionMargin: async (\n            symbol: string,\n            amount: number,\n            type: string,\n            positionSide?: ModifyIsolatedPositionMarginPositionSideEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('modifyIsolatedPositionMargin', 'symbol', symbol);\n            // verify required parameter 'amount' is not null or undefined\n            assertParamExists('modifyIsolatedPositionMargin', 'amount', amount);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('modifyIsolatedPositionMargin', 'type', type);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (positionSide !== undefined && positionSide !== null) {\n                localVarQueryParameter['positionSide'] = positionSide;\n            }\n\n            if (amount !== undefined && amount !== null) {\n                localVarQueryParameter['amount'] = amount;\n            }\n\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/positionMargin',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Modify Multiple Orders (TRADE)\n         *\n         * Parameter rules are same with `Modify Order`\n         * Batch modify orders are processed concurrently, and the order of matching is not guaranteed.\n         * The order of returned contents for batch modify orders is the same as the order of the order list.\n         * One order can only be modfied for less than 10000 times\n         *\n         * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n         * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n         * 5 on IP rate limit(x-mbx-used-weight-1m);\n         *\n         * @summary Modify Multiple Orders(TRADE)\n         * @param {Array<ModifyMultipleOrdersBatchOrdersParameterInner>} batchOrders order list. Max 5 orders\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        modifyMultipleOrders: async (\n            batchOrders: Array<ModifyMultipleOrdersBatchOrdersParameterInner>,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'batchOrders' is not null or undefined\n            assertParamExists('modifyMultipleOrders', 'batchOrders', batchOrders);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (batchOrders) {\n                localVarQueryParameter['batchOrders'] = batchOrders;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/batchOrders',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n         *\n         *\n         * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n         * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n         * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n         * However the order will be cancelled by the amendment in the following situations:\n         * when the order is in partially filled status and the new `quantity` <= `executedQty`\n         * When the order is `GTX` and the new price will cause it to be executed immediately\n         * One order can only be modfied for less than 10000 times\n         *\n         * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n         * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n         * 1 on IP rate limit(x-mbx-used-weight-1m)\n         *\n         * @summary Modify Order (TRADE)\n         * @param {string} symbol\n         * @param {ModifyOrderSideEnum} side `SELL`, `BUY`\n         * @param {number} quantity Order quantity, cannot be sent with `closePosition=true`\n         * @param {number} price\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {ModifyOrderPriceMatchEnum} [priceMatch] only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        modifyOrder: async (\n            symbol: string,\n            side: ModifyOrderSideEnum,\n            quantity: number,\n            price: number,\n            orderId?: number,\n            origClientOrderId?: string,\n            priceMatch?: ModifyOrderPriceMatchEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('modifyOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('modifyOrder', 'side', side);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('modifyOrder', 'quantity', quantity);\n            // verify required parameter 'price' is not null or undefined\n            assertParamExists('modifyOrder', 'price', price);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (origClientOrderId !== undefined && origClientOrderId !== null) {\n                localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n            }\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n\n            if (priceMatch !== undefined && priceMatch !== null) {\n                localVarQueryParameter['priceMatch'] = priceMatch;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in a new order.\n         *\n         * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n         * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n         * Condition orders will be triggered when:\n         *\n         * If parameter`priceProtect`is sent as true:\n         * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n         * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n         *\n         * `STOP`, `STOP_MARKET`:\n         * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n         * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n         * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n         * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n         * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n         * `TRAILING_STOP_MARKET`:\n         * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n         * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n         *\n         * For `TRAILING_STOP_MARKET`, if you got such error code.\n         * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n         * means that the parameters you send do not meet the following requirements:\n         * BUY: `activationPrice` should be smaller than latest price.\n         * SELL: `activationPrice` should be larger than latest price.\n         *\n         * If `newOrderRespType ` is sent as `RESULT` :\n         * `MARKET` order: the final FILLED result of the order will be return directly.\n         * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n         *\n         * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n         * Follow the same rules for condition orders.\n         * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n         * Cannot be used with `quantity` paremeter\n         * Cannot be used with `reduceOnly` parameter\n         * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n         * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n         * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n         *\n         * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n         * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n         * 0 on IP rate limit(x-mbx-used-weight-1m)\n         *\n         * @summary New Order(TRADE)\n         * @param {string} symbol\n         * @param {NewOrderSideEnum} side `SELL`, `BUY`\n         * @param {string} type\n         * @param {NewOrderPositionSideEnum} [positionSide] Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n         * @param {NewOrderTimeInForceEnum} [timeInForce]\n         * @param {number} [quantity] Cannot be sent with `closePosition`=`true`(Close-All)\n         * @param {string} [reduceOnly] \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: `^[\\.A-Z\\:/a-z0-9_-]{1,36}$`\n         * @param {number} [stopPrice] Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n         * @param {string} [closePosition] `true`, `false`；Close-All，used with `STOP_MARKET` or `TAKE_PROFIT_MARKET`.\n         * @param {number} [activationPrice] Used with `TRAILING_STOP_MARKET` orders, default as the latest price(supporting different `workingType`)\n         * @param {number} [callbackRate] Used with `TRAILING_STOP_MARKET` orders, min 0.1, max 10 where 1 for 1%\n         * @param {NewOrderWorkingTypeEnum} [workingType] stopPrice triggered by: \"MARK_PRICE\", \"CONTRACT_PRICE\". Default \"CONTRACT_PRICE\"\n         * @param {string} [priceProtect] \"TRUE\" or \"FALSE\", default \"FALSE\". Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n         * @param {NewOrderNewOrderRespTypeEnum} [newOrderRespType] \"ACK\", \"RESULT\", default \"ACK\"\n         * @param {NewOrderPriceMatchEnum} [priceMatch] only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n         * @param {NewOrderSelfTradePreventionModeEnum} [selfTradePreventionMode] `NONE`:No STP / `EXPIRE_TAKER`:expire taker order when STP triggers/ `EXPIRE_MAKER`:expire taker order when STP triggers/ `EXPIRE_BOTH`:expire both orders when STP triggers; default `NONE`\n         * @param {number} [goodTillDate] order cancel time for timeInForce `GTD`, mandatory when `timeInforce` set to `GTD`; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        newOrder: async (\n            symbol: string,\n            side: NewOrderSideEnum,\n            type: string,\n            positionSide?: NewOrderPositionSideEnum,\n            timeInForce?: NewOrderTimeInForceEnum,\n            quantity?: number,\n            reduceOnly?: string,\n            price?: number,\n            newClientOrderId?: string,\n            stopPrice?: number,\n            closePosition?: string,\n            activationPrice?: number,\n            callbackRate?: number,\n            workingType?: NewOrderWorkingTypeEnum,\n            priceProtect?: string,\n            newOrderRespType?: NewOrderNewOrderRespTypeEnum,\n            priceMatch?: NewOrderPriceMatchEnum,\n            selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum,\n            goodTillDate?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('newOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('newOrder', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('newOrder', 'type', type);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n\n            if (positionSide !== undefined && positionSide !== null) {\n                localVarQueryParameter['positionSide'] = positionSide;\n            }\n\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\n            }\n\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n\n            if (reduceOnly !== undefined && reduceOnly !== null) {\n                localVarQueryParameter['reduceOnly'] = reduceOnly;\n            }\n\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n\n            if (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n\n            if (stopPrice !== undefined && stopPrice !== null) {\n                localVarQueryParameter['stopPrice'] = stopPrice;\n            }\n\n            if (closePosition !== undefined && closePosition !== null) {\n                localVarQueryParameter['closePosition'] = closePosition;\n            }\n\n            if (activationPrice !== undefined && activationPrice !== null) {\n                localVarQueryParameter['activationPrice'] = activationPrice;\n            }\n\n            if (callbackRate !== undefined && callbackRate !== null) {\n                localVarQueryParameter['callbackRate'] = callbackRate;\n            }\n\n            if (workingType !== undefined && workingType !== null) {\n                localVarQueryParameter['workingType'] = workingType;\n            }\n\n            if (priceProtect !== undefined && priceProtect !== null) {\n                localVarQueryParameter['priceProtect'] = priceProtect;\n            }\n\n            if (newOrderRespType !== undefined && newOrderRespType !== null) {\n                localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n            }\n\n            if (priceMatch !== undefined && priceMatch !== null) {\n                localVarQueryParameter['priceMatch'] = priceMatch;\n            }\n\n            if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n\n            if (goodTillDate !== undefined && goodTillDate !== null) {\n                localVarQueryParameter['goodTillDate'] = goodTillDate;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Place Multiple Orders\n         *\n         * Paremeter rules are same with `New Order`\n         * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n         * The order of returned contents for batch orders is the same as the order of the order list.\n         *\n         * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n         * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n         * 5 on IP rate limit(x-mbx-used-weight-1m);\n         *\n         * @summary Place Multiple Orders(TRADE)\n         * @param {Array<PlaceMultipleOrdersBatchOrdersParameterInner>} batchOrders order list. Max 5 orders\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        placeMultipleOrders: async (\n            batchOrders: Array<PlaceMultipleOrdersBatchOrdersParameterInner>,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'batchOrders' is not null or undefined\n            assertParamExists('placeMultipleOrders', 'batchOrders', batchOrders);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (batchOrders) {\n                localVarQueryParameter['batchOrders'] = batchOrders;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/batchOrders',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Position ADL Quantile Estimation\n         *\n         * Values update every 30s.\n         * Values 0, 1, 2, 3, 4 shows the queue position and possibility of ADL from low to high.\n         * For positions of the symbol are in One-way Mode or isolated margined in Hedge Mode, \"LONG\", \"SHORT\", and \"BOTH\" will be returned to show the positions' adl quantiles of different position sides.\n         * If the positions of the symbol are crossed margined in Hedge Mode:\n         * \"HEDGE\" as a sign will be returned instead of \"BOTH\";\n         * A same value caculated on unrealized pnls on long and short sides' positions will be shown for \"LONG\" and \"SHORT\" when there are positions in both of long and short sides.\n         *\n         * Weight: 5\n         *\n         * @summary Position ADL Quantile Estimation(USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        positionAdlQuantileEstimation: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/adlQuantile',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current position information.\n         *\n         * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n         *\n         * Weight: 5\n         *\n         * @summary Position Information V2 (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        positionInformationV2: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v2/positionRisk',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current position information(only symbol that has position or open orders will be returned).\n         *\n         * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n         *\n         * Weight: 5\n         *\n         * @summary Position Information V3 (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        positionInformationV3: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v3/positionRisk',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query open order\n         *\n         *\n         * Either`orderId` or `origClientOrderId` must be sent\n         * If the queried order has been filled or cancelled, the error message \"Order does not exist\" will be returned.\n         *\n         * Weight: 1\n         *\n         * @summary Query Current Open Order (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryCurrentOpenOrder: async (\n            symbol: string,\n            orderId?: number,\n            origClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('queryCurrentOpenOrder', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (origClientOrderId !== undefined && origClientOrderId !== null) {\n                localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/openOrder',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check an order's status.\n         *\n         * These orders will not be found:\n         * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n         * order create time + 90 days < current time\n         *\n         * Either `orderId` or `origClientOrderId` must be sent.\n         * `orderId` is self-increment for each specific `symbol`\n         *\n         * Weight: 1\n         *\n         * @summary Query Order (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryOrder: async (\n            symbol: string,\n            orderId?: number,\n            origClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('queryOrder', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (origClientOrderId !== undefined && origClientOrderId !== null) {\n                localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Testing order request, this order will not be submitted to matching engine\n         *\n         * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n         * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n         * Condition orders will be triggered when:\n         *\n         * If parameter`priceProtect`is sent as true:\n         * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n         * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n         *\n         * `STOP`, `STOP_MARKET`:\n         * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n         * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n         * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n         * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n         * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n         * `TRAILING_STOP_MARKET`:\n         * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n         * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n         *\n         * For `TRAILING_STOP_MARKET`, if you got such error code.\n         * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n         * means that the parameters you send do not meet the following requirements:\n         * BUY: `activationPrice` should be smaller than latest price.\n         * SELL: `activationPrice` should be larger than latest price.\n         *\n         * If `newOrderRespType ` is sent as `RESULT` :\n         * `MARKET` order: the final FILLED result of the order will be return directly.\n         * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n         *\n         * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n         * Follow the same rules for condition orders.\n         * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n         * Cannot be used with `quantity` paremeter\n         * Cannot be used with `reduceOnly` parameter\n         * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n         * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n         * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n         *\n         * Weight: 0\n         *\n         * @summary Test Order(TRADE)\n         * @param {string} symbol\n         * @param {TestOrderSideEnum} side `SELL`, `BUY`\n         * @param {string} type\n         * @param {TestOrderPositionSideEnum} [positionSide] Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n         * @param {TestOrderTimeInForceEnum} [timeInForce]\n         * @param {number} [quantity] Cannot be sent with `closePosition`=`true`(Close-All)\n         * @param {string} [reduceOnly] \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: `^[\\.A-Z\\:/a-z0-9_-]{1,36}$`\n         * @param {number} [stopPrice] Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n         * @param {string} [closePosition] `true`, `false`；Close-All，used with `STOP_MARKET` or `TAKE_PROFIT_MARKET`.\n         * @param {number} [activationPrice] Used with `TRAILING_STOP_MARKET` orders, default as the latest price(supporting different `workingType`)\n         * @param {number} [callbackRate] Used with `TRAILING_STOP_MARKET` orders, min 0.1, max 10 where 1 for 1%\n         * @param {TestOrderWorkingTypeEnum} [workingType] stopPrice triggered by: \"MARK_PRICE\", \"CONTRACT_PRICE\". Default \"CONTRACT_PRICE\"\n         * @param {string} [priceProtect] \"TRUE\" or \"FALSE\", default \"FALSE\". Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n         * @param {TestOrderNewOrderRespTypeEnum} [newOrderRespType] \"ACK\", \"RESULT\", default \"ACK\"\n         * @param {TestOrderPriceMatchEnum} [priceMatch] only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n         * @param {TestOrderSelfTradePreventionModeEnum} [selfTradePreventionMode] `NONE`:No STP / `EXPIRE_TAKER`:expire taker order when STP triggers/ `EXPIRE_MAKER`:expire taker order when STP triggers/ `EXPIRE_BOTH`:expire both orders when STP triggers; default `NONE`\n         * @param {number} [goodTillDate] order cancel time for timeInForce `GTD`, mandatory when `timeInforce` set to `GTD`; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        testOrder: async (\n            symbol: string,\n            side: TestOrderSideEnum,\n            type: string,\n            positionSide?: TestOrderPositionSideEnum,\n            timeInForce?: TestOrderTimeInForceEnum,\n            quantity?: number,\n            reduceOnly?: string,\n            price?: number,\n            newClientOrderId?: string,\n            stopPrice?: number,\n            closePosition?: string,\n            activationPrice?: number,\n            callbackRate?: number,\n            workingType?: TestOrderWorkingTypeEnum,\n            priceProtect?: string,\n            newOrderRespType?: TestOrderNewOrderRespTypeEnum,\n            priceMatch?: TestOrderPriceMatchEnum,\n            selfTradePreventionMode?: TestOrderSelfTradePreventionModeEnum,\n            goodTillDate?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('testOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('testOrder', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('testOrder', 'type', type);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n\n            if (positionSide !== undefined && positionSide !== null) {\n                localVarQueryParameter['positionSide'] = positionSide;\n            }\n\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\n            }\n\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n\n            if (reduceOnly !== undefined && reduceOnly !== null) {\n                localVarQueryParameter['reduceOnly'] = reduceOnly;\n            }\n\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n\n            if (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n\n            if (stopPrice !== undefined && stopPrice !== null) {\n                localVarQueryParameter['stopPrice'] = stopPrice;\n            }\n\n            if (closePosition !== undefined && closePosition !== null) {\n                localVarQueryParameter['closePosition'] = closePosition;\n            }\n\n            if (activationPrice !== undefined && activationPrice !== null) {\n                localVarQueryParameter['activationPrice'] = activationPrice;\n            }\n\n            if (callbackRate !== undefined && callbackRate !== null) {\n                localVarQueryParameter['callbackRate'] = callbackRate;\n            }\n\n            if (workingType !== undefined && workingType !== null) {\n                localVarQueryParameter['workingType'] = workingType;\n            }\n\n            if (priceProtect !== undefined && priceProtect !== null) {\n                localVarQueryParameter['priceProtect'] = priceProtect;\n            }\n\n            if (newOrderRespType !== undefined && newOrderRespType !== null) {\n                localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n            }\n\n            if (priceMatch !== undefined && priceMatch !== null) {\n                localVarQueryParameter['priceMatch'] = priceMatch;\n            }\n\n            if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n\n            if (goodTillDate !== undefined && goodTillDate !== null) {\n                localVarQueryParameter['goodTillDate'] = goodTillDate;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/order/test',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query user's Force Orders\n         *\n         * If \"autoCloseType\" is not sent, orders with both of the types will be returned\n         * If \"startTime\" is not sent, data within 7 days before \"endTime\" can be queried\n         *\n         * Weight: 20 with symbol, 50 without symbol\n         *\n         * @summary User\\'s Force Orders (USER_DATA)\n         * @param {string} [symbol]\n         * @param {UsersForceOrdersAutoCloseTypeEnum} [autoCloseType] \"LIQUIDATION\" for liquidation orders, \"ADL\" for ADL orders.\n         * @param {number} [startTime]\n         * @param {number} [endTime]\n         * @param {number} [limit] Default 100; max 1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        usersForceOrders: async (\n            symbol?: string,\n            autoCloseType?: UsersForceOrdersAutoCloseTypeEnum,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (autoCloseType !== undefined && autoCloseType !== null) {\n                localVarQueryParameter['autoCloseType'] = autoCloseType;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/forceOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * If `startTime` and `endTime` are both not sent, then the last 7 days' data will be returned.\n     * The time between `startTime` and `endTime` cannot be longer than 7 days.\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`.\n     * Only support querying trade in the past 6 months\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    accountTradeList(\n        requestParameters: AccountTradeListRequest\n    ): Promise<RestApiResponse<AccountTradeListResponse>>;\n    /**\n     * Get all account orders; active, canceled, or filled.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * The query time period must be less then 7 days( default as the recent 7 days).\n     *\n     * Weight: 5\n     *\n     * @summary All Orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    allOrders(requestParameters: AllOrdersRequest): Promise<RestApiResponse<AllOrdersResponse>>;\n    /**\n     * Cancel all open orders of the specified symbol at the end of the specified countdown.\n     * The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and replaced by a new one.\n     *\n     * Example usage:\n     * Call this endpoint at 30s intervals with an countdownTime of 120000 (120s).\n     * If this endpoint is not called within 120 seconds, all your orders of the specified symbol will be automatically canceled.\n     * If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     *\n     * The system will check all countdowns **approximately every 10 milliseconds**, so please note that sufficient redundancy should be considered when using this function. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>;\n    /**\n     * Cancel All Open Orders\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Open Orders (TRADE)\n     * @param {CancelAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelAllOpenOrders(\n        requestParameters: CancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<CancelAllOpenOrdersResponse>>;\n    /**\n     * Cancel Multiple Orders\n     *\n     * Either `orderIdList` or `origClientOrderIdList ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Orders (TRADE)\n     * @param {CancelMultipleOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelMultipleOrders(\n        requestParameters: CancelMultipleOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOrdersResponse>>;\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<RestApiResponse<CancelOrderResponse>>;\n    /**\n     * Change user's initial leverage of specific symbol market.\n     *\n     * Weight: 1\n     *\n     * @summary Change Initial Leverage(TRADE)\n     * @param {ChangeInitialLeverageRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    changeInitialLeverage(\n        requestParameters: ChangeInitialLeverageRequest\n    ): Promise<RestApiResponse<ChangeInitialLeverageResponse>>;\n    /**\n     * Change symbol level margin type\n     *\n     * Weight: 1\n     *\n     * @summary Change Margin Type(TRADE)\n     * @param {ChangeMarginTypeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    changeMarginType(\n        requestParameters: ChangeMarginTypeRequest\n    ): Promise<RestApiResponse<ChangeMarginTypeResponse>>;\n    /**\n     * Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Multi-Assets Mode (TRADE)\n     * @param {ChangeMultiAssetsModeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    changeMultiAssetsMode(\n        requestParameters: ChangeMultiAssetsModeRequest\n    ): Promise<RestApiResponse<ChangeMultiAssetsModeResponse>>;\n    /**\n     * Change user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Position Mode(TRADE)\n     * @param {ChangePositionModeRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    changePositionMode(\n        requestParameters: ChangePositionModeRequest\n    ): Promise<RestApiResponse<ChangePositionModeResponse>>;\n    /**\n     * Get all open orders on a symbol.\n     *\n     * If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     * Careful when accessing this with no symbol.\n     *\n     * @summary Current All Open Orders (USER_DATA)\n     * @param {CurrentAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    currentAllOpenOrders(\n        requestParameters?: CurrentAllOpenOrdersRequest\n    ): Promise<RestApiResponse<CurrentAllOpenOrdersResponse>>;\n    /**\n     * Get order modification history\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Order modify history longer than 3 month is not avaliable\n     *\n     * Weight: 1\n     *\n     * @summary Get Order Modify History (USER_DATA)\n     * @param {GetOrderModifyHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    getOrderModifyHistory(\n        requestParameters: GetOrderModifyHistoryRequest\n    ): Promise<RestApiResponse<GetOrderModifyHistoryResponse>>;\n    /**\n     * Get Position Margin Change History\n     *\n     * Support querying future histories that are not older than 30 days\n     * The time between `startTime` and `endTime`can't be more than 30 days\n     *\n     * Weight: 1\n     *\n     * @summary Get Position Margin Change History (TRADE)\n     * @param {GetPositionMarginChangeHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    getPositionMarginChangeHistory(\n        requestParameters: GetPositionMarginChangeHistoryRequest\n    ): Promise<RestApiResponse<GetPositionMarginChangeHistoryResponse>>;\n    /**\n     * Modify Isolated Position Margin\n     *\n     *\n     * Only for isolated symbol\n     *\n     * Weight: 1\n     *\n     * @summary Modify Isolated Position Margin(TRADE)\n     * @param {ModifyIsolatedPositionMarginRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    modifyIsolatedPositionMargin(\n        requestParameters: ModifyIsolatedPositionMarginRequest\n    ): Promise<RestApiResponse<ModifyIsolatedPositionMarginResponse>>;\n    /**\n     * Modify Multiple Orders (TRADE)\n     *\n     * Parameter rules are same with `Modify Order`\n     * Batch modify orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch modify orders is the same as the order of the order list.\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Modify Multiple Orders(TRADE)\n     * @param {ModifyMultipleOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    modifyMultipleOrders(\n        requestParameters: ModifyMultipleOrdersRequest\n    ): Promise<RestApiResponse<ModifyMultipleOrdersResponse>>;\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<RestApiResponse<ModifyOrderResponse>>;\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 0 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<RestApiResponse<NewOrderResponse>>;\n    /**\n     * Place Multiple Orders\n     *\n     * Paremeter rules are same with `New Order`\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch orders is the same as the order of the order list.\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>>;\n    /**\n     * Position ADL Quantile Estimation\n     *\n     * Values update every 30s.\n     * Values 0, 1, 2, 3, 4 shows the queue position and possibility of ADL from low to high.\n     * For positions of the symbol are in One-way Mode or isolated margined in Hedge Mode, \"LONG\", \"SHORT\", and \"BOTH\" will be returned to show the positions' adl quantiles of different position sides.\n     * If the positions of the symbol are crossed margined in Hedge Mode:\n     * \"HEDGE\" as a sign will be returned instead of \"BOTH\";\n     * A same value caculated on unrealized pnls on long and short sides' positions will be shown for \"LONG\" and \"SHORT\" when there are positions in both of long and short sides.\n     *\n     * Weight: 5\n     *\n     * @summary Position ADL Quantile Estimation(USER_DATA)\n     * @param {PositionAdlQuantileEstimationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    positionAdlQuantileEstimation(\n        requestParameters?: PositionAdlQuantileEstimationRequest\n    ): Promise<RestApiResponse<PositionAdlQuantileEstimationResponse>>;\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    positionInformationV2(\n        requestParameters?: PositionInformationV2Request\n    ): Promise<RestApiResponse<PositionInformationV2Response>>;\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V3 (USER_DATA)\n     * @param {PositionInformationV3Request} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    positionInformationV3(\n        requestParameters?: PositionInformationV3Request\n    ): Promise<RestApiResponse<PositionInformationV3Response>>;\n    /**\n     * Query open order\n     *\n     *\n     * Either`orderId` or `origClientOrderId` must be sent\n     * If the queried order has been filled or cancelled, the error message \"Order does not exist\" will be returned.\n     *\n     * Weight: 1\n     *\n     * @summary Query Current Open Order (USER_DATA)\n     * @param {QueryCurrentOpenOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    queryCurrentOpenOrder(\n        requestParameters: QueryCurrentOpenOrderRequest\n    ): Promise<RestApiResponse<QueryCurrentOpenOrderResponse>>;\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    queryOrder(requestParameters: QueryOrderRequest): Promise<RestApiResponse<QueryOrderResponse>>;\n    /**\n     * Testing order request, this order will not be submitted to matching engine\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 0\n     *\n     * @summary Test Order(TRADE)\n     * @param {TestOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    testOrder(requestParameters: TestOrderRequest): Promise<RestApiResponse<TestOrderResponse>>;\n    /**\n     * Query user's Force Orders\n     *\n     * If \"autoCloseType\" is not sent, orders with both of the types will be returned\n     * If \"startTime\" is not sent, data within 7 days before \"endTime\" can be queried\n     *\n     * Weight: 20 with symbol, 50 without symbol\n     *\n     * @summary User\\'s Force Orders (USER_DATA)\n     * @param {UsersForceOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    usersForceOrders(\n        requestParameters?: UsersForceOrdersRequest\n    ): Promise<RestApiResponse<UsersForceOrdersResponse>>;\n}\n\n/**\n * Request parameters for accountTradeList operation in TradeApi.\n * @interface AccountTradeListRequest\n */\nexport interface AccountTradeListRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly endTime?: number;\n\n    /**\n     * ID to get aggregate trades from INCLUSIVE.\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly fromId?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for allOrders operation in TradeApi.\n * @interface AllOrdersRequest\n */\nexport interface AllOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiAllOrders\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAllOrders\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAllOrders\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAllOrders\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof TradeApiAllOrders\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAllOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for autoCancelAllOpenOrders operation in TradeApi.\n * @interface AutoCancelAllOpenOrdersRequest\n */\nexport interface AutoCancelAllOpenOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiAutoCancelAllOpenOrders\n     */\n    readonly symbol: string;\n\n    /**\n     * countdown time, 1000 for 1 second. 0 to cancel the timer\n     * @type {number}\n     * @memberof TradeApiAutoCancelAllOpenOrders\n     */\n    readonly countdownTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAutoCancelAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelAllOpenOrders operation in TradeApi.\n * @interface CancelAllOpenOrdersRequest\n */\nexport interface CancelAllOpenOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelAllOpenOrders\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelMultipleOrders operation in TradeApi.\n * @interface CancelMultipleOrdersRequest\n */\nexport interface CancelMultipleOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelMultipleOrders\n     */\n    readonly symbol: string;\n\n    /**\n     * max length 10 <br /> e.g. [1234567,2345678]\n     * @type {Array<number>}\n     * @memberof TradeApiCancelMultipleOrders\n     */\n    readonly orderIdList?: Array<number>;\n\n    /**\n     * max length 10<br /> e.g. [\"my_id_1\",\"my_id_2\"], encode the double quotes. No space after comma.\n     * @type {Array<string>}\n     * @memberof TradeApiCancelMultipleOrders\n     */\n    readonly origClientOrderIdList?: Array<string>;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelMultipleOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelOrder operation in TradeApi.\n * @interface CancelOrderRequest\n */\nexport interface CancelOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for changeInitialLeverage operation in TradeApi.\n * @interface ChangeInitialLeverageRequest\n */\nexport interface ChangeInitialLeverageRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiChangeInitialLeverage\n     */\n    readonly symbol: string;\n\n    /**\n     * target initial leverage: int from 1 to 125\n     * @type {number}\n     * @memberof TradeApiChangeInitialLeverage\n     */\n    readonly leverage: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiChangeInitialLeverage\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for changeMarginType operation in TradeApi.\n * @interface ChangeMarginTypeRequest\n */\nexport interface ChangeMarginTypeRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiChangeMarginType\n     */\n    readonly symbol: string;\n\n    /**\n     * ISOLATED, CROSSED\n     * @type {'ISOLATED' | 'CROSSED'}\n     * @memberof TradeApiChangeMarginType\n     */\n    readonly marginType: ChangeMarginTypeMarginTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiChangeMarginType\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for changeMultiAssetsMode operation in TradeApi.\n * @interface ChangeMultiAssetsModeRequest\n */\nexport interface ChangeMultiAssetsModeRequest {\n    /**\n     * \"true\": Multi-Assets Mode; \"false\": Single-Asset Mode\n     * @type {string}\n     * @memberof TradeApiChangeMultiAssetsMode\n     */\n    readonly multiAssetsMargin: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiChangeMultiAssetsMode\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for changePositionMode operation in TradeApi.\n * @interface ChangePositionModeRequest\n */\nexport interface ChangePositionModeRequest {\n    /**\n     * \"true\": Hedge Mode; \"false\": One-way Mode\n     * @type {string}\n     * @memberof TradeApiChangePositionMode\n     */\n    readonly dualSidePosition: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiChangePositionMode\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for currentAllOpenOrders operation in TradeApi.\n * @interface CurrentAllOpenOrdersRequest\n */\nexport interface CurrentAllOpenOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCurrentAllOpenOrders\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCurrentAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getOrderModifyHistory operation in TradeApi.\n * @interface GetOrderModifyHistoryRequest\n */\nexport interface GetOrderModifyHistoryRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetOrderModifyHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getPositionMarginChangeHistory operation in TradeApi.\n * @interface GetPositionMarginChangeHistoryRequest\n */\nexport interface GetPositionMarginChangeHistoryRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly symbol: string;\n\n    /**\n     * 1: Add position margin，2: Reduce position margin\n     * @type {number}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly type?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiGetPositionMarginChangeHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for modifyIsolatedPositionMargin operation in TradeApi.\n * @interface ModifyIsolatedPositionMarginRequest\n */\nexport interface ModifyIsolatedPositionMarginRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly amount: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly type: string;\n\n    /**\n     * Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n     * @type {'BOTH' | 'LONG' | 'SHORT'}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly positionSide?: ModifyIsolatedPositionMarginPositionSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for modifyMultipleOrders operation in TradeApi.\n * @interface ModifyMultipleOrdersRequest\n */\nexport interface ModifyMultipleOrdersRequest {\n    /**\n     * order list. Max 5 orders\n     * @type {Array<ModifyMultipleOrdersBatchOrdersParameterInner>}\n     * @memberof TradeApiModifyMultipleOrders\n     */\n    readonly batchOrders: Array<ModifyMultipleOrdersBatchOrdersParameterInner>;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyMultipleOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for modifyOrder operation in TradeApi.\n * @interface ModifyOrderRequest\n */\nexport interface ModifyOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * `SELL`, `BUY`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly side: ModifyOrderSideEnum;\n\n    /**\n     * Order quantity, cannot be sent with `closePosition=true`\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly price: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n     * @type {'NONE' | 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly priceMatch?: ModifyOrderPriceMatchEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for newOrder operation in TradeApi.\n * @interface NewOrderRequest\n */\nexport interface NewOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * `SELL`, `BUY`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly side: NewOrderSideEnum;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: string;\n\n    /**\n     * Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n     * @type {'BOTH' | 'LONG' | 'SHORT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly positionSide?: NewOrderPositionSideEnum;\n\n    /**\n     *\n     * @type {'GTC' | 'IOC' | 'FOK' | 'GTX' | 'GTD'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     * Cannot be sent with `closePosition`=`true`(Close-All)\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly quantity?: number;\n\n    /**\n     * \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly reduceOnly?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: `^[\\.A-Z\\:/a-z0-9_-]{1,36}$`\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * `true`, `false`；Close-All，used with `STOP_MARKET` or `TAKE_PROFIT_MARKET`.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly closePosition?: string;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, default as the latest price(supporting different `workingType`)\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly activationPrice?: number;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, min 0.1, max 10 where 1 for 1%\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly callbackRate?: number;\n\n    /**\n     * stopPrice triggered by: \"MARK_PRICE\", \"CONTRACT_PRICE\". Default \"CONTRACT_PRICE\"\n     * @type {'MARK_PRICE' | 'CONTRACT_PRICE'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly workingType?: NewOrderWorkingTypeEnum;\n\n    /**\n     * \"TRUE\" or \"FALSE\", default \"FALSE\". Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly priceProtect?: string;\n\n    /**\n     * \"ACK\", \"RESULT\", default \"ACK\"\n     * @type {'ACK' | 'RESULT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newOrderRespType?: NewOrderNewOrderRespTypeEnum;\n\n    /**\n     * only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n     * @type {'NONE' | 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly priceMatch?: NewOrderPriceMatchEnum;\n\n    /**\n     * `NONE`:No STP / `EXPIRE_TAKER`:expire taker order when STP triggers/ `EXPIRE_MAKER`:expire taker order when STP triggers/ `EXPIRE_BOTH`:expire both orders when STP triggers; default `NONE`\n     * @type {'EXPIRE_TAKER' | 'EXPIRE_BOTH' | 'EXPIRE_MAKER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum;\n\n    /**\n     * order cancel time for timeInForce `GTD`, mandatory when `timeInforce` set to `GTD`; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly goodTillDate?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for placeMultipleOrders operation in TradeApi.\n * @interface PlaceMultipleOrdersRequest\n */\nexport interface PlaceMultipleOrdersRequest {\n    /**\n     * order list. Max 5 orders\n     * @type {Array<PlaceMultipleOrdersBatchOrdersParameterInner>}\n     * @memberof TradeApiPlaceMultipleOrders\n     */\n    readonly batchOrders: Array<PlaceMultipleOrdersBatchOrdersParameterInner>;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPlaceMultipleOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for positionAdlQuantileEstimation operation in TradeApi.\n * @interface PositionAdlQuantileEstimationRequest\n */\nexport interface PositionAdlQuantileEstimationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionAdlQuantileEstimation\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionAdlQuantileEstimation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for positionInformationV2 operation in TradeApi.\n * @interface PositionInformationV2Request\n */\nexport interface PositionInformationV2Request {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformationV2\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformationV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for positionInformationV3 operation in TradeApi.\n * @interface PositionInformationV3Request\n */\nexport interface PositionInformationV3Request {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformationV3\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformationV3\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryCurrentOpenOrder operation in TradeApi.\n * @interface QueryCurrentOpenOrderRequest\n */\nexport interface QueryCurrentOpenOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryCurrentOpenOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryCurrentOpenOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryOrder operation in TradeApi.\n * @interface QueryOrderRequest\n */\nexport interface QueryOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for testOrder operation in TradeApi.\n * @interface TestOrderRequest\n */\nexport interface TestOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * `SELL`, `BUY`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly side: TestOrderSideEnum;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly type: string;\n\n    /**\n     * Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent with Hedge Mode.\n     * @type {'BOTH' | 'LONG' | 'SHORT'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly positionSide?: TestOrderPositionSideEnum;\n\n    /**\n     *\n     * @type {'GTC' | 'IOC' | 'FOK' | 'GTX' | 'GTD'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly timeInForce?: TestOrderTimeInForceEnum;\n\n    /**\n     * Cannot be sent with `closePosition`=`true`(Close-All)\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly quantity?: number;\n\n    /**\n     * \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly reduceOnly?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: `^[\\.A-Z\\:/a-z0-9_-]{1,36}$`\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * `true`, `false`；Close-All，used with `STOP_MARKET` or `TAKE_PROFIT_MARKET`.\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly closePosition?: string;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, default as the latest price(supporting different `workingType`)\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly activationPrice?: number;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, min 0.1, max 10 where 1 for 1%\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly callbackRate?: number;\n\n    /**\n     * stopPrice triggered by: \"MARK_PRICE\", \"CONTRACT_PRICE\". Default \"CONTRACT_PRICE\"\n     * @type {'MARK_PRICE' | 'CONTRACT_PRICE'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly workingType?: TestOrderWorkingTypeEnum;\n\n    /**\n     * \"TRUE\" or \"FALSE\", default \"FALSE\". Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {string}\n     * @memberof TradeApiTestOrder\n     */\n    readonly priceProtect?: string;\n\n    /**\n     * \"ACK\", \"RESULT\", default \"ACK\"\n     * @type {'ACK' | 'RESULT'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly newOrderRespType?: TestOrderNewOrderRespTypeEnum;\n\n    /**\n     * only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n     * @type {'NONE' | 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly priceMatch?: TestOrderPriceMatchEnum;\n\n    /**\n     * `NONE`:No STP / `EXPIRE_TAKER`:expire taker order when STP triggers/ `EXPIRE_MAKER`:expire taker order when STP triggers/ `EXPIRE_BOTH`:expire both orders when STP triggers; default `NONE`\n     * @type {'EXPIRE_TAKER' | 'EXPIRE_BOTH' | 'EXPIRE_MAKER'}\n     * @memberof TradeApiTestOrder\n     */\n    readonly selfTradePreventionMode?: TestOrderSelfTradePreventionModeEnum;\n\n    /**\n     * order cancel time for timeInForce `GTD`, mandatory when `timeInforce` set to `GTD`; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly goodTillDate?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiTestOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for usersForceOrders operation in TradeApi.\n * @interface UsersForceOrdersRequest\n */\nexport interface UsersForceOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly symbol?: string;\n\n    /**\n     * \"LIQUIDATION\" for liquidation orders, \"ADL\" for ADL orders.\n     * @type {'LIQUIDATION' | 'ADL'}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly autoCloseType?: UsersForceOrdersAutoCloseTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiUsersForceOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n */\nexport class TradeApi implements TradeApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = TradeApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * If `startTime` and `endTime` are both not sent, then the last 7 days' data will be returned.\n     * The time between `startTime` and `endTime` cannot be longer than 7 days.\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`.\n     * Only support querying trade in the past 6 months\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Account-Trade-List Binance API Documentation}\n     */\n    public async accountTradeList(\n        requestParameters: AccountTradeListRequest\n    ): Promise<RestApiResponse<AccountTradeListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountTradeList(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.fromId,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountTradeListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get all account orders; active, canceled, or filled.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * The query time period must be less then 7 days( default as the recent 7 days).\n     *\n     * Weight: 5\n     *\n     * @summary All Orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AllOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders Binance API Documentation}\n     */\n    public async allOrders(\n        requestParameters: AllOrdersRequest\n    ): Promise<RestApiResponse<AllOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.allOrders(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AllOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel all open orders of the specified symbol at the end of the specified countdown.\n     * The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and replaced by a new one.\n     *\n     * Example usage:\n     * Call this endpoint at 30s intervals with an countdownTime of 120000 (120s).\n     * If this endpoint is not called within 120 seconds, all your orders of the specified symbol will be automatically canceled.\n     * If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     *\n     * The system will check all countdowns **approximately every 10 milliseconds**, so please note that sufficient redundancy should be considered when using this function. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Auto-Cancel-All-Open-Orders Binance API Documentation}\n     */\n    public async autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.autoCancelAllOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.countdownTime,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AutoCancelAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel All Open Orders\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Open Orders (TRADE)\n     * @param {CancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-All-Open-Orders Binance API Documentation}\n     */\n    public async cancelAllOpenOrders(\n        requestParameters: CancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<CancelAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelAllOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CancelAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel Multiple Orders\n     *\n     * Either `orderIdList` or `origClientOrderIdList ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Orders (TRADE)\n     * @param {CancelMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Multiple-Orders Binance API Documentation}\n     */\n    public async cancelMultipleOrders(\n        requestParameters: CancelMultipleOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelMultipleOrders(\n            requestParameters?.symbol,\n            requestParameters?.orderIdList,\n            requestParameters?.origClientOrderIdList,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CancelMultipleOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Order Binance API Documentation}\n     */\n    public async cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<RestApiResponse<CancelOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CancelOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Change user's initial leverage of specific symbol market.\n     *\n     * Weight: 1\n     *\n     * @summary Change Initial Leverage(TRADE)\n     * @param {ChangeInitialLeverageRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeInitialLeverageResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Initial-Leverage Binance API Documentation}\n     */\n    public async changeInitialLeverage(\n        requestParameters: ChangeInitialLeverageRequest\n    ): Promise<RestApiResponse<ChangeInitialLeverageResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.changeInitialLeverage(\n            requestParameters?.symbol,\n            requestParameters?.leverage,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ChangeInitialLeverageResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Change symbol level margin type\n     *\n     * Weight: 1\n     *\n     * @summary Change Margin Type(TRADE)\n     * @param {ChangeMarginTypeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeMarginTypeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Margin-Type Binance API Documentation}\n     */\n    public async changeMarginType(\n        requestParameters: ChangeMarginTypeRequest\n    ): Promise<RestApiResponse<ChangeMarginTypeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.changeMarginType(\n            requestParameters?.symbol,\n            requestParameters?.marginType,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ChangeMarginTypeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Multi-Assets Mode (TRADE)\n     * @param {ChangeMultiAssetsModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeMultiAssetsModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Multi-Assets-Mode Binance API Documentation}\n     */\n    public async changeMultiAssetsMode(\n        requestParameters: ChangeMultiAssetsModeRequest\n    ): Promise<RestApiResponse<ChangeMultiAssetsModeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.changeMultiAssetsMode(\n            requestParameters?.multiAssetsMargin,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ChangeMultiAssetsModeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Change user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Position Mode(TRADE)\n     * @param {ChangePositionModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangePositionModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Position-Mode Binance API Documentation}\n     */\n    public async changePositionMode(\n        requestParameters: ChangePositionModeRequest\n    ): Promise<RestApiResponse<ChangePositionModeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.changePositionMode(\n            requestParameters?.dualSidePosition,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ChangePositionModeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get all open orders on a symbol.\n     *\n     * If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     * Careful when accessing this with no symbol.\n     *\n     * @summary Current All Open Orders (USER_DATA)\n     * @param {CurrentAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CurrentAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Current-All-Open-Orders Binance API Documentation}\n     */\n    public async currentAllOpenOrders(\n        requestParameters: CurrentAllOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<CurrentAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.currentAllOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CurrentAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get order modification history\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Order modify history longer than 3 month is not avaliable\n     *\n     * Weight: 1\n     *\n     * @summary Get Order Modify History (USER_DATA)\n     * @param {GetOrderModifyHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOrderModifyHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Get-Order-Modify-History Binance API Documentation}\n     */\n    public async getOrderModifyHistory(\n        requestParameters: GetOrderModifyHistoryRequest\n    ): Promise<RestApiResponse<GetOrderModifyHistoryResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getOrderModifyHistory(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetOrderModifyHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get Position Margin Change History\n     *\n     * Support querying future histories that are not older than 30 days\n     * The time between `startTime` and `endTime`can't be more than 30 days\n     *\n     * Weight: 1\n     *\n     * @summary Get Position Margin Change History (TRADE)\n     * @param {GetPositionMarginChangeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetPositionMarginChangeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Get-Position-Margin-Change-History Binance API Documentation}\n     */\n    public async getPositionMarginChangeHistory(\n        requestParameters: GetPositionMarginChangeHistoryRequest\n    ): Promise<RestApiResponse<GetPositionMarginChangeHistoryResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getPositionMarginChangeHistory(\n                requestParameters?.symbol,\n                requestParameters?.type,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetPositionMarginChangeHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Modify Isolated Position Margin\n     *\n     *\n     * Only for isolated symbol\n     *\n     * Weight: 1\n     *\n     * @summary Modify Isolated Position Margin(TRADE)\n     * @param {ModifyIsolatedPositionMarginRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyIsolatedPositionMarginResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Isolated-Position-Margin Binance API Documentation}\n     */\n    public async modifyIsolatedPositionMargin(\n        requestParameters: ModifyIsolatedPositionMarginRequest\n    ): Promise<RestApiResponse<ModifyIsolatedPositionMarginResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.modifyIsolatedPositionMargin(\n            requestParameters?.symbol,\n            requestParameters?.amount,\n            requestParameters?.type,\n            requestParameters?.positionSide,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ModifyIsolatedPositionMarginResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Modify Multiple Orders (TRADE)\n     *\n     * Parameter rules are same with `Modify Order`\n     * Batch modify orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch modify orders is the same as the order of the order list.\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Modify Multiple Orders(TRADE)\n     * @param {ModifyMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders Binance API Documentation}\n     */\n    public async modifyMultipleOrders(\n        requestParameters: ModifyMultipleOrdersRequest\n    ): Promise<RestApiResponse<ModifyMultipleOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.modifyMultipleOrders(\n            requestParameters?.batchOrders,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ModifyMultipleOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Order Binance API Documentation}\n     */\n    public async modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<RestApiResponse<ModifyOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.modifyOrder(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.quantity,\n            requestParameters?.price,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.priceMatch,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ModifyOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 0 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order Binance API Documentation}\n     */\n    public async newOrder(\n        requestParameters: NewOrderRequest\n    ): Promise<RestApiResponse<NewOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.newOrder(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.positionSide,\n            requestParameters?.timeInForce,\n            requestParameters?.quantity,\n            requestParameters?.reduceOnly,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.stopPrice,\n            requestParameters?.closePosition,\n            requestParameters?.activationPrice,\n            requestParameters?.callbackRate,\n            requestParameters?.workingType,\n            requestParameters?.priceProtect,\n            requestParameters?.newOrderRespType,\n            requestParameters?.priceMatch,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.goodTillDate,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NewOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Place Multiple Orders\n     *\n     * Paremeter rules are same with `New Order`\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch orders is the same as the order of the order list.\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PlaceMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Place-Multiple-Orders Binance API Documentation}\n     */\n    public async placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.placeMultipleOrders(\n            requestParameters?.batchOrders,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<PlaceMultipleOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Position ADL Quantile Estimation\n     *\n     * Values update every 30s.\n     * Values 0, 1, 2, 3, 4 shows the queue position and possibility of ADL from low to high.\n     * For positions of the symbol are in One-way Mode or isolated margined in Hedge Mode, \"LONG\", \"SHORT\", and \"BOTH\" will be returned to show the positions' adl quantiles of different position sides.\n     * If the positions of the symbol are crossed margined in Hedge Mode:\n     * \"HEDGE\" as a sign will be returned instead of \"BOTH\";\n     * A same value caculated on unrealized pnls on long and short sides' positions will be shown for \"LONG\" and \"SHORT\" when there are positions in both of long and short sides.\n     *\n     * Weight: 5\n     *\n     * @summary Position ADL Quantile Estimation(USER_DATA)\n     * @param {PositionAdlQuantileEstimationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionAdlQuantileEstimationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-ADL-Quantile-Estimation Binance API Documentation}\n     */\n    public async positionAdlQuantileEstimation(\n        requestParameters: PositionAdlQuantileEstimationRequest = {}\n    ): Promise<RestApiResponse<PositionAdlQuantileEstimationResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.positionAdlQuantileEstimation(\n                requestParameters?.symbol,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<PositionAdlQuantileEstimationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-Information-V2 Binance API Documentation}\n     */\n    public async positionInformationV2(\n        requestParameters: PositionInformationV2Request = {}\n    ): Promise<RestApiResponse<PositionInformationV2Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.positionInformationV2(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<PositionInformationV2Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V3 (USER_DATA)\n     * @param {PositionInformationV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-Information-V3 Binance API Documentation}\n     */\n    public async positionInformationV3(\n        requestParameters: PositionInformationV3Request = {}\n    ): Promise<RestApiResponse<PositionInformationV3Response>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.positionInformationV3(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<PositionInformationV3Response>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query open order\n     *\n     *\n     * Either`orderId` or `origClientOrderId` must be sent\n     * If the queried order has been filled or cancelled, the error message \"Order does not exist\" will be returned.\n     *\n     * Weight: 1\n     *\n     * @summary Query Current Open Order (USER_DATA)\n     * @param {QueryCurrentOpenOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryCurrentOpenOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Current-Open-Order Binance API Documentation}\n     */\n    public async queryCurrentOpenOrder(\n        requestParameters: QueryCurrentOpenOrderRequest\n    ): Promise<RestApiResponse<QueryCurrentOpenOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryCurrentOpenOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryCurrentOpenOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Order Binance API Documentation}\n     */\n    public async queryOrder(\n        requestParameters: QueryOrderRequest\n    ): Promise<RestApiResponse<QueryOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Testing order request, this order will not be submitted to matching engine\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 0\n     *\n     * @summary Test Order(TRADE)\n     * @param {TestOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TestOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order-Test Binance API Documentation}\n     */\n    public async testOrder(\n        requestParameters: TestOrderRequest\n    ): Promise<RestApiResponse<TestOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.testOrder(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.positionSide,\n            requestParameters?.timeInForce,\n            requestParameters?.quantity,\n            requestParameters?.reduceOnly,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.stopPrice,\n            requestParameters?.closePosition,\n            requestParameters?.activationPrice,\n            requestParameters?.callbackRate,\n            requestParameters?.workingType,\n            requestParameters?.priceProtect,\n            requestParameters?.newOrderRespType,\n            requestParameters?.priceMatch,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.goodTillDate,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<TestOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query user's Force Orders\n     *\n     * If \"autoCloseType\" is not sent, orders with both of the types will be returned\n     * If \"startTime\" is not sent, data within 7 days before \"endTime\" can be queried\n     *\n     * Weight: 20 with symbol, 50 without symbol\n     *\n     * @summary User\\'s Force Orders (USER_DATA)\n     * @param {UsersForceOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UsersForceOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Users-Force-Orders Binance API Documentation}\n     */\n    public async usersForceOrders(\n        requestParameters: UsersForceOrdersRequest = {}\n    ): Promise<RestApiResponse<UsersForceOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.usersForceOrders(\n            requestParameters?.symbol,\n            requestParameters?.autoCloseType,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<UsersForceOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n\nexport enum ChangeMarginTypeMarginTypeEnum {\n    ISOLATED = 'ISOLATED',\n    CROSSED = 'CROSSED',\n}\n\nexport enum ModifyIsolatedPositionMarginPositionSideEnum {\n    BOTH = 'BOTH',\n    LONG = 'LONG',\n    SHORT = 'SHORT',\n}\n\nexport enum ModifyOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum ModifyOrderPriceMatchEnum {\n    NONE = 'NONE',\n    OPPONENT = 'OPPONENT',\n    OPPONENT_5 = 'OPPONENT_5',\n    OPPONENT_10 = 'OPPONENT_10',\n    OPPONENT_20 = 'OPPONENT_20',\n    QUEUE = 'QUEUE',\n    QUEUE_5 = 'QUEUE_5',\n    QUEUE_10 = 'QUEUE_10',\n    QUEUE_20 = 'QUEUE_20',\n}\n\nexport enum NewOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum NewOrderPositionSideEnum {\n    BOTH = 'BOTH',\n    LONG = 'LONG',\n    SHORT = 'SHORT',\n}\n\nexport enum NewOrderTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n    GTX = 'GTX',\n    GTD = 'GTD',\n}\n\nexport enum NewOrderWorkingTypeEnum {\n    MARK_PRICE = 'MARK_PRICE',\n    CONTRACT_PRICE = 'CONTRACT_PRICE',\n}\n\nexport enum NewOrderNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n}\n\nexport enum NewOrderPriceMatchEnum {\n    NONE = 'NONE',\n    OPPONENT = 'OPPONENT',\n    OPPONENT_5 = 'OPPONENT_5',\n    OPPONENT_10 = 'OPPONENT_10',\n    OPPONENT_20 = 'OPPONENT_20',\n    QUEUE = 'QUEUE',\n    QUEUE_5 = 'QUEUE_5',\n    QUEUE_10 = 'QUEUE_10',\n    QUEUE_20 = 'QUEUE_20',\n}\n\nexport enum NewOrderSelfTradePreventionModeEnum {\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n}\n\nexport enum TestOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum TestOrderPositionSideEnum {\n    BOTH = 'BOTH',\n    LONG = 'LONG',\n    SHORT = 'SHORT',\n}\n\nexport enum TestOrderTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n    GTX = 'GTX',\n    GTD = 'GTD',\n}\n\nexport enum TestOrderWorkingTypeEnum {\n    MARK_PRICE = 'MARK_PRICE',\n    CONTRACT_PRICE = 'CONTRACT_PRICE',\n}\n\nexport enum TestOrderNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n}\n\nexport enum TestOrderPriceMatchEnum {\n    NONE = 'NONE',\n    OPPONENT = 'OPPONENT',\n    OPPONENT_5 = 'OPPONENT_5',\n    OPPONENT_10 = 'OPPONENT_10',\n    OPPONENT_20 = 'OPPONENT_20',\n    QUEUE = 'QUEUE',\n    QUEUE_5 = 'QUEUE_5',\n    QUEUE_10 = 'QUEUE_10',\n    QUEUE_20 = 'QUEUE_20',\n}\n\nexport enum TestOrderSelfTradePreventionModeEnum {\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n}\n\nexport enum UsersForceOrdersAutoCloseTypeEnum {\n    LIQUIDATION = 'LIQUIDATION',\n    ADL = 'ADL',\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type { KeepaliveUserDataStreamResponse, StartUserDataStreamResponse } from '../types';\n\n/**\n * UserDataStreamsApi - axios parameter creator\n */\nconst UserDataStreamsApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Close out a user data stream.\n         *\n         * Weight: 1\n         *\n         * @summary Close User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        closeUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/listenKey',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n         *\n         * Weight: 1\n         *\n         * @summary Keepalive User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        keepaliveUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/listenKey',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n         *\n         * Weight: 1\n         *\n         * @summary Start User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        startUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/fapi/v1/listenKey',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * UserDataStreamsApi - interface\n * @interface UserDataStreamsApi\n */\nexport interface UserDataStreamsApiInterface {\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    closeUserDataStream(): Promise<RestApiResponse<void>>;\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    keepaliveUserDataStream(): Promise<RestApiResponse<KeepaliveUserDataStreamResponse>>;\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * UserDataStreamsApi - object-oriented interface\n * @class UserDataStreamsApi\n */\nexport class UserDataStreamsApi implements UserDataStreamsApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = UserDataStreamsApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Close-User-Data-Stream Binance API Documentation}\n     */\n    public async closeUserDataStream(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.closeUserDataStream();\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<KeepaliveUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    public async keepaliveUserDataStream(): Promise<\n        RestApiResponse<KeepaliveUserDataStreamResponse>\n        > {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.keepaliveUserDataStream();\n        return sendRequest<KeepaliveUserDataStreamResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<StartUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Start-User-Data-Stream Binance API Documentation}\n     */\n    public async startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.startUserDataStream();\n        return sendRequest<StartUserDataStreamResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { ConfigurationRestAPI, RestApiResponse, sendRequest } from '@binance/common';\nimport { AccountApi } from './modules/account-api';\nimport { ConvertApi } from './modules/convert-api';\nimport { MarketDataApi } from './modules/market-data-api';\nimport { PortfolioMarginEndpointsApi } from './modules/portfolio-margin-endpoints-api';\nimport { TradeApi } from './modules/trade-api';\nimport { UserDataStreamsApi } from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationV2Request,\n    AccountInformationV3Request,\n    FuturesAccountBalanceV2Request,\n    FuturesAccountBalanceV3Request,\n    FuturesAccountConfigurationRequest,\n    FuturesTradingQuantitativeRulesIndicatorsRequest,\n    GetBnbBurnStatusRequest,\n    GetCurrentMultiAssetsModeRequest,\n    GetCurrentPositionModeRequest,\n    GetDownloadIdForFuturesOrderHistoryRequest,\n    GetDownloadIdForFuturesTradeHistoryRequest,\n    GetDownloadIdForFuturesTransactionHistoryRequest,\n    GetFuturesOrderHistoryDownloadLinkByIdRequest,\n    GetFuturesTradeDownloadLinkByIdRequest,\n    GetFuturesTransactionHistoryDownloadLinkByIdRequest,\n    GetIncomeHistoryRequest,\n    NotionalAndLeverageBracketsRequest,\n    QueryUserRateLimitRequest,\n    SymbolConfigurationRequest,\n    ToggleBnbBurnOnFuturesTradeRequest,\n    UserCommissionRateRequest,\n} from './modules/account-api';\nimport type {\n    AcceptTheOfferedQuoteRequest,\n    ListAllConvertPairsRequest,\n    OrderStatusRequest,\n    SendQuoteRequestRequest,\n} from './modules/convert-api';\nimport type {\n    BasisRequest,\n    CompositeIndexSymbolInformationRequest,\n    CompressedAggregateTradesListRequest,\n    ContinuousContractKlineCandlestickDataRequest,\n    GetFundingRateHistoryRequest,\n    IndexPriceKlineCandlestickDataRequest,\n    KlineCandlestickDataRequest,\n    LongShortRatioRequest,\n    MarkPriceRequest,\n    MarkPriceKlineCandlestickDataRequest,\n    MultiAssetsModeAssetIndexRequest,\n    OldTradesLookupRequest,\n    OpenInterestRequest,\n    OpenInterestStatisticsRequest,\n    OrderBookRequest,\n    PremiumIndexKlineDataRequest,\n    QuarterlyContractSettlementPriceRequest,\n    QueryIndexPriceConstituentsRequest,\n    QueryInsuranceFundBalanceSnapshotRequest,\n    RecentTradesListRequest,\n    SymbolOrderBookTickerRequest,\n    SymbolPriceTickerRequest,\n    SymbolPriceTickerV2Request,\n    TakerBuySellVolumeRequest,\n    Ticker24hrPriceChangeStatisticsRequest,\n    TopTraderLongShortRatioAccountsRequest,\n    TopTraderLongShortRatioPositionsRequest,\n} from './modules/market-data-api';\nimport type { ClassicPortfolioMarginAccountInformationRequest } from './modules/portfolio-margin-endpoints-api';\nimport type {\n    AccountTradeListRequest,\n    AllOrdersRequest,\n    AutoCancelAllOpenOrdersRequest,\n    CancelAllOpenOrdersRequest,\n    CancelMultipleOrdersRequest,\n    CancelOrderRequest,\n    ChangeInitialLeverageRequest,\n    ChangeMarginTypeRequest,\n    ChangeMultiAssetsModeRequest,\n    ChangePositionModeRequest,\n    CurrentAllOpenOrdersRequest,\n    GetOrderModifyHistoryRequest,\n    GetPositionMarginChangeHistoryRequest,\n    ModifyIsolatedPositionMarginRequest,\n    ModifyMultipleOrdersRequest,\n    ModifyOrderRequest,\n    NewOrderRequest,\n    PlaceMultipleOrdersRequest,\n    PositionAdlQuantileEstimationRequest,\n    PositionInformationV2Request,\n    PositionInformationV3Request,\n    QueryCurrentOpenOrderRequest,\n    QueryOrderRequest,\n    TestOrderRequest,\n    UsersForceOrdersRequest,\n} from './modules/trade-api';\nimport type {} from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationV2Response,\n    AccountInformationV3Response,\n    FuturesAccountBalanceV2Response,\n    FuturesAccountBalanceV3Response,\n    FuturesAccountConfigurationResponse,\n    FuturesTradingQuantitativeRulesIndicatorsResponse,\n    GetBnbBurnStatusResponse,\n    GetCurrentMultiAssetsModeResponse,\n    GetCurrentPositionModeResponse,\n    GetDownloadIdForFuturesOrderHistoryResponse,\n    GetDownloadIdForFuturesTradeHistoryResponse,\n    GetDownloadIdForFuturesTransactionHistoryResponse,\n    GetFuturesOrderHistoryDownloadLinkByIdResponse,\n    GetFuturesTradeDownloadLinkByIdResponse,\n    GetFuturesTransactionHistoryDownloadLinkByIdResponse,\n    GetIncomeHistoryResponse,\n    NotionalAndLeverageBracketsResponse,\n    QueryUserRateLimitResponse,\n    SymbolConfigurationResponse,\n    ToggleBnbBurnOnFuturesTradeResponse,\n    UserCommissionRateResponse,\n} from './types';\nimport type {\n    AcceptTheOfferedQuoteResponse,\n    ListAllConvertPairsResponse,\n    OrderStatusResponse,\n    SendQuoteRequestResponse,\n} from './types';\nimport type {\n    BasisResponse,\n    CheckServerTimeResponse,\n    CompositeIndexSymbolInformationResponse,\n    CompressedAggregateTradesListResponse,\n    ContinuousContractKlineCandlestickDataResponse,\n    ExchangeInformationResponse,\n    GetFundingRateHistoryResponse,\n    GetFundingRateInfoResponse,\n    IndexPriceKlineCandlestickDataResponse,\n    KlineCandlestickDataResponse,\n    LongShortRatioResponse,\n    MarkPriceResponse,\n    MarkPriceKlineCandlestickDataResponse,\n    MultiAssetsModeAssetIndexResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OpenInterestStatisticsResponse,\n    OrderBookResponse,\n    PremiumIndexKlineDataResponse,\n    QuarterlyContractSettlementPriceResponse,\n    QueryIndexPriceConstituentsResponse,\n    QueryInsuranceFundBalanceSnapshotResponse,\n    RecentTradesListResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\n    SymbolPriceTickerV2Response,\n    TakerBuySellVolumeResponse,\n    Ticker24hrPriceChangeStatisticsResponse,\n    TopTraderLongShortRatioAccountsResponse,\n    TopTraderLongShortRatioPositionsResponse,\n} from './types';\nimport type { ClassicPortfolioMarginAccountInformationResponse } from './types';\nimport type {\n    AccountTradeListResponse,\n    AllOrdersResponse,\n    AutoCancelAllOpenOrdersResponse,\n    CancelAllOpenOrdersResponse,\n    CancelMultipleOrdersResponse,\n    CancelOrderResponse,\n    ChangeInitialLeverageResponse,\n    ChangeMarginTypeResponse,\n    ChangeMultiAssetsModeResponse,\n    ChangePositionModeResponse,\n    CurrentAllOpenOrdersResponse,\n    GetOrderModifyHistoryResponse,\n    GetPositionMarginChangeHistoryResponse,\n    ModifyIsolatedPositionMarginResponse,\n    ModifyMultipleOrdersResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PlaceMultipleOrdersResponse,\n    PositionAdlQuantileEstimationResponse,\n    PositionInformationV2Response,\n    PositionInformationV3Response,\n    QueryCurrentOpenOrderResponse,\n    QueryOrderResponse,\n    TestOrderResponse,\n    UsersForceOrdersResponse,\n} from './types';\nimport type { KeepaliveUserDataStreamResponse, StartUserDataStreamResponse } from './types';\n\nexport class RestAPI {\n    private configuration: ConfigurationRestAPI;\n    private accountApi: AccountApi;\n    private convertApi: ConvertApi;\n    private marketDataApi: MarketDataApi;\n    private portfolioMarginEndpointsApi: PortfolioMarginEndpointsApi;\n    private tradeApi: TradeApi;\n    private userDataStreamsApi: UserDataStreamsApi;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.accountApi = new AccountApi(configuration);\n        this.convertApi = new ConvertApi(configuration);\n        this.marketDataApi = new MarketDataApi(configuration);\n        this.portfolioMarginEndpointsApi = new PortfolioMarginEndpointsApi(configuration);\n        this.tradeApi = new TradeApi(configuration);\n        this.userDataStreamsApi = new UserDataStreamsApi(configuration);\n    }\n\n    /**\n     * Generic function to send a request.\n     * @param endpoint - The API endpoint to call.\n     * @param method - HTTP method to use (GET, POST, DELETE, etc.).\n     * @param params - Query parameters for the request.\n     *\n     * @returns A promise resolving to the response data object.\n     */\n    sendRequest<T>(\n        endpoint: string,\n        method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH',\n        params: Record<string, unknown> = {}\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(this.configuration, endpoint, method, params, undefined);\n    }\n\n    /**\n     * Generic function to send a signed request.\n     * @param endpoint - The API endpoint to call.\n     * @param method - HTTP method to use (GET, POST, DELETE, etc.).\n     * @param params - Query parameters for the request.\n     *\n     * @returns A promise resolving to the response data object.\n     */\n    sendSignedRequest<T>(\n        endpoint: string,\n        method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH',\n        params: Record<string, unknown> = {}\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(this.configuration, endpoint, method, params, undefined, {\n            isSigned: true,\n        });\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Information-V2 Binance API Documentation}\n     */\n    accountInformationV2(\n        requestParameters: AccountInformationV2Request = {}\n    ): Promise<RestApiResponse<AccountInformationV2Response>> {\n        return this.accountApi.accountInformationV2(requestParameters);\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V3(USER_DATA)\n     * @param {AccountInformationV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Information-V3 Binance API Documentation}\n     */\n    accountInformationV3(\n        requestParameters: AccountInformationV3Request = {}\n    ): Promise<RestApiResponse<AccountInformationV3Response>> {\n        return this.accountApi.accountInformationV3(requestParameters);\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2 (USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Account-Balance-V2 Binance API Documentation}\n     */\n    futuresAccountBalanceV2(\n        requestParameters: FuturesAccountBalanceV2Request = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceV2Response>> {\n        return this.accountApi.futuresAccountBalanceV2(requestParameters);\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V3 (USER_DATA)\n     * @param {FuturesAccountBalanceV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Account-Balance-V3 Binance API Documentation}\n     */\n    futuresAccountBalanceV3(\n        requestParameters: FuturesAccountBalanceV3Request = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceV3Response>> {\n        return this.accountApi.futuresAccountBalanceV3(requestParameters);\n    }\n\n    /**\n     * Query account configuration\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Configuration(USER_DATA)\n     * @param {FuturesAccountConfigurationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountConfigurationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Account-Config Binance API Documentation}\n     */\n    futuresAccountConfiguration(\n        requestParameters: FuturesAccountConfigurationRequest = {}\n    ): Promise<RestApiResponse<FuturesAccountConfigurationResponse>> {\n        return this.accountApi.futuresAccountConfiguration(requestParameters);\n    }\n\n    /**\n     * Futures trading quantitative rules indicators, for more information on this, please refer to the [Futures Trading Quantitative Rules](https://www.binance.com/en/support/faq/4f462ebe6ff445d4a170be7d9e897272)\n     *\n     * Weight: - 1 for a single symbol\n     * - 10 when the symbol parameter is omitted\n     *\n     * @summary Futures Trading Quantitative Rules Indicators (USER_DATA)\n     * @param {FuturesTradingQuantitativeRulesIndicatorsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesTradingQuantitativeRulesIndicatorsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Futures-Trading-Quantitative-Rules-Indicators Binance API Documentation}\n     */\n    futuresTradingQuantitativeRulesIndicators(\n        requestParameters: FuturesTradingQuantitativeRulesIndicatorsRequest = {}\n    ): Promise<RestApiResponse<FuturesTradingQuantitativeRulesIndicatorsResponse>> {\n        return this.accountApi.futuresTradingQuantitativeRulesIndicators(requestParameters);\n    }\n\n    /**\n     * Get user's BNB Fee Discount (Fee Discount On or Fee Discount Off )\n     *\n     * Weight: 30\n     *\n     * @summary Get BNB Burn Status (USER_DATA)\n     * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-BNB-Burn-Status Binance API Documentation}\n     */\n    getBnbBurnStatus(\n        requestParameters: GetBnbBurnStatusRequest = {}\n    ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n        return this.accountApi.getBnbBurnStatus(requestParameters);\n    }\n\n    /**\n     * Get user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Multi-Assets Mode (USER_DATA)\n     * @param {GetCurrentMultiAssetsModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetCurrentMultiAssetsModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Current-Multi-Assets-Mode Binance API Documentation}\n     */\n    getCurrentMultiAssetsMode(\n        requestParameters: GetCurrentMultiAssetsModeRequest = {}\n    ): Promise<RestApiResponse<GetCurrentMultiAssetsModeResponse>> {\n        return this.accountApi.getCurrentMultiAssetsMode(requestParameters);\n    }\n\n    /**\n     * Get user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 30\n     *\n     * @summary Get Current Position Mode(USER_DATA)\n     * @param {GetCurrentPositionModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetCurrentPositionModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Current-Position-Mode Binance API Documentation}\n     */\n    getCurrentPositionMode(\n        requestParameters: GetCurrentPositionModeRequest = {}\n    ): Promise<RestApiResponse<GetCurrentPositionModeResponse>> {\n        return this.accountApi.getCurrentPositionMode(requestParameters);\n    }\n\n    /**\n     * Get Download Id For Futures Order History\n     *\n     * Request Limitation is 10 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Order History (USER_DATA)\n     * @param {GetDownloadIdForFuturesOrderHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesOrderHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Order-History Binance API Documentation}\n     */\n    getDownloadIdForFuturesOrderHistory(\n        requestParameters: GetDownloadIdForFuturesOrderHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesOrderHistoryResponse>> {\n        return this.accountApi.getDownloadIdForFuturesOrderHistory(requestParameters);\n    }\n\n    /**\n     * Get download id for futures trade history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Trade History (USER_DATA)\n     * @param {GetDownloadIdForFuturesTradeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesTradeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Trade-History Binance API Documentation}\n     */\n    getDownloadIdForFuturesTradeHistory(\n        requestParameters: GetDownloadIdForFuturesTradeHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTradeHistoryResponse>> {\n        return this.accountApi.getDownloadIdForFuturesTradeHistory(requestParameters);\n    }\n\n    /**\n     * Get download id for futures transaction history\n     *\n     * Request Limitation is 5 times per month, shared by front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 1000\n     *\n     * @summary Get Download Id For Futures Transaction History(USER_DATA)\n     * @param {GetDownloadIdForFuturesTransactionHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForFuturesTransactionHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Download-Id-For-Futures-Transaction-History Binance API Documentation}\n     */\n    getDownloadIdForFuturesTransactionHistory(\n        requestParameters: GetDownloadIdForFuturesTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForFuturesTransactionHistoryResponse>> {\n        return this.accountApi.getDownloadIdForFuturesTransactionHistory(requestParameters);\n    }\n\n    /**\n     * Get futures order history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Order History Download Link by Id (USER_DATA)\n     * @param {GetFuturesOrderHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesOrderHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Order-History-Download-Link-by-Id Binance API Documentation}\n     */\n    getFuturesOrderHistoryDownloadLinkById(\n        requestParameters: GetFuturesOrderHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesOrderHistoryDownloadLinkByIdResponse>> {\n        return this.accountApi.getFuturesOrderHistoryDownloadLinkById(requestParameters);\n    }\n\n    /**\n     * Get futures trade download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Trade Download Link by Id(USER_DATA)\n     * @param {GetFuturesTradeDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesTradeDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Trade-Download-Link-by-Id Binance API Documentation}\n     */\n    getFuturesTradeDownloadLinkById(\n        requestParameters: GetFuturesTradeDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTradeDownloadLinkByIdResponse>> {\n        return this.accountApi.getFuturesTradeDownloadLinkById(requestParameters);\n    }\n\n    /**\n     * Get futures transaction history download link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 10\n     *\n     * @summary Get Futures Transaction History Download Link by Id (USER_DATA)\n     * @param {GetFuturesTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFuturesTransactionHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Futures-Transaction-History-Download-Link-by-Id Binance API Documentation}\n     */\n    getFuturesTransactionHistoryDownloadLinkById(\n        requestParameters: GetFuturesTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetFuturesTransactionHistoryDownloadLinkByIdResponse>> {\n        return this.accountApi.getFuturesTransactionHistoryDownloadLinkById(requestParameters);\n    }\n\n    /**\n     * Query income history\n     *\n     * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n     * If `incomeType ` is not sent, all kinds of flow will be returned\n     * \"trandId\" is unique in the same incomeType for a user\n     * Income history only contains data for the last three months\n     *\n     * Weight: 30\n     *\n     * @summary Get Income History (USER_DATA)\n     * @param {GetIncomeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetIncomeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Get-Income-History Binance API Documentation}\n     */\n    getIncomeHistory(\n        requestParameters: GetIncomeHistoryRequest = {}\n    ): Promise<RestApiResponse<GetIncomeHistoryResponse>> {\n        return this.accountApi.getIncomeHistory(requestParameters);\n    }\n\n    /**\n     * Query user notional and leverage bracket on speicfic symbol\n     *\n     * Weight: 1\n     *\n     * @summary Notional and Leverage Brackets (USER_DATA)\n     * @param {NotionalAndLeverageBracketsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalAndLeverageBracketsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Notional-and-Leverage-Brackets Binance API Documentation}\n     */\n    notionalAndLeverageBrackets(\n        requestParameters: NotionalAndLeverageBracketsRequest = {}\n    ): Promise<RestApiResponse<NotionalAndLeverageBracketsResponse>> {\n        return this.accountApi.notionalAndLeverageBrackets(requestParameters);\n    }\n\n    /**\n     * Query User Rate Limit\n     *\n     * Weight: 1\n     *\n     * @summary Query User Rate Limit (USER_DATA)\n     * @param {QueryUserRateLimitRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryUserRateLimitResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Query-Rate-Limit Binance API Documentation}\n     */\n    queryUserRateLimit(\n        requestParameters: QueryUserRateLimitRequest = {}\n    ): Promise<RestApiResponse<QueryUserRateLimitResponse>> {\n        return this.accountApi.queryUserRateLimit(requestParameters);\n    }\n\n    /**\n     * Get current account symbol configuration.\n     *\n     * Weight: 5\n     *\n     * @summary Symbol Configuration(USER_DATA)\n     * @param {SymbolConfigurationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolConfigurationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Symbol-Config Binance API Documentation}\n     */\n    symbolConfiguration(\n        requestParameters: SymbolConfigurationRequest = {}\n    ): Promise<RestApiResponse<SymbolConfigurationResponse>> {\n        return this.accountApi.symbolConfiguration(requestParameters);\n    }\n\n    /**\n     * Change user's BNB Fee Discount (Fee Discount On or Fee Discount Off ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Toggle BNB Burn On Futures Trade (TRADE)\n     * @param {ToggleBnbBurnOnFuturesTradeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ToggleBnbBurnOnFuturesTradeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/Toggle-BNB-Burn-On-Futures-Trade Binance API Documentation}\n     */\n    toggleBnbBurnOnFuturesTrade(\n        requestParameters: ToggleBnbBurnOnFuturesTradeRequest\n    ): Promise<RestApiResponse<ToggleBnbBurnOnFuturesTradeResponse>> {\n        return this.accountApi.toggleBnbBurnOnFuturesTrade(requestParameters);\n    }\n\n    /**\n     * Get User Commission Rate\n     *\n     * Weight: 20\n     *\n     * @summary User Commission Rate (USER_DATA)\n     * @param {UserCommissionRateRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UserCommissionRateResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/rest-api/User-Commission-Rate Binance API Documentation}\n     */\n    userCommissionRate(\n        requestParameters: UserCommissionRateRequest\n    ): Promise<RestApiResponse<UserCommissionRateResponse>> {\n        return this.accountApi.userCommissionRate(requestParameters);\n    }\n\n    /**\n     * Accept the offered quote by quote ID.\n     *\n     * Weight: 200(IP)\n     *\n     * @summary Accept the offered quote (USER_DATA)\n     * @param {AcceptTheOfferedQuoteRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AcceptTheOfferedQuoteResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Accept-Quote Binance API Documentation}\n     */\n    acceptTheOfferedQuote(\n        requestParameters: AcceptTheOfferedQuoteRequest\n    ): Promise<RestApiResponse<AcceptTheOfferedQuoteResponse>> {\n        return this.convertApi.acceptTheOfferedQuote(requestParameters);\n    }\n\n    /**\n     * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n     *\n     * User needs to supply either or both of the input parameter\n     * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n     * Asset BNFCR is only available to convert for MICA region users.\n     *\n     * Weight: 20(IP)\n     *\n     * @summary List All Convert Pairs\n     * @param {ListAllConvertPairsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ListAllConvertPairsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/ Binance API Documentation}\n     */\n    listAllConvertPairs(\n        requestParameters: ListAllConvertPairsRequest = {}\n    ): Promise<RestApiResponse<ListAllConvertPairsResponse>> {\n        return this.convertApi.listAllConvertPairs(requestParameters);\n    }\n\n    /**\n     * Query order status by order ID.\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Order status(USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderStatusResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Order-Status Binance API Documentation}\n     */\n    orderStatus(\n        requestParameters: OrderStatusRequest = {}\n    ): Promise<RestApiResponse<OrderStatusResponse>> {\n        return this.convertApi.orderStatus(requestParameters);\n    }\n\n    /**\n     * Request a quote for the requested token pairs\n     *\n     * Either fromAmount or toAmount should be sent\n     * `quoteId` will be returned only if you have enough funds to convert\n     *\n     * Weight: 50(IP)\n     *\n     * @summary Send Quote Request(USER_DATA)\n     * @param {SendQuoteRequestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SendQuoteRequestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/convert/Send-quote-request Binance API Documentation}\n     */\n    sendQuoteRequest(\n        requestParameters: SendQuoteRequestRequest\n    ): Promise<RestApiResponse<SendQuoteRequestResponse>> {\n        return this.convertApi.sendQuoteRequest(requestParameters);\n    }\n\n    /**\n     * Query future basis\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     *\n     * Weight: 0\n     *\n     * @summary Basis\n     * @param {BasisRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<BasisResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Basis Binance API Documentation}\n     */\n    basis(requestParameters: BasisRequest): Promise<RestApiResponse<BasisResponse>> {\n        return this.marketDataApi.basis(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     * @returns {Promise<RestApiResponse<CheckServerTimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Check-Server-Time Binance API Documentation}\n     */\n    checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>> {\n        return this.marketDataApi.checkServerTime();\n    }\n\n    /**\n     * Query composite index symbol information\n     *\n     * Only for composite index symbols\n     *\n     * Weight: 1\n     *\n     * @summary Composite Index Symbol Information\n     * @param {CompositeIndexSymbolInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CompositeIndexSymbolInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Composite-Index-Symbol-Information Binance API Documentation}\n     */\n    compositeIndexSymbolInformation(\n        requestParameters: CompositeIndexSymbolInformationRequest = {}\n    ): Promise<RestApiResponse<CompositeIndexSymbolInformationResponse>> {\n        return this.marketDataApi.compositeIndexSymbolInformation(requestParameters);\n    }\n\n    /**\n     * Get compressed, aggregate market trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\n     *\n     *\n     * support querying futures trade histories that are not older than one year\n     * If both `startTime` and `endTime` are sent, time between `startTime` and `endTime` must be less than 1 hour.\n     * If `fromId`, `startTime`, and `endTime` are not sent, the most recent aggregate trades will be returned.\n     * Only market trades will be aggregated and returned, which means the insurance fund trades and ADL trades won't be aggregated.\n     * Sending both `startTime`/`endTime` and `fromId` might cause response timeout, please send either `fromId` or `startTime`/`endTime`\n     *\n     * Weight: 20\n     *\n     * @summary Compressed/Aggregate Trades List\n     * @param {CompressedAggregateTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CompressedAggregateTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Compressed-Aggregate-Trades-List Binance API Documentation}\n     */\n    compressedAggregateTradesList(\n        requestParameters: CompressedAggregateTradesListRequest\n    ): Promise<RestApiResponse<CompressedAggregateTradesListResponse>> {\n        return this.marketDataApi.compressedAggregateTradesList(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for a specific contract type.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Continuous Contract Kline/Candlestick Data\n     * @param {ContinuousContractKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ContinuousContractKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Continuous-Contract-Kline-Candlestick-Data Binance API Documentation}\n     */\n    continuousContractKlineCandlestickData(\n        requestParameters: ContinuousContractKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<ContinuousContractKlineCandlestickDataResponse>> {\n        return this.marketDataApi.continuousContractKlineCandlestickData(requestParameters);\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     * @returns {Promise<RestApiResponse<ExchangeInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Exchange-Information Binance API Documentation}\n     */\n    exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>> {\n        return this.marketDataApi.exchangeInformation();\n    }\n\n    /**\n     * Get Funding Rate History\n     *\n     *\n     * If `startTime` and `endTime` are not sent, the most recent `limit` datas are returned.\n     * If the number of data between `startTime` and `endTime` is larger than `limit`, return as `startTime` + `limit`.\n     * In ascending order.\n     *\n     * Weight: share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate History\n     * @param {GetFundingRateHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFundingRateHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Get-Funding-Rate-History Binance API Documentation}\n     */\n    getFundingRateHistory(\n        requestParameters: GetFundingRateHistoryRequest = {}\n    ): Promise<RestApiResponse<GetFundingRateHistoryResponse>> {\n        return this.marketDataApi.getFundingRateHistory(requestParameters);\n    }\n\n    /**\n     * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n     *\n     * Weight: 0\n     * share 500/5min/IP rate limit with GET /fapi/v1/fundingInfo\n     *\n     * @summary Get Funding Rate Info\n     * @returns {Promise<RestApiResponse<GetFundingRateInfoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Get-Funding-Rate-Info Binance API Documentation}\n     */\n    getFundingRateInfo(): Promise<RestApiResponse<GetFundingRateInfoResponse>> {\n        return this.marketDataApi.getFundingRateInfo();\n    }\n\n    /**\n     * Kline/candlestick bars for the index price of a pair.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Index Price Kline/Candlestick Data\n     * @param {IndexPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<IndexPriceKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Index-Price-Kline-Candlestick-Data Binance API Documentation}\n     */\n    indexPriceKlineCandlestickData(\n        requestParameters: IndexPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<IndexPriceKlineCandlestickDataResponse>> {\n        return this.marketDataApi.indexPriceKlineCandlestickData(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<KlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Kline-Candlestick-Data Binance API Documentation}\n     */\n    klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>> {\n        return this.marketDataApi.klineCandlestickData(requestParameters);\n    }\n\n    /**\n     * Query symbol Long/Short Ratio\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Long/Short Ratio\n     * @param {LongShortRatioRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<LongShortRatioResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Long-Short-Ratio Binance API Documentation}\n     */\n    longShortRatio(\n        requestParameters: LongShortRatioRequest\n    ): Promise<RestApiResponse<LongShortRatioResponse>> {\n        return this.marketDataApi.longShortRatio(requestParameters);\n    }\n\n    /**\n     * Mark Price and Funding Rate\n     *\n     * Weight: 1\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Mark-Price Binance API Documentation}\n     */\n    markPrice(\n        requestParameters: MarkPriceRequest = {}\n    ): Promise<RestApiResponse<MarkPriceResponse>> {\n        return this.marketDataApi.markPrice(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Mark Price Kline/Candlestick Data\n     * @param {MarkPriceKlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MarkPriceKlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Mark-Price-Kline-Candlestick-Data Binance API Documentation}\n     */\n    markPriceKlineCandlestickData(\n        requestParameters: MarkPriceKlineCandlestickDataRequest\n    ): Promise<RestApiResponse<MarkPriceKlineCandlestickDataResponse>> {\n        return this.marketDataApi.markPriceKlineCandlestickData(requestParameters);\n    }\n\n    /**\n     * asset index for Multi-Assets mode\n     *\n     * Weight: 1 for a single symbol; 10 when the symbol parameter is omitted\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MultiAssetsModeAssetIndexResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Multi-Assets-Mode-Asset-Index Binance API Documentation}\n     */\n    multiAssetsModeAssetIndex(\n        requestParameters: MultiAssetsModeAssetIndexRequest = {}\n    ): Promise<RestApiResponse<MultiAssetsModeAssetIndexResponse>> {\n        return this.marketDataApi.multiAssetsModeAssetIndex(requestParameters);\n    }\n\n    /**\n     * Get older market historical trades.\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     * Only supports data from within the last three months\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OldTradesLookupResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Old-Trades-Lookup Binance API Documentation}\n     */\n    oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>> {\n        return this.marketDataApi.oldTradesLookup(requestParameters);\n    }\n\n    /**\n     * Get present open interest of a specific symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Open-Interest Binance API Documentation}\n     */\n    openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>> {\n        return this.marketDataApi.openInterest(requestParameters);\n    }\n\n    /**\n     * Open Interest Statistics\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 1 month is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest Statistics\n     * @param {OpenInterestStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Open-Interest-Statistics Binance API Documentation}\n     */\n    openInterestStatistics(\n        requestParameters: OpenInterestStatisticsRequest\n    ): Promise<RestApiResponse<OpenInterestStatisticsResponse>> {\n        return this.marketDataApi.openInterestStatistics(requestParameters);\n    }\n\n    /**\n     * Query symbol orderbook\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderBookResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Order-Book Binance API Documentation}\n     */\n    orderBook(requestParameters: OrderBookRequest): Promise<RestApiResponse<OrderBookResponse>> {\n        return this.marketDataApi.orderBook(requestParameters);\n    }\n\n    /**\n     * Premium index kline bars of a symbol. Klines are uniquely identified by their open time.\n     *\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: based on parameter LIMIT\n     * | LIMIT       | weight |\n     * | ----------- | ------ |\n     * | [1,100)     | 1      |\n     * | [100, 500)  | 2      |\n     * | [500, 1000] | 5      |\n     * | > 1000      | 10     |\n     *\n     * @summary Premium index Kline Data\n     * @param {PremiumIndexKlineDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PremiumIndexKlineDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Premium-index-Kline-Data Binance API Documentation}\n     */\n    premiumIndexKlineData(\n        requestParameters: PremiumIndexKlineDataRequest\n    ): Promise<RestApiResponse<PremiumIndexKlineDataResponse>> {\n        return this.marketDataApi.premiumIndexKlineData(requestParameters);\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * Weight: 0\n     *\n     * @summary Quarterly Contract Settlement Price\n     * @param {QuarterlyContractSettlementPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QuarterlyContractSettlementPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Delivery-Price Binance API Documentation}\n     */\n    quarterlyContractSettlementPrice(\n        requestParameters: QuarterlyContractSettlementPriceRequest\n    ): Promise<RestApiResponse<QuarterlyContractSettlementPriceResponse>> {\n        return this.marketDataApi.quarterlyContractSettlementPrice(requestParameters);\n    }\n\n    /**\n     * Query index price constituents\n     *\n     * Weight: 2\n     *\n     * @summary Query Index Price Constituents\n     * @param {QueryIndexPriceConstituentsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryIndexPriceConstituentsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Index-Constituents Binance API Documentation}\n     */\n    queryIndexPriceConstituents(\n        requestParameters: QueryIndexPriceConstituentsRequest\n    ): Promise<RestApiResponse<QueryIndexPriceConstituentsResponse>> {\n        return this.marketDataApi.queryIndexPriceConstituents(requestParameters);\n    }\n\n    /**\n     * Query Insurance Fund Balance Snapshot\n     *\n     * Weight: 1\n     *\n     * @summary Query Insurance Fund Balance Snapshot\n     * @param {QueryInsuranceFundBalanceSnapshotRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryInsuranceFundBalanceSnapshotResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Query-Insurance-Fund-Balance-Snapshot Binance API Documentation}\n     */\n    queryInsuranceFundBalanceSnapshot(\n        requestParameters: QueryInsuranceFundBalanceSnapshotRequest = {}\n    ): Promise<RestApiResponse<QueryInsuranceFundBalanceSnapshotResponse>> {\n        return this.marketDataApi.queryInsuranceFundBalanceSnapshot(requestParameters);\n    }\n\n    /**\n     * Get recent market trades\n     *\n     * Market trades means trades filled in the order book. Only market trades will be returned, which means the insurance fund trades and ADL trades won't be returned.\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Recent-Trades-List Binance API Documentation}\n     */\n    recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>> {\n        return this.marketDataApi.recentTradesList(requestParameters);\n    }\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolOrderBookTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Order-Book-Ticker Binance API Documentation}\n     */\n    symbolOrderBookTicker(\n        requestParameters: SymbolOrderBookTickerRequest = {}\n    ): Promise<RestApiResponse<SymbolOrderBookTickerResponse>> {\n        return this.marketDataApi.symbolOrderBookTicker(requestParameters);\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Price-Ticker Binance API Documentation}\n     */\n    symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest = {}\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>> {\n        return this.marketDataApi.symbolPriceTicker(requestParameters);\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker V2\n     * @param {SymbolPriceTickerV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Price-Ticker-V2 Binance API Documentation}\n     */\n    symbolPriceTickerV2(\n        requestParameters: SymbolPriceTickerV2Request = {}\n    ): Promise<RestApiResponse<SymbolPriceTickerV2Response>> {\n        return this.marketDataApi.symbolPriceTickerV2(requestParameters);\n    }\n\n    /**\n     * Taker Buy/Sell Volume\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Taker Buy/Sell Volume\n     * @param {TakerBuySellVolumeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TakerBuySellVolumeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Taker-BuySell-Volume Binance API Documentation}\n     */\n    takerBuySellVolume(\n        requestParameters: TakerBuySellVolumeRequest\n    ): Promise<RestApiResponse<TakerBuySellVolumeResponse>> {\n        return this.marketDataApi.takerBuySellVolume(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Test-Connectivity Binance API Documentation}\n     */\n    testConnectivity(): Promise<RestApiResponse<void>> {\n        return this.marketDataApi.testConnectivity();\n    }\n\n    /**\n     * 24 hour rolling window price change statistics.\n     **Careful** when accessing this with no symbol.\n     *\n     * If the symbol is not sent, tickers for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 40 when the symbol parameter is omitted\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/24hr-Ticker-Price-Change-Statistics Binance API Documentation}\n     */\n    ticker24hrPriceChangeStatistics(\n        requestParameters: Ticker24hrPriceChangeStatisticsRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>> {\n        return this.marketDataApi.ticker24hrPriceChangeStatistics(requestParameters);\n    }\n\n    /**\n     * The proportion of net long and net short accounts to total accounts of the top 20% users with the highest margin balance. Each account is counted once only.\n     * Long Account % = Accounts of top traders with net long positions / Total accounts of top traders with open positions\n     * Short Account % = Accounts of top traders with net short positions / Total accounts of top traders with open positions\n     * Long/Short Ratio (Accounts) = Long Account % / Short Account %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Accounts)\n     * @param {TopTraderLongShortRatioAccountsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TopTraderLongShortRatioAccountsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Top-Long-Short-Account-Ratio Binance API Documentation}\n     */\n    topTraderLongShortRatioAccounts(\n        requestParameters: TopTraderLongShortRatioAccountsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioAccountsResponse>> {\n        return this.marketDataApi.topTraderLongShortRatioAccounts(requestParameters);\n    }\n\n    /**\n     * The proportion of net long and net short positions to total open positions of the top 20% users with the highest margin balance.\n     * Long Position % = Long positions of top traders / Total open positions of top traders\n     * Short Position % = Short positions of top traders / Total open positions of top traders\n     * Long/Short Ratio (Positions) = Long Position % / Short Position %\n     *\n     * If startTime and endTime are not sent, the most recent data is returned.\n     * Only the data of the latest 30 days is available.\n     * IP rate limit 1000 requests/5min\n     *\n     * Weight: 0\n     *\n     * @summary Top Trader Long/Short Ratio (Positions)\n     * @param {TopTraderLongShortRatioPositionsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TopTraderLongShortRatioPositionsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Top-Trader-Long-Short-Ratio Binance API Documentation}\n     */\n    topTraderLongShortRatioPositions(\n        requestParameters: TopTraderLongShortRatioPositionsRequest\n    ): Promise<RestApiResponse<TopTraderLongShortRatioPositionsResponse>> {\n        return this.marketDataApi.topTraderLongShortRatioPositions(requestParameters);\n    }\n\n    /**\n     * Get Classic Portfolio Margin current account information.\n     *\n     *\n     * maxWithdrawAmount is for asset transfer out to the spot wallet.\n     *\n     * Weight: 5\n     *\n     * @summary Classic Portfolio Margin Account Information (USER_DATA)\n     * @param {ClassicPortfolioMarginAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ClassicPortfolioMarginAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/portfolio-margin-endpoints/Classic-Portfolio-Margin-Account-Information Binance API Documentation}\n     */\n    classicPortfolioMarginAccountInformation(\n        requestParameters: ClassicPortfolioMarginAccountInformationRequest\n    ): Promise<RestApiResponse<ClassicPortfolioMarginAccountInformationResponse>> {\n        return this.portfolioMarginEndpointsApi.classicPortfolioMarginAccountInformation(\n            requestParameters\n        );\n    }\n\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * If `startTime` and `endTime` are both not sent, then the last 7 days' data will be returned.\n     * The time between `startTime` and `endTime` cannot be longer than 7 days.\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`.\n     * Only support querying trade in the past 6 months\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Account-Trade-List Binance API Documentation}\n     */\n    accountTradeList(\n        requestParameters: AccountTradeListRequest\n    ): Promise<RestApiResponse<AccountTradeListResponse>> {\n        return this.tradeApi.accountTradeList(requestParameters);\n    }\n\n    /**\n     * Get all account orders; active, canceled, or filled.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * The query time period must be less then 7 days( default as the recent 7 days).\n     *\n     * Weight: 5\n     *\n     * @summary All Orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AllOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders Binance API Documentation}\n     */\n    allOrders(requestParameters: AllOrdersRequest): Promise<RestApiResponse<AllOrdersResponse>> {\n        return this.tradeApi.allOrders(requestParameters);\n    }\n\n    /**\n     * Cancel all open orders of the specified symbol at the end of the specified countdown.\n     * The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and replaced by a new one.\n     *\n     * Example usage:\n     * Call this endpoint at 30s intervals with an countdownTime of 120000 (120s).\n     * If this endpoint is not called within 120 seconds, all your orders of the specified symbol will be automatically canceled.\n     * If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     *\n     * The system will check all countdowns **approximately every 10 milliseconds**, so please note that sufficient redundancy should be considered when using this function. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Auto-Cancel-All-Open-Orders Binance API Documentation}\n     */\n    autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>> {\n        return this.tradeApi.autoCancelAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * Cancel All Open Orders\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Open Orders (TRADE)\n     * @param {CancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-All-Open-Orders Binance API Documentation}\n     */\n    cancelAllOpenOrders(\n        requestParameters: CancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<CancelAllOpenOrdersResponse>> {\n        return this.tradeApi.cancelAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * Cancel Multiple Orders\n     *\n     * Either `orderIdList` or `origClientOrderIdList ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Orders (TRADE)\n     * @param {CancelMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Multiple-Orders Binance API Documentation}\n     */\n    cancelMultipleOrders(\n        requestParameters: CancelMultipleOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOrdersResponse>> {\n        return this.tradeApi.cancelMultipleOrders(requestParameters);\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Order Binance API Documentation}\n     */\n    cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<RestApiResponse<CancelOrderResponse>> {\n        return this.tradeApi.cancelOrder(requestParameters);\n    }\n\n    /**\n     * Change user's initial leverage of specific symbol market.\n     *\n     * Weight: 1\n     *\n     * @summary Change Initial Leverage(TRADE)\n     * @param {ChangeInitialLeverageRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeInitialLeverageResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Initial-Leverage Binance API Documentation}\n     */\n    changeInitialLeverage(\n        requestParameters: ChangeInitialLeverageRequest\n    ): Promise<RestApiResponse<ChangeInitialLeverageResponse>> {\n        return this.tradeApi.changeInitialLeverage(requestParameters);\n    }\n\n    /**\n     * Change symbol level margin type\n     *\n     * Weight: 1\n     *\n     * @summary Change Margin Type(TRADE)\n     * @param {ChangeMarginTypeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeMarginTypeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Margin-Type Binance API Documentation}\n     */\n    changeMarginType(\n        requestParameters: ChangeMarginTypeRequest\n    ): Promise<RestApiResponse<ChangeMarginTypeResponse>> {\n        return this.tradeApi.changeMarginType(requestParameters);\n    }\n\n    /**\n     * Change user's Multi-Assets mode (Multi-Assets Mode or Single-Asset Mode) on ***Every symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Multi-Assets Mode (TRADE)\n     * @param {ChangeMultiAssetsModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangeMultiAssetsModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Multi-Assets-Mode Binance API Documentation}\n     */\n    changeMultiAssetsMode(\n        requestParameters: ChangeMultiAssetsModeRequest\n    ): Promise<RestApiResponse<ChangeMultiAssetsModeResponse>> {\n        return this.tradeApi.changeMultiAssetsMode(requestParameters);\n    }\n\n    /**\n     * Change user's position mode (Hedge Mode or One-way Mode ) on ***EVERY symbol***\n     *\n     * Weight: 1\n     *\n     * @summary Change Position Mode(TRADE)\n     * @param {ChangePositionModeRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ChangePositionModeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Change-Position-Mode Binance API Documentation}\n     */\n    changePositionMode(\n        requestParameters: ChangePositionModeRequest\n    ): Promise<RestApiResponse<ChangePositionModeResponse>> {\n        return this.tradeApi.changePositionMode(requestParameters);\n    }\n\n    /**\n     * Get all open orders on a symbol.\n     *\n     * If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     * Careful when accessing this with no symbol.\n     *\n     * @summary Current All Open Orders (USER_DATA)\n     * @param {CurrentAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CurrentAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Current-All-Open-Orders Binance API Documentation}\n     */\n    currentAllOpenOrders(\n        requestParameters: CurrentAllOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<CurrentAllOpenOrdersResponse>> {\n        return this.tradeApi.currentAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * Get order modification history\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Order modify history longer than 3 month is not avaliable\n     *\n     * Weight: 1\n     *\n     * @summary Get Order Modify History (USER_DATA)\n     * @param {GetOrderModifyHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOrderModifyHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Get-Order-Modify-History Binance API Documentation}\n     */\n    getOrderModifyHistory(\n        requestParameters: GetOrderModifyHistoryRequest\n    ): Promise<RestApiResponse<GetOrderModifyHistoryResponse>> {\n        return this.tradeApi.getOrderModifyHistory(requestParameters);\n    }\n\n    /**\n     * Get Position Margin Change History\n     *\n     * Support querying future histories that are not older than 30 days\n     * The time between `startTime` and `endTime`can't be more than 30 days\n     *\n     * Weight: 1\n     *\n     * @summary Get Position Margin Change History (TRADE)\n     * @param {GetPositionMarginChangeHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetPositionMarginChangeHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Get-Position-Margin-Change-History Binance API Documentation}\n     */\n    getPositionMarginChangeHistory(\n        requestParameters: GetPositionMarginChangeHistoryRequest\n    ): Promise<RestApiResponse<GetPositionMarginChangeHistoryResponse>> {\n        return this.tradeApi.getPositionMarginChangeHistory(requestParameters);\n    }\n\n    /**\n     * Modify Isolated Position Margin\n     *\n     *\n     * Only for isolated symbol\n     *\n     * Weight: 1\n     *\n     * @summary Modify Isolated Position Margin(TRADE)\n     * @param {ModifyIsolatedPositionMarginRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyIsolatedPositionMarginResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Isolated-Position-Margin Binance API Documentation}\n     */\n    modifyIsolatedPositionMargin(\n        requestParameters: ModifyIsolatedPositionMarginRequest\n    ): Promise<RestApiResponse<ModifyIsolatedPositionMarginResponse>> {\n        return this.tradeApi.modifyIsolatedPositionMargin(requestParameters);\n    }\n\n    /**\n     * Modify Multiple Orders (TRADE)\n     *\n     * Parameter rules are same with `Modify Order`\n     * Batch modify orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch modify orders is the same as the order of the order list.\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Modify Multiple Orders(TRADE)\n     * @param {ModifyMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders Binance API Documentation}\n     */\n    modifyMultipleOrders(\n        requestParameters: ModifyMultipleOrdersRequest\n    ): Promise<RestApiResponse<ModifyMultipleOrdersResponse>> {\n        return this.tradeApi.modifyMultipleOrders(requestParameters);\n    }\n\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ModifyOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Order Binance API Documentation}\n     */\n    modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<RestApiResponse<ModifyOrderResponse>> {\n        return this.tradeApi.modifyOrder(requestParameters);\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 0 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order Binance API Documentation}\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<RestApiResponse<NewOrderResponse>> {\n        return this.tradeApi.newOrder(requestParameters);\n    }\n\n    /**\n     * Place Multiple Orders\n     *\n     * Paremeter rules are same with `New Order`\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     * The order of returned contents for batch orders is the same as the order of the order list.\n     *\n     * Weight: 5 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 5 on IP rate limit(x-mbx-used-weight-1m);\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PlaceMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Place-Multiple-Orders Binance API Documentation}\n     */\n    placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>> {\n        return this.tradeApi.placeMultipleOrders(requestParameters);\n    }\n\n    /**\n     * Position ADL Quantile Estimation\n     *\n     * Values update every 30s.\n     * Values 0, 1, 2, 3, 4 shows the queue position and possibility of ADL from low to high.\n     * For positions of the symbol are in One-way Mode or isolated margined in Hedge Mode, \"LONG\", \"SHORT\", and \"BOTH\" will be returned to show the positions' adl quantiles of different position sides.\n     * If the positions of the symbol are crossed margined in Hedge Mode:\n     * \"HEDGE\" as a sign will be returned instead of \"BOTH\";\n     * A same value caculated on unrealized pnls on long and short sides' positions will be shown for \"LONG\" and \"SHORT\" when there are positions in both of long and short sides.\n     *\n     * Weight: 5\n     *\n     * @summary Position ADL Quantile Estimation(USER_DATA)\n     * @param {PositionAdlQuantileEstimationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionAdlQuantileEstimationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-ADL-Quantile-Estimation Binance API Documentation}\n     */\n    positionAdlQuantileEstimation(\n        requestParameters: PositionAdlQuantileEstimationRequest = {}\n    ): Promise<RestApiResponse<PositionAdlQuantileEstimationResponse>> {\n        return this.tradeApi.positionAdlQuantileEstimation(requestParameters);\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationV2Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-Information-V2 Binance API Documentation}\n     */\n    positionInformationV2(\n        requestParameters: PositionInformationV2Request = {}\n    ): Promise<RestApiResponse<PositionInformationV2Response>> {\n        return this.tradeApi.positionInformationV2(requestParameters);\n    }\n\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V3 (USER_DATA)\n     * @param {PositionInformationV3Request} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationV3Response>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Position-Information-V3 Binance API Documentation}\n     */\n    positionInformationV3(\n        requestParameters: PositionInformationV3Request = {}\n    ): Promise<RestApiResponse<PositionInformationV3Response>> {\n        return this.tradeApi.positionInformationV3(requestParameters);\n    }\n\n    /**\n     * Query open order\n     *\n     *\n     * Either`orderId` or `origClientOrderId` must be sent\n     * If the queried order has been filled or cancelled, the error message \"Order does not exist\" will be returned.\n     *\n     * Weight: 1\n     *\n     * @summary Query Current Open Order (USER_DATA)\n     * @param {QueryCurrentOpenOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryCurrentOpenOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Current-Open-Order Binance API Documentation}\n     */\n    queryCurrentOpenOrder(\n        requestParameters: QueryCurrentOpenOrderRequest\n    ): Promise<RestApiResponse<QueryCurrentOpenOrderResponse>> {\n        return this.tradeApi.queryCurrentOpenOrder(requestParameters);\n    }\n\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Order Binance API Documentation}\n     */\n    queryOrder(requestParameters: QueryOrderRequest): Promise<RestApiResponse<QueryOrderResponse>> {\n        return this.tradeApi.queryOrder(requestParameters);\n    }\n\n    /**\n     * Testing order request, this order will not be submitted to matching engine\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     * `selfTradePreventionMode` is only effective when `timeInForce` set to `IOC` or `GTC` or `GTD`.\n     * In extreme market conditions, timeInForce `GTD` order auto cancel time might be delayed comparing to `goodTillDate`\n     *\n     * Weight: 0\n     *\n     * @summary Test Order(TRADE)\n     * @param {TestOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TestOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order-Test Binance API Documentation}\n     */\n    testOrder(requestParameters: TestOrderRequest): Promise<RestApiResponse<TestOrderResponse>> {\n        return this.tradeApi.testOrder(requestParameters);\n    }\n\n    /**\n     * Query user's Force Orders\n     *\n     * If \"autoCloseType\" is not sent, orders with both of the types will be returned\n     * If \"startTime\" is not sent, data within 7 days before \"endTime\" can be queried\n     *\n     * Weight: 20 with symbol, 50 without symbol\n     *\n     * @summary User\\'s Force Orders (USER_DATA)\n     * @param {UsersForceOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UsersForceOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Users-Force-Orders Binance API Documentation}\n     */\n    usersForceOrders(\n        requestParameters: UsersForceOrdersRequest = {}\n    ): Promise<RestApiResponse<UsersForceOrdersResponse>> {\n        return this.tradeApi.usersForceOrders(requestParameters);\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Close-User-Data-Stream Binance API Documentation}\n     */\n    closeUserDataStream(): Promise<RestApiResponse<void>> {\n        return this.userDataStreamsApi.closeUserDataStream();\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<KeepaliveUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    keepaliveUserDataStream(): Promise<RestApiResponse<KeepaliveUserDataStreamResponse>> {\n        return this.userDataStreamsApi.keepaliveUserDataStream();\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<StartUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Start-User-Data-Stream Binance API Documentation}\n     */\n    startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n        return this.userDataStreamsApi.startUserDataStream();\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './websocket-api';\nexport * from './websocket-api-connection';\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    AccountInformationResponse,\n    AccountInformationV2Response,\n    FuturesAccountBalanceResponse,\n    FuturesAccountBalanceV2Response,\n} from '../types';\n\n/**\n * AccountApi - interface\n *\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information(USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AccountInformationResponse>}\n     * @memberof AccountApiInterface\n     */\n    accountInformation(\n        requestParameters?: AccountInformationRequest\n    ): Promise<WebsocketApiResponse<AccountInformationResponse>>;\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     *\n     * @returns {Promise<AccountInformationV2Response>}\n     * @memberof AccountApiInterface\n     */\n    accountInformationV2(\n        requestParameters?: AccountInformationV2Request\n    ): Promise<WebsocketApiResponse<AccountInformationV2Response>>;\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance(USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<FuturesAccountBalanceResponse>}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountBalance(\n        requestParameters?: FuturesAccountBalanceRequest\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceResponse>>;\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2(USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     *\n     * @returns {Promise<FuturesAccountBalanceV2Response>}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountBalanceV2(\n        requestParameters?: FuturesAccountBalanceV2Request\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceV2Response>>;\n}\n\n/**\n * Request parameters for accountInformation operation in AccountApi.\n * @interface AccountInformationRequest\n */\nexport interface AccountInformationRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof AccountApiAccountInformation\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountInformation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for accountInformationV2 operation in AccountApi.\n * @interface AccountInformationV2Request\n */\nexport interface AccountInformationV2Request {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof AccountApiAccountInformationV2\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountInformationV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresAccountBalance operation in AccountApi.\n * @interface FuturesAccountBalanceRequest\n */\nexport interface FuturesAccountBalanceRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof AccountApiFuturesAccountBalance\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountBalance\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for futuresAccountBalanceV2 operation in AccountApi.\n * @interface FuturesAccountBalanceV2Request\n */\nexport interface FuturesAccountBalanceV2Request {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof AccountApiFuturesAccountBalanceV2\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountBalanceV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * AccountApi - object-oriented interface\n * @class AccountApi\n * @extends {WebsocketAPIBase}\n */\nexport class AccountApi implements AccountApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information(USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<AccountInformationResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Account-Information Binance API Documentation}\n     */\n    public accountInformation(\n        requestParameters: AccountInformationRequest = {}\n    ): Promise<WebsocketApiResponse<AccountInformationResponse>> {\n        return this.websocketBase.sendMessage<AccountInformationResponse>(\n            '/account.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<AccountInformationV2Response>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Account-Information-V2 Binance API Documentation}\n     */\n    public accountInformationV2(\n        requestParameters: AccountInformationV2Request = {}\n    ): Promise<WebsocketApiResponse<AccountInformationV2Response>> {\n        return this.websocketBase.sendMessage<AccountInformationV2Response>(\n            '/v2/account.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance(USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     * @returns {Promise<FuturesAccountBalanceResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Futures-Account-Balance Binance API Documentation}\n     */\n    public futuresAccountBalance(\n        requestParameters: FuturesAccountBalanceRequest = {}\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceResponse>> {\n        return this.websocketBase.sendMessage<FuturesAccountBalanceResponse>(\n            '/account.balance'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2(USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     * @returns {Promise<FuturesAccountBalanceV2Response>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Futures-Account-Balance-V2 Binance API Documentation}\n     */\n    public futuresAccountBalanceV2(\n        requestParameters: FuturesAccountBalanceV2Request = {}\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceV2Response>> {\n        return this.websocketBase.sendMessage<FuturesAccountBalanceV2Response>(\n            '/v2/account.balance'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    OrderBookResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\n} from '../types';\n\n/**\n * MarketDataApi - interface\n *\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n    /**\n     * Get current order book. Note that this request returns limited market depth.\n     * If you need to continuously monitor order book updates, please consider using Websocket Market Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to maintain a local order book.\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderBookResponse>}\n     * @memberof MarketDataApiInterface\n     */\n    orderBook(\n        requestParameters: OrderBookRequest\n    ): Promise<WebsocketApiResponse<OrderBookResponse>>;\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SymbolOrderBookTickerResponse>}\n     * @memberof MarketDataApiInterface\n     */\n    symbolOrderBookTicker(\n        requestParameters?: SymbolOrderBookTickerRequest\n    ): Promise<WebsocketApiResponse<SymbolOrderBookTickerResponse>>;\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SymbolPriceTickerResponse>}\n     * @memberof MarketDataApiInterface\n     */\n    symbolPriceTicker(\n        requestParameters?: SymbolPriceTickerRequest\n    ): Promise<WebsocketApiResponse<SymbolPriceTickerResponse>>;\n}\n\n/**\n * Request parameters for orderBook operation in MarketDataApi.\n * @interface OrderBookRequest\n */\nexport interface OrderBookRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly id?: string;\n\n    /**\n     * Default 500; Valid limits:[5, 10, 20, 50, 100, 500, 1000]\n     * @type {number}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for symbolOrderBookTicker operation in MarketDataApi.\n * @interface SymbolOrderBookTickerRequest\n */\nexport interface SymbolOrderBookTickerRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof MarketDataApiSymbolOrderBookTicker\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiSymbolOrderBookTicker\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for symbolPriceTicker operation in MarketDataApi.\n * @interface SymbolPriceTickerRequest\n */\nexport interface SymbolPriceTickerRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTicker\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTicker\n     */\n    readonly symbol?: string;\n}\n\n/**\n * MarketDataApi - object-oriented interface\n * @class MarketDataApi\n * @extends {WebsocketAPIBase}\n */\nexport class MarketDataApi implements MarketDataApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Get current order book. Note that this request returns limited market depth.\n     * If you need to continuously monitor order book updates, please consider using Websocket Market Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to maintain a local order book.\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderBookResponse>}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Order-Book Binance API Documentation}\n     */\n    public orderBook(\n        requestParameters: OrderBookRequest\n    ): Promise<WebsocketApiResponse<OrderBookResponse>> {\n        return this.websocketBase.sendMessage<OrderBookResponse>(\n            '/depth'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<SymbolOrderBookTickerResponse>}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Symbol-Order-Book-Ticker Binance API Documentation}\n     */\n    public symbolOrderBookTicker(\n        requestParameters: SymbolOrderBookTickerRequest = {}\n    ): Promise<WebsocketApiResponse<SymbolOrderBookTickerResponse>> {\n        return this.websocketBase.sendMessage<SymbolOrderBookTickerResponse>(\n            '/ticker.book'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<SymbolPriceTickerResponse>}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Symbol-Price-Ticker Binance API Documentation}\n     */\n    public symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest = {}\n    ): Promise<WebsocketApiResponse<SymbolPriceTickerResponse>> {\n        return this.websocketBase.sendMessage<SymbolPriceTickerResponse>(\n            '/ticker.price'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    CancelOrderResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PositionInformationResponse,\n    PositionInformationV2Response,\n    QueryOrderResponse,\n} from '../types';\n\n/**\n * TradeApi - interface\n *\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<CancelOrderResponse>}\n     * @memberof TradeApiInterface\n     */\n    cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<WebsocketApiResponse<CancelOrderResponse>>;\n\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<ModifyOrderResponse>}\n     * @memberof TradeApiInterface\n     */\n    modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<WebsocketApiResponse<ModifyOrderResponse>>;\n\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     *\n     * Weight: 0\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<NewOrderResponse>}\n     * @memberof TradeApiInterface\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<WebsocketApiResponse<NewOrderResponse>>;\n\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information (USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<PositionInformationResponse>}\n     * @memberof TradeApiInterface\n     */\n    positionInformation(\n        requestParameters?: PositionInformationRequest\n    ): Promise<WebsocketApiResponse<PositionInformationResponse>>;\n\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     *\n     * @returns {Promise<PositionInformationV2Response>}\n     * @memberof TradeApiInterface\n     */\n    positionInformationV2(\n        requestParameters?: PositionInformationV2Request\n    ): Promise<WebsocketApiResponse<PositionInformationV2Response>>;\n\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<QueryOrderResponse>}\n     * @memberof TradeApiInterface\n     */\n    queryOrder(\n        requestParameters: QueryOrderRequest\n    ): Promise<WebsocketApiResponse<QueryOrderResponse>>;\n}\n\n/**\n * Request parameters for cancelOrder operation in TradeApi.\n * @interface CancelOrderRequest\n */\nexport interface CancelOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for modifyOrder operation in TradeApi.\n * @interface ModifyOrderRequest\n */\nexport interface ModifyOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * `SELL`, `BUY`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly side: ModifyOrderSideEnum;\n\n    /**\n     * Order quantity, cannot be sent with `closePosition=true`\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly price: number;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n     * @type {'NONE' | 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly priceMatch?: ModifyOrderPriceMatchEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiModifyOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for newOrder operation in TradeApi.\n * @interface NewOrderRequest\n */\nexport interface NewOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * `SELL`, `BUY`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly side: NewOrderSideEnum;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly id?: string;\n\n    /**\n     * Default `BOTH` for One-way Mode ; `LONG` or `SHORT` for Hedge Mode. It must be sent in Hedge Mode.\n     * @type {'BOTH' | 'LONG' | 'SHORT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly positionSide?: NewOrderPositionSideEnum;\n\n    /**\n     *\n     * @type {'GTC' | 'IOC' | 'FOK' | 'GTX' | 'GTD'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     * Cannot be sent with `closePosition`=`true`(Close-All)\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly quantity?: number;\n\n    /**\n     * \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly reduceOnly?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Can only be string following the rule: `^[\\.A-Z\\:/a-z0-9_-]{1,36}$`\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * `true`, `false`；Close-All，used with `STOP_MARKET` or `TAKE_PROFIT_MARKET`.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly closePosition?: string;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, default as the latest price(supporting different `workingType`)\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly activationPrice?: number;\n\n    /**\n     * Used with `TRAILING_STOP_MARKET` orders, min 0.1, max 10 where 1 for 1%\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly callbackRate?: number;\n\n    /**\n     * stopPrice triggered by: \"MARK_PRICE\", \"CONTRACT_PRICE\". Default \"CONTRACT_PRICE\"\n     * @type {'MARK_PRICE' | 'CONTRACT_PRICE'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly workingType?: NewOrderWorkingTypeEnum;\n\n    /**\n     * \"TRUE\" or \"FALSE\", default \"FALSE\". Used with `STOP/STOP_MARKET` or `TAKE_PROFIT/TAKE_PROFIT_MARKET` orders.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly priceProtect?: string;\n\n    /**\n     * \"ACK\", \"RESULT\", default \"ACK\"\n     * @type {'ACK' | 'RESULT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newOrderRespType?: NewOrderNewOrderRespTypeEnum;\n\n    /**\n     * only avaliable for `LIMIT`/`STOP`/`TAKE_PROFIT` order; can be set to `OPPONENT`/ `OPPONENT_5`/ `OPPONENT_10`/ `OPPONENT_20`: /`QUEUE`/ `QUEUE_5`/ `QUEUE_10`/ `QUEUE_20`; Can't be passed together with `price`\n     * @type {'NONE' | 'OPPONENT' | 'OPPONENT_5' | 'OPPONENT_10' | 'OPPONENT_20' | 'QUEUE' | 'QUEUE_5' | 'QUEUE_10' | 'QUEUE_20'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly priceMatch?: NewOrderPriceMatchEnum;\n\n    /**\n     * `NONE`:No STP / `EXPIRE_TAKER`:expire taker order when STP triggers/ `EXPIRE_MAKER`:expire taker order when STP triggers/ `EXPIRE_BOTH`:expire both orders when STP triggers; default `NONE`\n     * @type {'EXPIRE_TAKER' | 'EXPIRE_BOTH' | 'EXPIRE_MAKER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum;\n\n    /**\n     * order cancel time for timeInForce `GTD`, mandatory when `timeInforce` set to `GTD`; order the timestamp only retains second-level precision, ms part will be ignored; The goodTillDate timestamp must be greater than the current time plus 600 seconds and smaller than 253402300799000\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly goodTillDate?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for positionInformation operation in TradeApi.\n * @interface PositionInformationRequest\n */\nexport interface PositionInformationRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for positionInformationV2 operation in TradeApi.\n * @interface PositionInformationV2Request\n */\nexport interface PositionInformationV2Request {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiPositionInformationV2\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformationV2\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformationV2\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryOrder operation in TradeApi.\n * @interface QueryOrderRequest\n */\nexport interface QueryOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n * @extends {WebsocketAPIBase}\n */\nexport class TradeApi implements TradeApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<CancelOrderResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Cancel-Order Binance API Documentation}\n     */\n    public cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<WebsocketApiResponse<CancelOrderResponse>> {\n        return this.websocketBase.sendMessage<CancelOrderResponse>(\n            '/order.cancel'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<ModifyOrderResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Modify-Order Binance API Documentation}\n     */\n    public modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<WebsocketApiResponse<ModifyOrderResponse>> {\n        return this.websocketBase.sendMessage<ModifyOrderResponse>(\n            '/order.modify'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     *\n     * Weight: 0\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<NewOrderResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/New-Order Binance API Documentation}\n     */\n    public newOrder(\n        requestParameters: NewOrderRequest\n    ): Promise<WebsocketApiResponse<NewOrderResponse>> {\n        return this.websocketBase.sendMessage<NewOrderResponse>(\n            '/order.place'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information (USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<PositionInformationResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Position-Information Binance API Documentation}\n     */\n    public positionInformation(\n        requestParameters: PositionInformationRequest = {}\n    ): Promise<WebsocketApiResponse<PositionInformationResponse>> {\n        return this.websocketBase.sendMessage<PositionInformationResponse>(\n            '/account.position'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     * @returns {Promise<PositionInformationV2Response>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Position-Info-V2 Binance API Documentation}\n     */\n    public positionInformationV2(\n        requestParameters: PositionInformationV2Request = {}\n    ): Promise<WebsocketApiResponse<PositionInformationV2Response>> {\n        return this.websocketBase.sendMessage<PositionInformationV2Response>(\n            '/v2/account.position'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<QueryOrderResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Query-Order Binance API Documentation}\n     */\n    public queryOrder(\n        requestParameters: QueryOrderRequest\n    ): Promise<WebsocketApiResponse<QueryOrderResponse>> {\n        return this.websocketBase.sendMessage<QueryOrderResponse>(\n            '/order.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n}\n\nexport enum ModifyOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum ModifyOrderPriceMatchEnum {\n    NONE = 'NONE',\n    OPPONENT = 'OPPONENT',\n    OPPONENT_5 = 'OPPONENT_5',\n    OPPONENT_10 = 'OPPONENT_10',\n    OPPONENT_20 = 'OPPONENT_20',\n    QUEUE = 'QUEUE',\n    QUEUE_5 = 'QUEUE_5',\n    QUEUE_10 = 'QUEUE_10',\n    QUEUE_20 = 'QUEUE_20',\n}\n\nexport enum NewOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum NewOrderPositionSideEnum {\n    BOTH = 'BOTH',\n    LONG = 'LONG',\n    SHORT = 'SHORT',\n}\n\nexport enum NewOrderTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n    GTX = 'GTX',\n    GTD = 'GTD',\n}\n\nexport enum NewOrderWorkingTypeEnum {\n    MARK_PRICE = 'MARK_PRICE',\n    CONTRACT_PRICE = 'CONTRACT_PRICE',\n}\n\nexport enum NewOrderNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n}\n\nexport enum NewOrderPriceMatchEnum {\n    NONE = 'NONE',\n    OPPONENT = 'OPPONENT',\n    OPPONENT_5 = 'OPPONENT_5',\n    OPPONENT_10 = 'OPPONENT_10',\n    OPPONENT_20 = 'OPPONENT_20',\n    QUEUE = 'QUEUE',\n    QUEUE_5 = 'QUEUE_5',\n    QUEUE_10 = 'QUEUE_10',\n    QUEUE_20 = 'QUEUE_20',\n}\n\nexport enum NewOrderSelfTradePreventionModeEnum {\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    CloseUserDataStreamResponse,\n    KeepaliveUserDataStreamResponse,\n    StartUserDataStreamResponse,\n} from '../types';\n\n/**\n * UserDataStreamsApi - interface\n *\n * @interface UserDataStreamsApi\n */\nexport interface UserDataStreamsApiInterface {\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @param {CloseUserDataStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<CloseUserDataStreamResponse>}\n     * @memberof UserDataStreamsApiInterface\n     */\n    closeUserDataStream(\n        requestParameters?: CloseUserDataStreamRequest\n    ): Promise<WebsocketApiResponse<CloseUserDataStreamResponse>>;\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<KeepaliveUserDataStreamResponse>}\n     * @memberof UserDataStreamsApiInterface\n     */\n    keepaliveUserDataStream(\n        requestParameters?: KeepaliveUserDataStreamRequest\n    ): Promise<WebsocketApiResponse<KeepaliveUserDataStreamResponse>>;\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @param {StartUserDataStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<StartUserDataStreamResponse>}\n     * @memberof UserDataStreamsApiInterface\n     */\n    startUserDataStream(\n        requestParameters?: StartUserDataStreamRequest\n    ): Promise<WebsocketApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * Request parameters for closeUserDataStream operation in UserDataStreamsApi.\n * @interface CloseUserDataStreamRequest\n */\nexport interface CloseUserDataStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof UserDataStreamsApiCloseUserDataStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for keepaliveUserDataStream operation in UserDataStreamsApi.\n * @interface KeepaliveUserDataStreamRequest\n */\nexport interface KeepaliveUserDataStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof UserDataStreamsApiKeepaliveUserDataStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for startUserDataStream operation in UserDataStreamsApi.\n * @interface StartUserDataStreamRequest\n */\nexport interface StartUserDataStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof UserDataStreamsApiStartUserDataStream\n     */\n    readonly id?: string;\n}\n\n/**\n * UserDataStreamsApi - object-oriented interface\n * @class UserDataStreamsApi\n * @extends {WebsocketAPIBase}\n */\nexport class UserDataStreamsApi implements UserDataStreamsApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @param {CloseUserDataStreamRequest} requestParameters Request parameters.\n     * @returns {Promise<CloseUserDataStreamResponse>}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Close-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    public closeUserDataStream(\n        requestParameters: CloseUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<CloseUserDataStreamResponse>> {\n        return this.websocketBase.sendMessage<CloseUserDataStreamResponse>(\n            '/userDataStream.stop'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: true }\n        );\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n     * @returns {Promise<KeepaliveUserDataStreamResponse>}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Keepalive-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    public keepaliveUserDataStream(\n        requestParameters: KeepaliveUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<KeepaliveUserDataStreamResponse>> {\n        return this.websocketBase.sendMessage<KeepaliveUserDataStreamResponse>(\n            '/userDataStream.ping'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: true }\n        );\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @param {StartUserDataStreamRequest} requestParameters Request parameters.\n     * @returns {Promise<StartUserDataStreamResponse>}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Start-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    public startUserDataStream(\n        requestParameters: StartUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<StartUserDataStreamResponse>> {\n        return this.websocketBase.sendMessage<StartUserDataStreamResponse>(\n            '/userDataStream.start'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: true }\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, ConfigurationWebsocketAPI } from '@binance/common';\nimport { WebsocketAPIConnection } from './websocket-api-connection';\n\nexport class WebsocketAPI {\n    private configuration: ConfigurationWebsocketAPI;\n\n    constructor(configuration: ConfigurationWebsocketAPI) {\n        this.configuration = configuration;\n    }\n\n    /**\n     * Connects to the Binance WebSocket API and returns a `WebsocketAPIConnection` instance.\n     *\n     * @param {object} [options] - Optional connection options.\n     * @param {string} [options.mode='single'] - The connection mode, either 'single' or 'pool'. Overrides the `mode` property in the configuration.\n     * @param {number} [options.poolSize=1] - The number of connections to use in pool mode. Overrides the `poolSize` property in the configuration.\n     * @returns {Promise<WebsocketAPIConnection>} - A promise that resolves to a `WebsocketAPIConnection` instance.\n     */\n    async connect({\n        mode,\n        poolSize,\n    }: { mode?: 'single' | 'pool'; poolSize?: number } = {}): Promise<WebsocketAPIConnection> {\n        const websocketBase = new WebsocketAPIBase({\n            ...this.configuration,\n            ...(mode && { mode }),\n            ...(poolSize && { poolSize }),\n        });\n        const websocketAPIConnection = new WebsocketAPIConnection(websocketBase);\n        await websocketBase.connect();\n        return websocketAPIConnection;\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketSendMsgOptions, WebsocketApiResponse } from '@binance/common';\nimport { AccountApi } from './modules/account-api';\nimport { MarketDataApi } from './modules/market-data-api';\nimport { TradeApi } from './modules/trade-api';\nimport { UserDataStreamsApi } from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationRequest,\n    AccountInformationV2Request,\n    FuturesAccountBalanceRequest,\n    FuturesAccountBalanceV2Request,\n} from './modules/account-api';\nimport type {\n    OrderBookRequest,\n    SymbolOrderBookTickerRequest,\n    SymbolPriceTickerRequest,\n} from './modules/market-data-api';\nimport type {\n    CancelOrderRequest,\n    ModifyOrderRequest,\n    NewOrderRequest,\n    PositionInformationRequest,\n    PositionInformationV2Request,\n    QueryOrderRequest,\n} from './modules/trade-api';\nimport type {\n    CloseUserDataStreamRequest,\n    KeepaliveUserDataStreamRequest,\n    StartUserDataStreamRequest,\n} from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationResponse,\n    AccountInformationV2Response,\n    FuturesAccountBalanceResponse,\n    FuturesAccountBalanceV2Response,\n} from './types';\nimport type {\n    OrderBookResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\n} from './types';\nimport type {\n    CancelOrderResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PositionInformationResponse,\n    PositionInformationV2Response,\n    QueryOrderResponse,\n} from './types';\nimport type {\n    CloseUserDataStreamResponse,\n    KeepaliveUserDataStreamResponse,\n    StartUserDataStreamResponse,\n} from './types';\n\nexport class WebsocketAPIConnection {\n    private websocketBase: WebsocketAPIBase;\n    private accountApi: AccountApi;\n    private marketDataApi: MarketDataApi;\n    private tradeApi: TradeApi;\n    private userDataStreamsApi: UserDataStreamsApi;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n        this.accountApi = new AccountApi(websocketBase);\n        this.marketDataApi = new MarketDataApi(websocketBase);\n        this.tradeApi = new TradeApi(websocketBase);\n        this.userDataStreamsApi = new UserDataStreamsApi(websocketBase);\n    }\n\n    on(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.on(event, listener);\n    }\n\n    off(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.off(event, listener);\n    }\n\n    /**\n     * Disconnects from the WebSocket server.\n     * If there is no active connection, a warning is logged.\n     * Otherwise, all connections in the connection pool are closed gracefully,\n     * and a message is logged indicating that the connection has been disconnected.\n     * @returns A Promise that resolves when all connections have been closed.\n     * @throws Error if the WebSocket client is not set.\n     */\n    disconnect() {\n        return this.websocketBase.disconnect();\n    }\n\n    /**\n     * Checks if the WebSocket connection is currently open.\n     * @returns `true` if the connection is open, `false` otherwise.\n     */\n    isConnected() {\n        return this.websocketBase.isConnected();\n    }\n\n    /**\n     * Sends a ping message to all connected Websocket servers in the pool.\n     * If no connections are ready, a warning is logged.\n     * For each active connection, the ping message is sent, and debug logs provide details.\n     * @throws Error if a Websocket client is not set for a connection.\n     */\n    pingServer() {\n        this.websocketBase.pingServer();\n    }\n\n    /**\n     * Sends an unsigned message to the WebSocket server\n     * @param method The API method to call\n     * @param payload Message parameters and options\n     * @returns Promise that resolves with the server response\n     * @throws Error if not connected\n     */\n    sendMessage(method: string, payload: WebsocketSendMsgOptions = {}) {\n        return this.websocketBase.sendMessage(method, payload);\n    }\n\n    /**\n     * Sends a signed message to the WebSocket server with authentication\n     * @param method The API method to call\n     * @param payload Message parameters and options\n     * @returns Promise that resolves with the server response\n     * @throws Error if not connected\n     */\n    sendSignedMessage(method: string, payload: WebsocketSendMsgOptions = {}) {\n        return this.websocketBase.sendMessage(method, payload, { isSigned: true });\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information(USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<AccountInformationResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Account-Information Binance API Documentation}\n     */\n    accountInformation(\n        requestParameters: AccountInformationRequest = {}\n    ): Promise<WebsocketApiResponse<AccountInformationResponse>> {\n        return this.accountApi.accountInformation(requestParameters);\n    }\n\n    /**\n     * Get current account information. User in single-asset/ multi-assets mode will see different value, see comments in response section for detail.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information V2(USER_DATA)\n     * @param {AccountInformationV2Request} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<AccountInformationV2Response>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Account-Information-V2 Binance API Documentation}\n     */\n    accountInformationV2(\n        requestParameters: AccountInformationV2Request = {}\n    ): Promise<WebsocketApiResponse<AccountInformationV2Response>> {\n        return this.accountApi.accountInformationV2(requestParameters);\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance(USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<FuturesAccountBalanceResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Futures-Account-Balance Binance API Documentation}\n     */\n    futuresAccountBalance(\n        requestParameters: FuturesAccountBalanceRequest = {}\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceResponse>> {\n        return this.accountApi.futuresAccountBalance(requestParameters);\n    }\n\n    /**\n     * Query account balance info\n     *\n     * Weight: 5\n     *\n     * @summary Futures Account Balance V2(USER_DATA)\n     * @param {FuturesAccountBalanceV2Request} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<FuturesAccountBalanceV2Response>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/account/websocket-api/Futures-Account-Balance-V2 Binance API Documentation}\n     */\n    futuresAccountBalanceV2(\n        requestParameters: FuturesAccountBalanceV2Request = {}\n    ): Promise<WebsocketApiResponse<FuturesAccountBalanceV2Response>> {\n        return this.accountApi.futuresAccountBalanceV2(requestParameters);\n    }\n\n    /**\n     * Get current order book. Note that this request returns limited market depth.\n     * If you need to continuously monitor order book updates, please consider using Websocket Market Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to maintain a local order book.\n     *\n     * Weight: Adjusted based on the limit:\n     * | Limit         | Weight |\n     * | ------------- | ------ |\n     * | 5, 10, 20, 50 | 2      |\n     * | 100           | 5      |\n     * | 500           | 10     |\n     * | 1000          | 20     |\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<OrderBookResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Order-Book Binance API Documentation}\n     */\n    orderBook(\n        requestParameters: OrderBookRequest\n    ): Promise<WebsocketApiResponse<OrderBookResponse>> {\n        return this.marketDataApi.orderBook(requestParameters);\n    }\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * If the symbol is not sent, bookTickers for all symbols will be returned in an array.\n     * The field `X-MBX-USED-WEIGHT-1M` in response header is not accurate from this endpoint, please ignore.\n     *\n     * Weight: 2 for a single symbol;\n     * 5 when the symbol parameter is omitted\n     *\n     * @summary Symbol Order Book Ticker\n     * @param {SymbolOrderBookTickerRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<SymbolOrderBookTickerResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Symbol-Order-Book-Ticker Binance API Documentation}\n     */\n    symbolOrderBookTicker(\n        requestParameters: SymbolOrderBookTickerRequest = {}\n    ): Promise<WebsocketApiResponse<SymbolOrderBookTickerResponse>> {\n        return this.marketDataApi.symbolOrderBookTicker(requestParameters);\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * If the symbol is not sent, prices for all symbols will be returned in an array.\n     *\n     * Weight: 1 for a single symbol;\n     * 2 when the symbol parameter is omitted\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<SymbolPriceTickerResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/websocket-api/Symbol-Price-Ticker Binance API Documentation}\n     */\n    symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest = {}\n    ): Promise<WebsocketApiResponse<SymbolPriceTickerResponse>> {\n        return this.marketDataApi.symbolPriceTicker(requestParameters);\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Order (TRADE)\n     * @param {CancelOrderRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<CancelOrderResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Cancel-Order Binance API Documentation}\n     */\n    cancelOrder(\n        requestParameters: CancelOrderRequest\n    ): Promise<WebsocketApiResponse<CancelOrderResponse>> {\n        return this.tradeApi.cancelOrder(requestParameters);\n    }\n\n    /**\n     * Order modify function, currently only LIMIT order modification is supported, modified orders will be reordered in the match queue\n     *\n     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Both `quantity` and `price` must be sent, which is different from dapi modify order endpoint.\n     * When the new `quantity` or `price` doesn't satisfy PRICE_FILTER / PERCENT_FILTER / LOT_SIZE, amendment will be rejected and the order will stay as it is.\n     * However the order will be cancelled by the amendment in the following situations:\n     * when the order is in partially filled status and the new `quantity` <= `executedQty`\n     * When the order is `GTX` and the new price will cause it to be executed immediately\n     * One order can only be modfied for less than 10000 times\n     *\n     * Weight: 1 on 10s order rate limit(X-MBX-ORDER-COUNT-10S);\n     * 1 on 1min order rate limit(X-MBX-ORDER-COUNT-1M);\n     * 1 on IP rate limit(x-mbx-used-weight-1m)\n     *\n     * @summary Modify Order (TRADE)\n     * @param {ModifyOrderRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<ModifyOrderResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Modify-Order Binance API Documentation}\n     */\n    modifyOrder(\n        requestParameters: ModifyOrderRequest\n    ): Promise<WebsocketApiResponse<ModifyOrderResponse>> {\n        return this.tradeApi.modifyOrder(requestParameters);\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * Order with type `STOP`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Order with type `TAKE_PROFIT`,  parameter `timeInForce` can be sent ( default `GTC`).\n     * Condition orders will be triggered when:\n     *\n     * If parameter`priceProtect`is sent as true:\n     * when price reaches the `stopPrice` ，the difference rate between \"MARK_PRICE\" and \"CONTRACT_PRICE\" cannot be larger than the \"triggerProtect\" of the symbol\n     * \"triggerProtect\" of a symbol can be got from `GET /fapi/v1/exchangeInfo`\n     *\n     * `STOP`, `STOP_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`:\n     * BUY: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") <= `stopPrice`\n     * SELL: latest price (\"MARK_PRICE\" or \"CONTRACT_PRICE\") >= `stopPrice`\n     * `TRAILING_STOP_MARKET`:\n     * BUY: the lowest price after order placed `<= `activationPrice`, and the latest price >`= the lowest price * (1 + `callbackRate`)\n     * SELL: the highest price after order placed >= `activationPrice`, and the latest price <= the highest price * (1 - `callbackRate`)\n     *\n     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * ``{\"code\": -2021, \"msg\": \"Order would immediately trigger.\"}``\n     * means that the parameters you send do not meet the following requirements:\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\n     *\n     * If `newOrderRespType ` is sent as `RESULT` :\n     * `MARKET` order: the final FILLED result of the order will be return directly.\n     * `LIMIT` order with special `timeInForce`: the final status result of the order(FILLED or EXPIRED) will be returned directly.\n     *\n     * `STOP_MARKET`, `TAKE_PROFIT_MARKET` with `closePosition`=`true`:\n     * Follow the same rules for condition orders.\n     * If triggered，**close all** current long position( if `SELL`) or current short position( if `BUY`).\n     * Cannot be used with `quantity` paremeter\n     * Cannot be used with `reduceOnly` parameter\n     * In Hedge Mode,cannot be used with `BUY` orders in `LONG` position side. and cannot be used with `SELL` orders in `SHORT` position side\n     *\n     * Weight: 0\n     *\n     * @summary New Order(TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<NewOrderResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/New-Order Binance API Documentation}\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<WebsocketApiResponse<NewOrderResponse>> {\n        return this.tradeApi.newOrder(requestParameters);\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information (USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<PositionInformationResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Position-Information Binance API Documentation}\n     */\n    positionInformation(\n        requestParameters: PositionInformationRequest = {}\n    ): Promise<WebsocketApiResponse<PositionInformationResponse>> {\n        return this.tradeApi.positionInformation(requestParameters);\n    }\n\n    /**\n     * Get current position information(only symbol that has position or open orders will be returned).\n     *\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 5\n     *\n     * @summary Position Information V2 (USER_DATA)\n     * @param {PositionInformationV2Request} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<PositionInformationV2Response>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Position-Info-V2 Binance API Documentation}\n     */\n    positionInformationV2(\n        requestParameters: PositionInformationV2Request = {}\n    ): Promise<WebsocketApiResponse<PositionInformationV2Response>> {\n        return this.tradeApi.positionInformationV2(requestParameters);\n    }\n\n    /**\n     * Check an order's status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `EXPIRED` **AND** order has NO filled trade **AND** created time + 3 days < current time\n     * order create time + 90 days < current time\n     *\n     * Either `orderId` or `origClientOrderId` must be sent.\n     * `orderId` is self-increment for each specific `symbol`\n     *\n     * Weight: 1\n     *\n     * @summary Query Order (USER_DATA)\n     * @param {QueryOrderRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<QueryOrderResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/websocket-api/Query-Order Binance API Documentation}\n     */\n    queryOrder(\n        requestParameters: QueryOrderRequest\n    ): Promise<WebsocketApiResponse<QueryOrderResponse>> {\n        return this.tradeApi.queryOrder(requestParameters);\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @param {CloseUserDataStreamRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<CloseUserDataStreamResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Close-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    closeUserDataStream(\n        requestParameters: CloseUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<CloseUserDataStreamResponse>> {\n        return this.userDataStreamsApi.closeUserDataStream(requestParameters);\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<KeepaliveUserDataStreamResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Keepalive-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    keepaliveUserDataStream(\n        requestParameters: KeepaliveUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<KeepaliveUserDataStreamResponse>> {\n        return this.userDataStreamsApi.keepaliveUserDataStream(requestParameters);\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @param {StartUserDataStreamRequest} requestParameters Request parameters.\n     * @returns Promise<WebsocketApiResponse<StartUserDataStreamResponse>>\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/user-data-streams/Start-User-Data-Stream-Wsp Binance API Documentation}\n     */\n    startUserDataStream(\n        requestParameters: StartUserDataStreamRequest = {}\n    ): Promise<WebsocketApiResponse<StartUserDataStreamResponse>> {\n        return this.userDataStreamsApi.startUserDataStream(requestParameters);\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './websocket-streams';\nexport * from './websocket-streams-connection';\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    WebsocketStreamsBase,\n    WebsocketStream,\n    assertParamExists,\n    replaceWebsocketStreamsPlaceholders,\n    createStreamHandler,\n} from '@binance/common';\nimport type {\n    AggregateTradeStreamsResponse,\n    AllBookTickersStreamResponse,\n    AllMarketLiquidationOrderStreamsResponse,\n    AllMarketMiniTickersStreamResponse,\n    AllMarketTickersStreamsResponse,\n    CompositeIndexSymbolInformationStreamsResponse,\n    ContinuousContractKlineCandlestickStreamsResponse,\n    ContractInfoStreamResponse,\n    DiffBookDepthStreamsResponse,\n    IndividualSymbolBookTickerStreamsResponse,\n    IndividualSymbolMiniTickerStreamResponse,\n    IndividualSymbolTickerStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    LiquidationOrderStreamsResponse,\n    MarkPriceStreamForAllMarketResponse,\n    MarkPriceStreamResponse,\n    MultiAssetsModeAssetIndexResponse,\n    PartialBookDepthStreamsResponse,\n} from '../types';\n\nconst WebsocketMarketStreamsApiParamCreator = function () {\n    return {\n        /**\n         * The Aggregate Trade Streams push market trade information that is aggregated for fills with same price and taking side every 100 milliseconds. Only market trades will be aggregated, which means the insurance fund trades and ADL trades won't be aggregated.\n         *\n         * Update Speed: 100ms\n         *\n         * @summary Aggregate Trade Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        aggregateTradeStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('aggregateTradeStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@aggTrade'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.\n         *\n         * Update Speed: 5s\n         *\n         * @summary All Book Tickers Stream\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allBookTickersStream: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!bookTicker'.slice(1), { id });\n        },\n        /**\n         * The All Liquidation Order Snapshot Streams push force liquidation order information for all symbols in the market.\n         * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary All Market Liquidation Order Streams\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allMarketLiquidationOrderStreams: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!forceOrder@arr'.slice(1), { id });\n        },\n        /**\n         * 24hr rolling window mini-ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary All Market Mini Tickers Stream\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allMarketMiniTickersStream: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!miniTicker@arr'.slice(1), { id });\n        },\n        /**\n         * 24hr rolling window ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary All Market Tickers Streams\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allMarketTickersStreams: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!ticker@arr'.slice(1), { id });\n        },\n        /**\n         * Composite index information for index symbols pushed every second.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Composite Index Symbol Information Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        compositeIndexSymbolInformationStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('compositeIndexSymbolInformationStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@compositeIndex'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         *\n         * Update Speed: 250ms\n         *\n         * @summary Continuous Contract Kline/Candlestick Streams\n         * @param {string} pair The pair parameter\n         * @param {string} contractType The contractType parameter\n         * @param {string} interval The interval parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        continuousContractKlineCandlestickStreams: (\n            pair: string,\n            contractType: string,\n            interval: string,\n            id?: string\n        ): string => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('continuousContractKlineCandlestickStreams', 'pair', pair);\n            // verify required parameter 'contractType' is not null or undefined\n            assertParamExists(\n                'continuousContractKlineCandlestickStreams',\n                'contractType',\n                contractType\n            );\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('continuousContractKlineCandlestickStreams', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<pair>_<contractType>@continuousKline_<interval>'.slice(1),\n                { pair, contractType, interval, id }\n            );\n        },\n        /**\n         * ContractInfo stream pushes when contract info updates(listing/settlement/contract bracket update). `bks` field only shows up when bracket gets updated.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Contract Info Stream\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        contractInfoStream: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!contractInfo'.slice(1), { id });\n        },\n        /**\n         * Bids and asks, pushed every 250 milliseconds, 500 milliseconds, 100 milliseconds (if existing)\n         *\n         * Update Speed: 250ms, 500ms, 100ms\n         *\n         * @summary Diff. Book Depth Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        diffBookDepthStreams: (symbol: string, id?: string, updateSpeed?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('diffBookDepthStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@depth@<updateSpeed>'.slice(1), {\n                symbol,\n                id,\n                updateSpeed,\n            });\n        },\n        /**\n         * Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Individual Symbol Book Ticker Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        individualSymbolBookTickerStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('individualSymbolBookTickerStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@bookTicker'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * 24hr rolling window mini-ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n         *\n         * Update Speed: 2s\n         *\n         * @summary Individual Symbol Mini Ticker Stream\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        individualSymbolMiniTickerStream: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('individualSymbolMiniTickerStream', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@miniTicker'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * 24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n         *\n         * Update Speed: 2000ms\n         *\n         * @summary Individual Symbol Ticker Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        individualSymbolTickerStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('individualSymbolTickerStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@ticker'.slice(1), { symbol, id });\n        },\n        /**\n         * The Kline/Candlestick Stream push updates to the current klines/candlestick every 250 milliseconds (if existing).\n         *\n         * Update Speed: 250ms\n         *\n         * @summary Kline/Candlestick Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} interval The interval parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        klineCandlestickStreams: (symbol: string, interval: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klineCandlestickStreams', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klineCandlestickStreams', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@kline_<interval>'.slice(1), {\n                symbol,\n                interval,\n                id,\n            });\n        },\n        /**\n         * The Liquidation Order Snapshot Streams push force liquidation order information for specific symbol.\n         * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Liquidation Order Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        liquidationOrderStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('liquidationOrderStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@forceOrder'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Mark price and funding rate for a single symbol pushed every 3 seconds or every second.\n         *\n         * Update Speed: 3000ms or 1000ms\n         *\n         * @summary Mark Price Stream\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        markPriceStream: (symbol: string, id?: string, updateSpeed?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('markPriceStream', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@markPrice@<updateSpeed>'.slice(1),\n                { symbol, id, updateSpeed }\n            );\n        },\n        /**\n         * Mark price and funding rate for all symbols pushed every 3 seconds or every second.\n         *\n         * Update Speed: 3000ms or 1000ms\n         *\n         * @summary Mark Price Stream for All market\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        markPriceStreamForAllMarket: (id?: string, updateSpeed?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!markPrice@arr@<updateSpeed>'.slice(1), {\n                id,\n                updateSpeed,\n            });\n        },\n        /**\n         * Asset index for multi-assets mode user\n         *\n         * Update Speed: 1s\n         *\n         * @summary Multi-Assets Mode Asset Index\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        multiAssetsModeAssetIndex: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!assetIndex@arr'.slice(1), { id });\n        },\n        /**\n         * Top **<levels\\>** bids and asks, Valid **<levels\\>** are 5, 10, or 20.\n         *\n         * Update Speed: 250ms, 500ms or 100ms\n         *\n         * @summary Partial Book Depth Streams\n         * @param {string} symbol The symbol parameter\n         * @param {number} levels The levels parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        partialBookDepthStreams: (\n            symbol: string,\n            levels: number,\n            id?: string,\n            updateSpeed?: string\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('partialBookDepthStreams', 'symbol', symbol);\n            // verify required parameter 'levels' is not null or undefined\n            assertParamExists('partialBookDepthStreams', 'levels', levels);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@depth<levels>@<updateSpeed>'.slice(1),\n                { symbol, levels, id, updateSpeed }\n            );\n        },\n    };\n};\n\n/**\n * WebsocketMarketStreamsApi - interface\n * @interface WebsocketMarketStreamsApi\n */\nexport interface WebsocketMarketStreamsApiInterface {\n    /**\n     * The Aggregate Trade Streams push market trade information that is aggregated for fills with same price and taking side every 100 milliseconds. Only market trades will be aggregated, which means the insurance fund trades and ADL trades won't be aggregated.\n     *\n     * Update Speed: 100ms\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggregateTradeStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AggregateTradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    aggregateTradeStreams(\n        requestParameters: AggregateTradeStreamsRequest\n    ): WebsocketStream<AggregateTradeStreamsResponse>;\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.\n     *\n     * Update Speed: 5s\n     *\n     * @summary All Book Tickers Stream\n     * @param {AllBookTickersStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllBookTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    allBookTickersStream(\n        requestParameters?: AllBookTickersStreamRequest\n    ): WebsocketStream<AllBookTickersStreamResponse>;\n\n    /**\n     * The All Liquidation Order Snapshot Streams push force liquidation order information for all symbols in the market.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Liquidation Order Streams\n     * @param {AllMarketLiquidationOrderStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMarketLiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    allMarketLiquidationOrderStreams(\n        requestParameters?: AllMarketLiquidationOrderStreamsRequest\n    ): WebsocketStream<AllMarketLiquidationOrderStreamsResponse>;\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMarketMiniTickersStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMarketMiniTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    allMarketMiniTickersStream(\n        requestParameters?: AllMarketMiniTickersStreamRequest\n    ): WebsocketStream<AllMarketMiniTickersStreamResponse>;\n\n    /**\n     * 24hr rolling window ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Tickers Streams\n     * @param {AllMarketTickersStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMarketTickersStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    allMarketTickersStreams(\n        requestParameters?: AllMarketTickersStreamsRequest\n    ): WebsocketStream<AllMarketTickersStreamsResponse>;\n\n    /**\n     * Composite index information for index symbols pushed every second.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Composite Index Symbol Information Streams\n     * @param {CompositeIndexSymbolInformationStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<CompositeIndexSymbolInformationStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    compositeIndexSymbolInformationStreams(\n        requestParameters: CompositeIndexSymbolInformationStreamsRequest\n    ): WebsocketStream<CompositeIndexSymbolInformationStreamsResponse>;\n\n    /**\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Continuous Contract Kline/Candlestick Streams\n     * @param {ContinuousContractKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    continuousContractKlineCandlestickStreams(\n        requestParameters: ContinuousContractKlineCandlestickStreamsRequest\n    ): WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse>;\n\n    /**\n     * ContractInfo stream pushes when contract info updates(listing/settlement/contract bracket update). `bks` field only shows up when bracket gets updated.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Contract Info Stream\n     * @param {ContractInfoStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<ContractInfoStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    contractInfoStream(\n        requestParameters?: ContractInfoStreamRequest\n    ): WebsocketStream<ContractInfoStreamResponse>;\n\n    /**\n     * Bids and asks, pushed every 250 milliseconds, 500 milliseconds, 100 milliseconds (if existing)\n     *\n     * Update Speed: 250ms, 500ms, 100ms\n     *\n     * @summary Diff. Book Depth Streams\n     * @param {DiffBookDepthStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<DiffBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    diffBookDepthStreams(\n        requestParameters: DiffBookDepthStreamsRequest\n    ): WebsocketStream<DiffBookDepthStreamsResponse>;\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {IndividualSymbolBookTickerStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndividualSymbolBookTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    individualSymbolBookTickerStreams(\n        requestParameters: IndividualSymbolBookTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolBookTickerStreamsResponse>;\n\n    /**\n     * 24hr rolling window mini-ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2s\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {IndividualSymbolMiniTickerStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndividualSymbolMiniTickerStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    individualSymbolMiniTickerStream(\n        requestParameters: IndividualSymbolMiniTickerStreamRequest\n    ): WebsocketStream<IndividualSymbolMiniTickerStreamResponse>;\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {IndividualSymbolTickerStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndividualSymbolTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    individualSymbolTickerStreams(\n        requestParameters: IndividualSymbolTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolTickerStreamsResponse>;\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 250 milliseconds (if existing).\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse>;\n\n    /**\n     * The Liquidation Order Snapshot Streams push force liquidation order information for specific symbol.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Liquidation Order Streams\n     * @param {LiquidationOrderStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<LiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    liquidationOrderStreams(\n        requestParameters: LiquidationOrderStreamsRequest\n    ): WebsocketStream<LiquidationOrderStreamsResponse>;\n\n    /**\n     * Mark price and funding rate for a single symbol pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream\n     * @param {MarkPriceStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MarkPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    markPriceStream(\n        requestParameters: MarkPriceStreamRequest\n    ): WebsocketStream<MarkPriceStreamResponse>;\n\n    /**\n     * Mark price and funding rate for all symbols pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream for All market\n     * @param {MarkPriceStreamForAllMarketRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MarkPriceStreamForAllMarketResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    markPriceStreamForAllMarket(\n        requestParameters?: MarkPriceStreamForAllMarketRequest\n    ): WebsocketStream<MarkPriceStreamForAllMarketResponse>;\n\n    /**\n     * Asset index for multi-assets mode user\n     *\n     * Update Speed: 1s\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MultiAssetsModeAssetIndexResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    multiAssetsModeAssetIndex(\n        requestParameters?: MultiAssetsModeAssetIndexRequest\n    ): WebsocketStream<MultiAssetsModeAssetIndexResponse>;\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid **<levels\\>** are 5, 10, or 20.\n     *\n     * Update Speed: 250ms, 500ms or 100ms\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse>;\n}\n\n/**\n * Request parameters for aggregateTradeStreams operation in WebsocketMarketStreamsApi.\n * @interface AggregateTradeStreamsRequest\n */\nexport interface AggregateTradeStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAggregateTradeStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAggregateTradeStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allBookTickersStream operation in WebsocketMarketStreamsApi.\n * @interface AllBookTickersStreamRequest\n */\nexport interface AllBookTickersStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAllBookTickersStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allMarketLiquidationOrderStreams operation in WebsocketMarketStreamsApi.\n * @interface AllMarketLiquidationOrderStreamsRequest\n */\nexport interface AllMarketLiquidationOrderStreamsRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAllMarketLiquidationOrderStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allMarketMiniTickersStream operation in WebsocketMarketStreamsApi.\n * @interface AllMarketMiniTickersStreamRequest\n */\nexport interface AllMarketMiniTickersStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAllMarketMiniTickersStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allMarketTickersStreams operation in WebsocketMarketStreamsApi.\n * @interface AllMarketTickersStreamsRequest\n */\nexport interface AllMarketTickersStreamsRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiAllMarketTickersStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for compositeIndexSymbolInformationStreams operation in WebsocketMarketStreamsApi.\n * @interface CompositeIndexSymbolInformationStreamsRequest\n */\nexport interface CompositeIndexSymbolInformationStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiCompositeIndexSymbolInformationStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiCompositeIndexSymbolInformationStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for continuousContractKlineCandlestickStreams operation in WebsocketMarketStreamsApi.\n * @interface ContinuousContractKlineCandlestickStreamsRequest\n */\nexport interface ContinuousContractKlineCandlestickStreamsRequest {\n    /**\n     * The pair parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiContinuousContractKlineCandlestickStreams\n     */\n    readonly pair: string;\n\n    /**\n     * The contractType parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiContinuousContractKlineCandlestickStreams\n     */\n    readonly contractType: string;\n\n    /**\n     * The interval parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiContinuousContractKlineCandlestickStreams\n     */\n    readonly interval: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiContinuousContractKlineCandlestickStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for contractInfoStream operation in WebsocketMarketStreamsApi.\n * @interface ContractInfoStreamRequest\n */\nexport interface ContractInfoStreamRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiContractInfoStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for diffBookDepthStreams operation in WebsocketMarketStreamsApi.\n * @interface DiffBookDepthStreamsRequest\n */\nexport interface DiffBookDepthStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiDiffBookDepthStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiDiffBookDepthStreams\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiDiffBookDepthStreams\n     */\n    readonly updateSpeed?: string;\n}\n\n/**\n * Request parameters for individualSymbolBookTickerStreams operation in WebsocketMarketStreamsApi.\n * @interface IndividualSymbolBookTickerStreamsRequest\n */\nexport interface IndividualSymbolBookTickerStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolBookTickerStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolBookTickerStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for individualSymbolMiniTickerStream operation in WebsocketMarketStreamsApi.\n * @interface IndividualSymbolMiniTickerStreamRequest\n */\nexport interface IndividualSymbolMiniTickerStreamRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolMiniTickerStream\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolMiniTickerStream\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for individualSymbolTickerStreams operation in WebsocketMarketStreamsApi.\n * @interface IndividualSymbolTickerStreamsRequest\n */\nexport interface IndividualSymbolTickerStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolTickerStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndividualSymbolTickerStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for klineCandlestickStreams operation in WebsocketMarketStreamsApi.\n * @interface KlineCandlestickStreamsRequest\n */\nexport interface KlineCandlestickStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * The interval parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly interval: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for liquidationOrderStreams operation in WebsocketMarketStreamsApi.\n * @interface LiquidationOrderStreamsRequest\n */\nexport interface LiquidationOrderStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiLiquidationOrderStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiLiquidationOrderStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for markPriceStream operation in WebsocketMarketStreamsApi.\n * @interface MarkPriceStreamRequest\n */\nexport interface MarkPriceStreamRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceStream\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceStream\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceStream\n     */\n    readonly updateSpeed?: string;\n}\n\n/**\n * Request parameters for markPriceStreamForAllMarket operation in WebsocketMarketStreamsApi.\n * @interface MarkPriceStreamForAllMarketRequest\n */\nexport interface MarkPriceStreamForAllMarketRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceStreamForAllMarket\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceStreamForAllMarket\n     */\n    readonly updateSpeed?: string;\n}\n\n/**\n * Request parameters for multiAssetsModeAssetIndex operation in WebsocketMarketStreamsApi.\n * @interface MultiAssetsModeAssetIndexRequest\n */\nexport interface MultiAssetsModeAssetIndexRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMultiAssetsModeAssetIndex\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for partialBookDepthStreams operation in WebsocketMarketStreamsApi.\n * @interface PartialBookDepthStreamsRequest\n */\nexport interface PartialBookDepthStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * The levels parameter\n     * @type {number}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly levels: number;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly updateSpeed?: string;\n}\n\n/**\n * WebsocketMarketStreamsApi - interface\n * @class WebsocketMarketStreamsApi\n * @extends {WebsocketStreamsBase}\n */\nexport class WebsocketMarketStreamsApi implements WebsocketMarketStreamsApiInterface {\n    private readonly websocketBase: WebsocketStreamsBase;\n    private localVarParamCreator;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.localVarParamCreator = WebsocketMarketStreamsApiParamCreator();\n    }\n\n    /**\n     * The Aggregate Trade Streams push market trade information that is aggregated for fills with same price and taking side every 100 milliseconds. Only market trades will be aggregated, which means the insurance fund trades and ADL trades won't be aggregated.\n     *\n     * Update Speed: 100ms\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggregateTradeStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AggregateTradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams Binance API Documentation}\n     */\n    public aggregateTradeStreams(\n        requestParameters: AggregateTradeStreamsRequest\n    ): WebsocketStream<AggregateTradeStreamsResponse> {\n        const stream = this.localVarParamCreator.aggregateTradeStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<AggregateTradeStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.\n     *\n     * Update Speed: 5s\n     *\n     * @summary All Book Tickers Stream\n     * @param {AllBookTickersStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllBookTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Book-Tickers-Stream Binance API Documentation}\n     */\n    public allBookTickersStream(\n        requestParameters: AllBookTickersStreamRequest = {}\n    ): WebsocketStream<AllBookTickersStreamResponse> {\n        const stream = this.localVarParamCreator.allBookTickersStream(requestParameters?.id);\n\n        return createStreamHandler<AllBookTickersStreamResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The All Liquidation Order Snapshot Streams push force liquidation order information for all symbols in the market.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Liquidation Order Streams\n     * @param {AllMarketLiquidationOrderStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketLiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Liquidation-Order-Streams Binance API Documentation}\n     */\n    public allMarketLiquidationOrderStreams(\n        requestParameters: AllMarketLiquidationOrderStreamsRequest = {}\n    ): WebsocketStream<AllMarketLiquidationOrderStreamsResponse> {\n        const stream = this.localVarParamCreator.allMarketLiquidationOrderStreams(\n            requestParameters?.id\n        );\n\n        return createStreamHandler<AllMarketLiquidationOrderStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMarketMiniTickersStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketMiniTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Mini-Tickers-Stream Binance API Documentation}\n     */\n    public allMarketMiniTickersStream(\n        requestParameters: AllMarketMiniTickersStreamRequest = {}\n    ): WebsocketStream<AllMarketMiniTickersStreamResponse> {\n        const stream = this.localVarParamCreator.allMarketMiniTickersStream(requestParameters?.id);\n\n        return createStreamHandler<AllMarketMiniTickersStreamResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Tickers Streams\n     * @param {AllMarketTickersStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketTickersStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Tickers-Streams Binance API Documentation}\n     */\n    public allMarketTickersStreams(\n        requestParameters: AllMarketTickersStreamsRequest = {}\n    ): WebsocketStream<AllMarketTickersStreamsResponse> {\n        const stream = this.localVarParamCreator.allMarketTickersStreams(requestParameters?.id);\n\n        return createStreamHandler<AllMarketTickersStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Composite index information for index symbols pushed every second.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Composite Index Symbol Information Streams\n     * @param {CompositeIndexSymbolInformationStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<CompositeIndexSymbolInformationStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Composite-Index-Symbol-Information-Streams Binance API Documentation}\n     */\n    public compositeIndexSymbolInformationStreams(\n        requestParameters: CompositeIndexSymbolInformationStreamsRequest\n    ): WebsocketStream<CompositeIndexSymbolInformationStreamsResponse> {\n        const stream = this.localVarParamCreator.compositeIndexSymbolInformationStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<CompositeIndexSymbolInformationStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Continuous Contract Kline/Candlestick Streams\n     * @param {ContinuousContractKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Continuous-Contract-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    public continuousContractKlineCandlestickStreams(\n        requestParameters: ContinuousContractKlineCandlestickStreamsRequest\n    ): WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse> {\n        const stream = this.localVarParamCreator.continuousContractKlineCandlestickStreams(\n            requestParameters?.pair,\n            requestParameters?.contractType,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<ContinuousContractKlineCandlestickStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * ContractInfo stream pushes when contract info updates(listing/settlement/contract bracket update). `bks` field only shows up when bracket gets updated.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Contract Info Stream\n     * @param {ContractInfoStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<ContractInfoStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Contract-Info-Stream Binance API Documentation}\n     */\n    public contractInfoStream(\n        requestParameters: ContractInfoStreamRequest = {}\n    ): WebsocketStream<ContractInfoStreamResponse> {\n        const stream = this.localVarParamCreator.contractInfoStream(requestParameters?.id);\n\n        return createStreamHandler<ContractInfoStreamResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Bids and asks, pushed every 250 milliseconds, 500 milliseconds, 100 milliseconds (if existing)\n     *\n     * Update Speed: 250ms, 500ms, 100ms\n     *\n     * @summary Diff. Book Depth Streams\n     * @param {DiffBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<DiffBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Diff-Book-Depth-Streams Binance API Documentation}\n     */\n    public diffBookDepthStreams(\n        requestParameters: DiffBookDepthStreamsRequest\n    ): WebsocketStream<DiffBookDepthStreamsResponse> {\n        const stream = this.localVarParamCreator.diffBookDepthStreams(\n            requestParameters?.symbol,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<DiffBookDepthStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {IndividualSymbolBookTickerStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolBookTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Book-Ticker-Streams Binance API Documentation}\n     */\n    public individualSymbolBookTickerStreams(\n        requestParameters: IndividualSymbolBookTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolBookTickerStreamsResponse> {\n        const stream = this.localVarParamCreator.individualSymbolBookTickerStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<IndividualSymbolBookTickerStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2s\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {IndividualSymbolMiniTickerStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolMiniTickerStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Mini-Ticker-Stream Binance API Documentation}\n     */\n    public individualSymbolMiniTickerStream(\n        requestParameters: IndividualSymbolMiniTickerStreamRequest\n    ): WebsocketStream<IndividualSymbolMiniTickerStreamResponse> {\n        const stream = this.localVarParamCreator.individualSymbolMiniTickerStream(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<IndividualSymbolMiniTickerStreamResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {IndividualSymbolTickerStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Ticker-Streams Binance API Documentation}\n     */\n    public individualSymbolTickerStreams(\n        requestParameters: IndividualSymbolTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolTickerStreamsResponse> {\n        const stream = this.localVarParamCreator.individualSymbolTickerStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<IndividualSymbolTickerStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 250 milliseconds (if existing).\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Kline-Candlestick-Streams Binance API Documentation}\n     */\n    public klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse> {\n        const stream = this.localVarParamCreator.klineCandlestickStreams(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<KlineCandlestickStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Liquidation Order Snapshot Streams push force liquidation order information for specific symbol.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Liquidation Order Streams\n     * @param {LiquidationOrderStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<LiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Liquidation-Order-Streams Binance API Documentation}\n     */\n    public liquidationOrderStreams(\n        requestParameters: LiquidationOrderStreamsRequest\n    ): WebsocketStream<LiquidationOrderStreamsResponse> {\n        const stream = this.localVarParamCreator.liquidationOrderStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<LiquidationOrderStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Mark price and funding rate for a single symbol pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream\n     * @param {MarkPriceStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream Binance API Documentation}\n     */\n    public markPriceStream(\n        requestParameters: MarkPriceStreamRequest\n    ): WebsocketStream<MarkPriceStreamResponse> {\n        const stream = this.localVarParamCreator.markPriceStream(\n            requestParameters?.symbol,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<MarkPriceStreamResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Mark price and funding rate for all symbols pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream for All market\n     * @param {MarkPriceStreamForAllMarketRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceStreamForAllMarketResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream-for-All-market Binance API Documentation}\n     */\n    public markPriceStreamForAllMarket(\n        requestParameters: MarkPriceStreamForAllMarketRequest = {}\n    ): WebsocketStream<MarkPriceStreamForAllMarketResponse> {\n        const stream = this.localVarParamCreator.markPriceStreamForAllMarket(\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<MarkPriceStreamForAllMarketResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Asset index for multi-assets mode user\n     *\n     * Update Speed: 1s\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MultiAssetsModeAssetIndexResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Multi-Assets-Mode-Asset-Index Binance API Documentation}\n     */\n    public multiAssetsModeAssetIndex(\n        requestParameters: MultiAssetsModeAssetIndexRequest = {}\n    ): WebsocketStream<MultiAssetsModeAssetIndexResponse> {\n        const stream = this.localVarParamCreator.multiAssetsModeAssetIndex(requestParameters?.id);\n\n        return createStreamHandler<MultiAssetsModeAssetIndexResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid **<levels\\>** are 5, 10, or 20.\n     *\n     * Update Speed: 250ms, 500ms or 100ms\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Partial-Book-Depth-Streams Binance API Documentation}\n     */\n    public partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse> {\n        const stream = this.localVarParamCreator.partialBookDepthStreams(\n            requestParameters?.symbol,\n            requestParameters?.levels,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<PartialBookDepthStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { ConfigurationWebsocketStreams, WebsocketStreamsBase } from '@binance/common';\nimport { WebsocketStreamsConnection } from './websocket-streams-connection';\n\nexport class WebsocketStreams {\n    private configuration: ConfigurationWebsocketStreams;\n\n    constructor(configuration: ConfigurationWebsocketStreams) {\n        this.configuration = configuration;\n    }\n\n    /**\n     * Connects to the Binance WebSocket streams and returns a `WebsocketStreamsConnection` instance.\n     *\n     * @param {object} [options] - Optional connection options.\n     * @param {string|string[]} [options.stream] - The stream(s) to connect to.\n     * @param {'single'|'pool'} [options.mode] - The connection mode, either 'single' or 'pool'. Overwrite the `mode` option in the configuration.\n     * @param {number} [options.poolSize] - The number of connections to use in pool mode. Overwrite the `poolSize` option in the configuration.\n     * @returns {Promise<WebsocketStreamsConnection>} - A promise that resolves to a `WebsocketStreamsConnection` instance.\n     */\n    async connect({\n        stream,\n        mode,\n        poolSize,\n    }: {\n        stream?: string | string[];\n        mode?: 'single' | 'pool';\n        poolSize?: number;\n    } = {}): Promise<WebsocketStreamsConnection> {\n        const websocketBase = new WebsocketStreamsBase({\n            ...this.configuration,\n            ...(mode && { mode }),\n            ...(poolSize && { poolSize }),\n        });\n        const websocketStreamsConnection = new WebsocketStreamsConnection(websocketBase);\n        await websocketBase.connect(stream);\n        return websocketStreamsConnection;\n    }\n}\n","/**\n * Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading USDS Futures WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketStreamsBase, WebsocketStream, createStreamHandler } from '@binance/common';\nimport { WebsocketMarketStreamsApi } from './modules/websocket-market-streams-api';\n\nimport type { UserDataStreamEventsResponse } from './types';\n\nimport type {\n    AggregateTradeStreamsRequest,\n    AllBookTickersStreamRequest,\n    AllMarketLiquidationOrderStreamsRequest,\n    AllMarketMiniTickersStreamRequest,\n    AllMarketTickersStreamsRequest,\n    CompositeIndexSymbolInformationStreamsRequest,\n    ContinuousContractKlineCandlestickStreamsRequest,\n    ContractInfoStreamRequest,\n    DiffBookDepthStreamsRequest,\n    IndividualSymbolBookTickerStreamsRequest,\n    IndividualSymbolMiniTickerStreamRequest,\n    IndividualSymbolTickerStreamsRequest,\n    KlineCandlestickStreamsRequest,\n    LiquidationOrderStreamsRequest,\n    MarkPriceStreamRequest,\n    MarkPriceStreamForAllMarketRequest,\n    MultiAssetsModeAssetIndexRequest,\n    PartialBookDepthStreamsRequest,\n} from './modules/websocket-market-streams-api';\n\nimport type {\n    AggregateTradeStreamsResponse,\n    AllBookTickersStreamResponse,\n    AllMarketLiquidationOrderStreamsResponse,\n    AllMarketMiniTickersStreamResponse,\n    AllMarketTickersStreamsResponse,\n    CompositeIndexSymbolInformationStreamsResponse,\n    ContinuousContractKlineCandlestickStreamsResponse,\n    ContractInfoStreamResponse,\n    DiffBookDepthStreamsResponse,\n    IndividualSymbolBookTickerStreamsResponse,\n    IndividualSymbolMiniTickerStreamResponse,\n    IndividualSymbolTickerStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    LiquidationOrderStreamsResponse,\n    MarkPriceStreamResponse,\n    MarkPriceStreamForAllMarketResponse,\n    MultiAssetsModeAssetIndexResponse,\n    PartialBookDepthStreamsResponse,\n} from './types';\n\nexport class WebsocketStreamsConnection {\n    private websocketBase: WebsocketStreamsBase;\n    private websocketMarketStreamsApi: WebsocketMarketStreamsApi;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.websocketMarketStreamsApi = new WebsocketMarketStreamsApi(websocketBase);\n    }\n\n    /**\n     * Adds an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to listen for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function to be executed when the event is triggered. The function can accept any number of arguments.\n     */\n    on(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.on(event, listener);\n    }\n\n    /**\n     * Removes an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to stop listening for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function that was previously added as the event listener.\n     */\n    off(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.off(event, listener);\n    }\n\n    /**\n     * Disconnects from the WebSocket server.\n     * If there is no active connection, a warning is logged.\n     * Otherwise, all connections in the connection pool are closed gracefully,\n     * and a message is logged indicating that the connection has been disconnected.\n     * @returns A Promise that resolves when all connections have been closed.\n     * @throws Error if the WebSocket client is not set.\n     */\n    disconnect(): Promise<void> {\n        return this.websocketBase.disconnect();\n    }\n\n    /**\n     * Checks if the WebSocket connection is currently open.\n     * @returns `true` if the connection is open, `false` otherwise.\n     */\n    isConnected(): boolean {\n        return this.websocketBase.isConnected();\n    }\n\n    /**\n     * Sends a ping message to all connected Websocket servers in the pool.\n     * If no connections are ready, a warning is logged.\n     * For each active connection, the ping message is sent, and debug logs provide details.\n     * @throws Error if a Websocket client is not set for a connection.\n     */\n    pingServer(): void {\n        this.websocketBase.pingServer();\n    }\n\n    /**\n     * Subscribes to one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to subscribe to\n     * @param id Optional subscription ID\n     * @returns void\n     */\n    subscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.subscribe(stream, id);\n    }\n\n    /**\n     * Unsubscribes from one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to unsubscribe from\n     * @param id Optional unsubscription ID\n     * @returns void\n     */\n    unsubscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.unsubscribe(stream, id);\n    }\n\n    /**\n     * Checks if the WebSocket connection is subscribed to the specified stream.\n     * @param stream The name of the WebSocket stream to check.\n     * @returns `true` if the connection is subscribed to the stream, `false` otherwise.\n     */\n    isSubscribed(stream: string): boolean {\n        return this.websocketBase.isSubscribed(stream);\n    }\n\n    /**\n     * Subscribes to the user data WebSocket stream using the provided listen key.\n     * @param listenKey - The listen key for the user data WebSocket stream.\n     * @param id - Optional user data stream ID\n     * @returns A WebSocket stream handler for the user data stream.\n     */\n    userData(listenKey: string, id?: string): WebsocketStream<UserDataStreamEventsResponse> {\n        return createStreamHandler<UserDataStreamEventsResponse>(this.websocketBase, listenKey, id);\n    }\n\n    /**\n     * The Aggregate Trade Streams push market trade information that is aggregated for fills with same price and taking side every 100 milliseconds. Only market trades will be aggregated, which means the insurance fund trades and ADL trades won't be aggregated.\n     *\n     * Update Speed: 100ms\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggregateTradeStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AggregateTradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Aggregate-Trade-Streams Binance API Documentation}\n     */\n    aggregateTradeStreams(\n        requestParameters: AggregateTradeStreamsRequest\n    ): WebsocketStream<AggregateTradeStreamsResponse> {\n        return this.websocketMarketStreamsApi.aggregateTradeStreams(requestParameters);\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for all symbols.\n     *\n     * Update Speed: 5s\n     *\n     * @summary All Book Tickers Stream\n     * @param {AllBookTickersStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllBookTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Book-Tickers-Stream Binance API Documentation}\n     */\n    allBookTickersStream(\n        requestParameters: AllBookTickersStreamRequest = {}\n    ): WebsocketStream<AllBookTickersStreamResponse> {\n        return this.websocketMarketStreamsApi.allBookTickersStream(requestParameters);\n    }\n\n    /**\n     * The All Liquidation Order Snapshot Streams push force liquidation order information for all symbols in the market.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Liquidation Order Streams\n     * @param {AllMarketLiquidationOrderStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketLiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Liquidation-Order-Streams Binance API Documentation}\n     */\n    allMarketLiquidationOrderStreams(\n        requestParameters: AllMarketLiquidationOrderStreamsRequest = {}\n    ): WebsocketStream<AllMarketLiquidationOrderStreamsResponse> {\n        return this.websocketMarketStreamsApi.allMarketLiquidationOrderStreams(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMarketMiniTickersStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketMiniTickersStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Mini-Tickers-Stream Binance API Documentation}\n     */\n    allMarketMiniTickersStream(\n        requestParameters: AllMarketMiniTickersStreamRequest = {}\n    ): WebsocketStream<AllMarketMiniTickersStreamResponse> {\n        return this.websocketMarketStreamsApi.allMarketMiniTickersStream(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for all symbols. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before. Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Tickers Streams\n     * @param {AllMarketTickersStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketTickersStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/All-Market-Tickers-Streams Binance API Documentation}\n     */\n    allMarketTickersStreams(\n        requestParameters: AllMarketTickersStreamsRequest = {}\n    ): WebsocketStream<AllMarketTickersStreamsResponse> {\n        return this.websocketMarketStreamsApi.allMarketTickersStreams(requestParameters);\n    }\n\n    /**\n     * Composite index information for index symbols pushed every second.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Composite Index Symbol Information Streams\n     * @param {CompositeIndexSymbolInformationStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<CompositeIndexSymbolInformationStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Composite-Index-Symbol-Information-Streams Binance API Documentation}\n     */\n    compositeIndexSymbolInformationStreams(\n        requestParameters: CompositeIndexSymbolInformationStreamsRequest\n    ): WebsocketStream<CompositeIndexSymbolInformationStreamsResponse> {\n        return this.websocketMarketStreamsApi.compositeIndexSymbolInformationStreams(\n            requestParameters\n        );\n    }\n\n    /**\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Continuous Contract Kline/Candlestick Streams\n     * @param {ContinuousContractKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Continuous-Contract-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    continuousContractKlineCandlestickStreams(\n        requestParameters: ContinuousContractKlineCandlestickStreamsRequest\n    ): WebsocketStream<ContinuousContractKlineCandlestickStreamsResponse> {\n        return this.websocketMarketStreamsApi.continuousContractKlineCandlestickStreams(\n            requestParameters\n        );\n    }\n\n    /**\n     * ContractInfo stream pushes when contract info updates(listing/settlement/contract bracket update). `bks` field only shows up when bracket gets updated.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Contract Info Stream\n     * @param {ContractInfoStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<ContractInfoStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Contract-Info-Stream Binance API Documentation}\n     */\n    contractInfoStream(\n        requestParameters: ContractInfoStreamRequest = {}\n    ): WebsocketStream<ContractInfoStreamResponse> {\n        return this.websocketMarketStreamsApi.contractInfoStream(requestParameters);\n    }\n\n    /**\n     * Bids and asks, pushed every 250 milliseconds, 500 milliseconds, 100 milliseconds (if existing)\n     *\n     * Update Speed: 250ms, 500ms, 100ms\n     *\n     * @summary Diff. Book Depth Streams\n     * @param {DiffBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<DiffBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Diff-Book-Depth-Streams Binance API Documentation}\n     */\n    diffBookDepthStreams(\n        requestParameters: DiffBookDepthStreamsRequest\n    ): WebsocketStream<DiffBookDepthStreamsResponse> {\n        return this.websocketMarketStreamsApi.diffBookDepthStreams(requestParameters);\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in real-time for a specified symbol.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {IndividualSymbolBookTickerStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolBookTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Book-Ticker-Streams Binance API Documentation}\n     */\n    individualSymbolBookTickerStreams(\n        requestParameters: IndividualSymbolBookTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolBookTickerStreamsResponse> {\n        return this.websocketMarketStreamsApi.individualSymbolBookTickerStreams(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2s\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {IndividualSymbolMiniTickerStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolMiniTickerStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Mini-Ticker-Stream Binance API Documentation}\n     */\n    individualSymbolMiniTickerStream(\n        requestParameters: IndividualSymbolMiniTickerStreamRequest\n    ): WebsocketStream<IndividualSymbolMiniTickerStreamResponse> {\n        return this.websocketMarketStreamsApi.individualSymbolMiniTickerStream(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT the statistics of the UTC day, but a 24hr rolling window from requestTime to 24hrs before.\n     *\n     * Update Speed: 2000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {IndividualSymbolTickerStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndividualSymbolTickerStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Individual-Symbol-Ticker-Streams Binance API Documentation}\n     */\n    individualSymbolTickerStreams(\n        requestParameters: IndividualSymbolTickerStreamsRequest\n    ): WebsocketStream<IndividualSymbolTickerStreamsResponse> {\n        return this.websocketMarketStreamsApi.individualSymbolTickerStreams(requestParameters);\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 250 milliseconds (if existing).\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Kline-Candlestick-Streams Binance API Documentation}\n     */\n    klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse> {\n        return this.websocketMarketStreamsApi.klineCandlestickStreams(requestParameters);\n    }\n\n    /**\n     * The Liquidation Order Snapshot Streams push force liquidation order information for specific symbol.\n     * For each symbol，only the latest one liquidation order within 1000ms will be pushed as the snapshot. If no liquidation happens in the interval of 1000ms, no stream will be pushed.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Liquidation Order Streams\n     * @param {LiquidationOrderStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<LiquidationOrderStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Liquidation-Order-Streams Binance API Documentation}\n     */\n    liquidationOrderStreams(\n        requestParameters: LiquidationOrderStreamsRequest\n    ): WebsocketStream<LiquidationOrderStreamsResponse> {\n        return this.websocketMarketStreamsApi.liquidationOrderStreams(requestParameters);\n    }\n\n    /**\n     * Mark price and funding rate for a single symbol pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream\n     * @param {MarkPriceStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream Binance API Documentation}\n     */\n    markPriceStream(\n        requestParameters: MarkPriceStreamRequest\n    ): WebsocketStream<MarkPriceStreamResponse> {\n        return this.websocketMarketStreamsApi.markPriceStream(requestParameters);\n    }\n\n    /**\n     * Mark price and funding rate for all symbols pushed every 3 seconds or every second.\n     *\n     * Update Speed: 3000ms or 1000ms\n     *\n     * @summary Mark Price Stream for All market\n     * @param {MarkPriceStreamForAllMarketRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceStreamForAllMarketResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Mark-Price-Stream-for-All-market Binance API Documentation}\n     */\n    markPriceStreamForAllMarket(\n        requestParameters: MarkPriceStreamForAllMarketRequest = {}\n    ): WebsocketStream<MarkPriceStreamForAllMarketResponse> {\n        return this.websocketMarketStreamsApi.markPriceStreamForAllMarket(requestParameters);\n    }\n\n    /**\n     * Asset index for multi-assets mode user\n     *\n     * Update Speed: 1s\n     *\n     * @summary Multi-Assets Mode Asset Index\n     * @param {MultiAssetsModeAssetIndexRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MultiAssetsModeAssetIndexResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Multi-Assets-Mode-Asset-Index Binance API Documentation}\n     */\n    multiAssetsModeAssetIndex(\n        requestParameters: MultiAssetsModeAssetIndexRequest = {}\n    ): WebsocketStream<MultiAssetsModeAssetIndexResponse> {\n        return this.websocketMarketStreamsApi.multiAssetsModeAssetIndex(requestParameters);\n    }\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid **<levels\\>** are 5, 10, or 20.\n     *\n     * Update Speed: 250ms, 500ms or 100ms\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-market-streams/Partial-Book-Depth-Streams Binance API Documentation}\n     */\n    partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse> {\n        return this.websocketMarketStreamsApi.partialBookDepthStreams(requestParameters);\n    }\n}\n","export {\n    DerivativesTradingUsdsFutures,\n    ConfigurationDerivativesTradingUsdsFutures,\n} from './derivatives-trading-usds-futures';\nexport * as DerivativesTradingUsdsFuturesRestAPI from './rest-api';\nexport * as DerivativesTradingUsdsFuturesWebsocketAPI from './websocket-api';\nexport * as DerivativesTradingUsdsFuturesWebsocketStreams from './websocket-streams';\n\nexport {\n    DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_REST_API_TESTNET_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_API_TESTNET_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL,\n    DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_TESTNET_URL,\n    ConnectorClientError,\n    RequiredError,\n    UnauthorizedError,\n    ForbiddenError,\n    TooManyRequestsError,\n    RateLimitBanError,\n    ServerError,\n    NetworkError,\n    NotFoundError,\n    BadRequestError,\n} from '@binance/common';\n"],"mappings":"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","names":["ConfigurationRestAPI","ConfigurationWebsocketAPI","ConfigurationWebsocketStreams","assertParamExists","sendRequest","assertParamExists","sendRequest","BasisContractTypeEnum","BasisPeriodEnum","ContinuousContractKlineCandlestickDataContractTypeEnum","ContinuousContractKlineCandlestickDataIntervalEnum","IndexPriceKlineCandlestickDataIntervalEnum","KlineCandlestickDataIntervalEnum","LongShortRatioPeriodEnum","MarkPriceKlineCandlestickDataIntervalEnum","OpenInterestStatisticsPeriodEnum","PremiumIndexKlineDataIntervalEnum","TakerBuySellVolumePeriodEnum","TopTraderLongShortRatioAccountsPeriodEnum","TopTraderLongShortRatioPositionsPeriodEnum","assertParamExists","sendRequest","assertParamExists","sendRequest","ChangeMarginTypeMarginTypeEnum","ModifyIsolatedPositionMarginPositionSideEnum","ModifyOrderSideEnum","ModifyOrderPriceMatchEnum","NewOrderSideEnum","NewOrderPositionSideEnum","NewOrderTimeInForceEnum","NewOrderWorkingTypeEnum","NewOrderNewOrderRespTypeEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","TestOrderSideEnum","TestOrderPositionSideEnum","TestOrderTimeInForceEnum","TestOrderWorkingTypeEnum","TestOrderNewOrderRespTypeEnum","TestOrderPriceMatchEnum","TestOrderSelfTradePreventionModeEnum","UsersForceOrdersAutoCloseTypeEnum","sendRequest","sendRequest","sendRequest","AccountApi","MarketDataApi","ModifyOrderPriceMatchEnum","ModifyOrderSideEnum","NewOrderNewOrderRespTypeEnum","NewOrderPositionSideEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","NewOrderSideEnum","NewOrderTimeInForceEnum","NewOrderWorkingTypeEnum","TradeApi","UserDataStreamsApi","AccountApi","MarketDataApi","TradeApi","ModifyOrderSideEnum","ModifyOrderPriceMatchEnum","NewOrderSideEnum","NewOrderPositionSideEnum","NewOrderTimeInForceEnum","NewOrderWorkingTypeEnum","NewOrderNewOrderRespTypeEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","UserDataStreamsApi","AccountApi","MarketDataApi","TradeApi","UserDataStreamsApi","assertParamExists","WebsocketStreamsBase","createStreamHandler","createStreamHandler","WebsocketStreamsBase","ConfigurationRestAPI","ConfigurationWebsocketAPI","ConfigurationWebsocketStreams","DERIVATIVES_TRADING_USDS_FUTURES_REST_API_PROD_URL","DERIVATIVES_TRADING_USDS_FUTURES_WS_API_PROD_URL","DERIVATIVES_TRADING_USDS_FUTURES_WS_STREAMS_PROD_URL"]}