{"version":3,"sources":["../src/derivatives-trading-coin-futures.ts","../package.json","../src/rest-api/index.ts","../src/rest-api/types/modify-multiple-orders-batch-orders-parameter-inner.ts","../src/rest-api/modules/account-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/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_COIN_FUTURES_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL,\n    DERIVATIVES_TRADING_COIN_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 ConfigurationDerivativesTradingCoinFutures {\n    configurationRestAPI?: ConfigurationRestAPI;\n    configurationWebsocketAPI?: ConfigurationWebsocketAPI;\n    configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class DerivativesTradingCoinFutures {\n    public restAPI!: RestAPI;\n    public websocketAPI!: WebsocketAPI;\n    public websocketStreams!: WebsocketStreams;\n\n    constructor(config: ConfigurationDerivativesTradingCoinFutures) {\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_COIN_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_COIN_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_COIN_FUTURES_WS_STREAMS_PROD_URL;\n            configWebsocketStreams.userAgent = userAgent;\n            this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n        }\n    }\n}\n","{\n    \"name\": \"@binance/derivatives-trading-coin-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\": \"6.0.3\",\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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 {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];\n","/**\n * Binance Derivatives Trading COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    AccountInformationResponse,\n    FuturesAccountBalanceResponse,\n    GetCurrentPositionModeResponse,\n    GetDownloadIdForFuturesOrderHistoryResponse,\n    GetDownloadIdForFuturesTradeHistoryResponse,\n    GetDownloadIdForFuturesTransactionHistoryResponse,\n    GetFuturesOrderHistoryDownloadLinkByIdResponse,\n    GetFuturesTradeDownloadLinkByIdResponse,\n    GetFuturesTransactionHistoryDownloadLinkByIdResponse,\n    GetIncomeHistoryResponse,\n    NotionalBracketForPairResponse,\n    NotionalBracketForSymbolResponse,\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.\n         *\n         * for One-way Mode user, the \"positions\" will only show the \"BOTH\" positions\n         * for Hedge Mode user, the \"positions\" will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n         *\n         * Weight: 5\n         *\n         * @summary Account Information (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountInformation: 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: '/dapi/v1/account',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check futures account balance\n         *\n         * Weight: 1\n         *\n         * @summary Futures Account Balance (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        futuresAccountBalance: 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: '/dapi/v1/balance',\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: '/dapi/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: 5\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: '/dapi/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: 5\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: '/dapi/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: 5\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: '/dapi/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: 5\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: '/dapi/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: 5\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: '/dapi/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: 5\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: '/dapi/v1/income/asyn/id',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get income history\n         *\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         * The time between `startTime` and `endTime` can not be longer than 1 year\n         *\n         * Weight: 20\n         *\n         * @summary Get Income History(USER_DATA)\n         * @param {string} [symbol]\n         * @param {string} [incomeType] \"TRANSFER\",\"WELCOME_BONUS\", \"FUNDING_FEE\", \"REALIZED_PNL\", \"COMMISSION\", \"INSURANCE_CLEAR\", and \"DELIVERED_SETTELMENT\"\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: '/dapi/v1/income',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * **Not recommended to continue using this v1 endpoint**\n         *\n         * Get the pair's default notional bracket list, may return ambiguous values when there have been multiple different `symbol` brackets under the `pair`, suggest using the following `GET /dapi/v2/leverageBracket` query instead to get the specific `symbol` notional bracket list.\n         *\n         * Weight: 1\n         *\n         * @summary Notional Bracket for Pair(USER_DATA)\n         * @param {string} [pair]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        notionalBracketForPair: async (\n            pair?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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: '/dapi/v1/leverageBracket',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get the symbol's notional bracket list.\n         *\n         * Weight: 1\n         *\n         * @summary Notional Bracket for Symbol(USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        notionalBracketForSymbol: 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: '/dapi/v2/leverageBracket',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query 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: '/dapi/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.\n     *\n     * for One-way Mode user, the \"positions\" will only show the \"BOTH\" positions\n     * for Hedge Mode user, the \"positions\" will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information (USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    accountInformation(\n        requestParameters?: AccountInformationRequest\n    ): Promise<RestApiResponse<AccountInformationResponse>>;\n    /**\n     * Check futures account balance\n     *\n     * Weight: 1\n     *\n     * @summary Futures Account Balance (USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    futuresAccountBalance(\n        requestParameters?: FuturesAccountBalanceRequest\n    ): Promise<RestApiResponse<FuturesAccountBalanceResponse>>;\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: 5\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: 5\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: 5\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: 5\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: 5\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: 5\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     * Get income history\n     *\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     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 20\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     * **Not recommended to continue using this v1 endpoint**\n     *\n     * Get the pair's default notional bracket list, may return ambiguous values when there have been multiple different `symbol` brackets under the `pair`, suggest using the following `GET /dapi/v2/leverageBracket` query instead to get the specific `symbol` notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Pair(USER_DATA)\n     * @param {NotionalBracketForPairRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    notionalBracketForPair(\n        requestParameters?: NotionalBracketForPairRequest\n    ): Promise<RestApiResponse<NotionalBracketForPairResponse>>;\n    /**\n     * Get the symbol's notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Symbol(USER_DATA)\n     * @param {NotionalBracketForSymbolRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    notionalBracketForSymbol(\n        requestParameters?: NotionalBracketForSymbolRequest\n    ): Promise<RestApiResponse<NotionalBracketForSymbolResponse>>;\n    /**\n     * Query 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 accountInformation operation in AccountApi.\n * @interface AccountInformationRequest\n */\nexport interface AccountInformationRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountInformation\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     *\n     * @type {number}\n     * @memberof AccountApiFuturesAccountBalance\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\", \"FUNDING_FEE\", \"REALIZED_PNL\", \"COMMISSION\", \"INSURANCE_CLEAR\", and \"DELIVERED_SETTELMENT\"\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 notionalBracketForPair operation in AccountApi.\n * @interface NotionalBracketForPairRequest\n */\nexport interface NotionalBracketForPairRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiNotionalBracketForPair\n     */\n    readonly pair?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiNotionalBracketForPair\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for notionalBracketForSymbol operation in AccountApi.\n * @interface NotionalBracketForSymbolRequest\n */\nexport interface NotionalBracketForSymbolRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiNotionalBracketForSymbol\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiNotionalBracketForSymbol\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.\n     *\n     * for One-way Mode user, the \"positions\" will only show the \"BOTH\" positions\n     * for Hedge Mode user, the \"positions\" will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information (USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Account-Information Binance API Documentation}\n     */\n    public async accountInformation(\n        requestParameters: AccountInformationRequest = {}\n    ): Promise<RestApiResponse<AccountInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountInformation(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Check futures account balance\n     *\n     * Weight: 1\n     *\n     * @summary Futures Account Balance (USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Futures-Account-Balance Binance API Documentation}\n     */\n    public async futuresAccountBalance(\n        requestParameters: FuturesAccountBalanceRequest = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.futuresAccountBalance(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<FuturesAccountBalanceResponse>(\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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     * Get income history\n     *\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     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 20\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/coin-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     * **Not recommended to continue using this v1 endpoint**\n     *\n     * Get the pair's default notional bracket list, may return ambiguous values when there have been multiple different `symbol` brackets under the `pair`, suggest using the following `GET /dapi/v2/leverageBracket` query instead to get the specific `symbol` notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Pair(USER_DATA)\n     * @param {NotionalBracketForPairRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalBracketForPairResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Notional-Bracket-for-Pair Binance API Documentation}\n     */\n    public async notionalBracketForPair(\n        requestParameters: NotionalBracketForPairRequest = {}\n    ): Promise<RestApiResponse<NotionalBracketForPairResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.notionalBracketForPair(\n            requestParameters?.pair,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NotionalBracketForPairResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get the symbol's notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Symbol(USER_DATA)\n     * @param {NotionalBracketForSymbolRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalBracketForSymbolResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Notional-Bracket-for-Symbol Binance API Documentation}\n     */\n    public async notionalBracketForSymbol(\n        requestParameters: NotionalBracketForSymbolRequest = {}\n    ): Promise<RestApiResponse<NotionalBracketForSymbolResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.notionalBracketForSymbol(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NotionalBracketForSymbolResponse>(\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 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/coin-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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    CompressedAggregateTradesListResponse,\n    ContinuousContractKlineCandlestickDataResponse,\n    ExchangeInformationResponse,\n    GetFundingRateHistoryOfPerpetualFuturesResponse,\n    GetFundingRateInfoResponse,\n    IndexPriceAndMarkPriceResponse,\n    IndexPriceKlineCandlestickDataResponse,\n    KlineCandlestickDataResponse,\n    LongShortRatioResponse,\n    MarkPriceKlineCandlestickDataResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OpenInterestStatisticsResponse,\n    OrderBookResponse,\n    PremiumIndexKlineDataResponse,\n    QueryIndexPriceConstituentsResponse,\n    RecentTradesListResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\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 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: 1\n         *\n         * @summary Basis\n         * @param {string} pair BTCUSD\n         * @param {BasisContractTypeEnum} contractType ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\n         * @param {BasisPeriodEnum} 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        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\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: '/dapi/v1/time',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get compressed, aggregate trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\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: '/dapi/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         * Contract type:\n         * PERPETUAL\n         * CURRENT_QUARTER\n         * NEXT_QUARTER\n         *\n         *\n         * 1000 | 10\n         * The difference between `startTime` and `endTime` can only be up to 200 days\n         * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n         * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n         * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n         * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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 BTCUSD\n         * @param {ContinuousContractKlineCandlestickDataContractTypeEnum} contractType ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\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: '/dapi/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: '/dapi/v1/exchangeInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get Funding Rate History of Perpetual Futures\n         *\n         * empty array will be returned for delivery symbols.\n         *\n         * Weight: 1\n         *\n         * @summary Get Funding Rate History of Perpetual Futures\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        getFundingRateHistoryOfPerpetualFutures: async (\n            symbol: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('getFundingRateHistoryOfPerpetualFutures', 'symbol', symbol);\n\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: '/dapi/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         *\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: '/dapi/v1/fundingInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query index price and mark price\n         *\n         * Weight: 10\n         *\n         * @summary Index Price and Mark Price\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         *\n         * @throws {RequiredError}\n         */\n        indexPriceAndMarkPrice: async (symbol?: string, pair?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\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: '/dapi/v1/premiumIndex',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for the index price of a pair. Klines are uniquely identified by their open time.\n         *\n         *\n         * 1000 | 10\n         * The difference between `startTime` and `endTime` can only be up to 200 days\n         * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n         * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n         * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n         * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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 BTCUSD\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: '/dapi/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         * 1000 | 10\n         * The difference between `startTime` and `endTime` can only be up to 200 days\n         * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n         * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n         * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n         * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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: '/dapi/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         *\n         * Weight: 1\n         *\n         * @summary Long/Short Ratio\n         * @param {string} pair BTCUSD\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            pair: string,\n            period: LongShortRatioPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('longShortRatio', 'pair', pair);\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 (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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         * Kline/candlestick bars for the mark price of a symbol.\n         * Klines are uniquely identified by their open time.\n         *\n         *\n         * 1000 | 10\n         * The difference between `startTime` and `endTime` can only be up to 200 days\n         * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n         * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n         * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n         * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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: '/dapi/v1/markPriceKlines',\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         *\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: '/dapi/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: '/dapi/v1/openInterest',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query open interest stats\n         *\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: 1\n         *\n         * @summary Open Interest Statistics\n         * @param {string} pair BTCUSD\n         * @param {OpenInterestStatisticsContractTypeEnum} contractType ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\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            pair: string,\n            contractType: OpenInterestStatisticsContractTypeEnum,\n            period: OpenInterestStatisticsPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('openInterestStatistics', 'pair', pair);\n            // verify required parameter 'contractType' is not null or undefined\n            assertParamExists('openInterestStatistics', 'contractType', contractType);\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 (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/openInterestHist',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query orderbook on specific symbol\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: '/dapi/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: '/dapi/v1/premiumIndexKlines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query index price constituents\n         *\n         * Weight: 1\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: '/dapi/v1/constituents',\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: '/dapi/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         * Symbol and pair cannot be sent together\n         * If a pair is sent,tickers for all symbols of the pair will be returned\n         * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n         *\n         * Weight: 2 for a single symbol, 5 when the symbol parameter is omitted\n         *\n         * @summary Symbol Order Book Ticker\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         *\n         * @throws {RequiredError}\n         */\n        symbolOrderBookTicker: async (symbol?: string, pair?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\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: '/dapi/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         * Symbol and pair cannot be sent together\n         * If a pair is sent,tickers for all symbols of the pair will be returned\n         * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n         *\n         * Weight: 1 for a single symbol, 2 when the symbol parameter is omitted\n         *\n         * @summary Symbol Price Ticker\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         *\n         * @throws {RequiredError}\n         */\n        symbolPriceTicker: async (symbol?: string, pair?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\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: '/dapi/v1/ticker/price',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Taker Buy Volume: the total volume of buy orders filled by takers within the period.\n         * Taker Sell Volume: the total volume of sell orders filled by takers within the period.\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: 1\n         *\n         * @summary Taker Buy/Sell Volume\n         * @param {string} pair BTCUSD\n         * @param {TakerBuySellVolumeContractTypeEnum} contractType ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\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            pair: string,\n            contractType: TakerBuySellVolumeContractTypeEnum,\n            period: TakerBuySellVolumePeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('takerBuySellVolume', 'pair', pair);\n            // verify required parameter 'contractType' is not null or undefined\n            assertParamExists('takerBuySellVolume', 'contractType', contractType);\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 (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/takerBuySellVol',\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: '/dapi/v1/ping',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * 24 hour rolling window price change statistics.\n         *\n         * Symbol and pair cannot be sent together\n         * If a pair is sent,tickers for all symbols of the pair will be returned\n         * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\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 24hr Ticker Price Change Statistics\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         *\n         * @throws {RequiredError}\n         */\n        ticker24hrPriceChangeStatistics: async (\n            symbol?: string,\n            pair?: string\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\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: '/dapi/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         *\n         * Weight: 1\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         *\n         * Weight: 1\n         *\n         * @summary Top Trader Long/Short Ratio (Positions)\n         * @param {string} pair BTCUSD\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            pair: string,\n            period: TopTraderLongShortRatioPositionsPeriodEnum,\n            limit?: number,\n            startTime?: number,\n            endTime?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('topTraderLongShortRatioPositions', 'pair', pair);\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 (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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 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: 1\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     * Get compressed, aggregate trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\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     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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 of Perpetual Futures\n     *\n     * empty array will be returned for delivery symbols.\n     *\n     * Weight: 1\n     *\n     * @summary Get Funding Rate History of Perpetual Futures\n     * @param {GetFundingRateHistoryOfPerpetualFuturesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    getFundingRateHistoryOfPerpetualFutures(\n        requestParameters: GetFundingRateHistoryOfPerpetualFuturesRequest\n    ): Promise<RestApiResponse<GetFundingRateHistoryOfPerpetualFuturesResponse>>;\n    /**\n     * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n     *\n     * Weight: 0\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     * Query index price and mark price\n     *\n     * Weight: 10\n     *\n     * @summary Index Price and Mark Price\n     * @param {IndexPriceAndMarkPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    indexPriceAndMarkPrice(\n        requestParameters?: IndexPriceAndMarkPriceRequest\n    ): Promise<RestApiResponse<IndexPriceAndMarkPriceResponse>>;\n    /**\n     * Kline/candlestick bars for the index price of a pair. Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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     *\n     * Weight: 1\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     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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     * 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     *\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     * Query open interest stats\n     *\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: 1\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 orderbook on specific symbol\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     * Query index price constituents\n     *\n     * Weight: 1\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     * 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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 2 for a single symbol, 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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 1 for a single symbol, 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     * Taker Buy Volume: the total volume of buy orders filled by takers within the period.\n     * Taker Sell Volume: the total volume of sell orders filled by takers within the period.\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: 1\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     *\n     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\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 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     *\n     * Weight: 1\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     *\n     * Weight: 1\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     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiBasis\n     */\n    readonly pair: string;\n\n    /**\n     * ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\n     * @type {'PERPETUAL' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'CURRENT_QUARTER_DELIVERING' | 'NEXT_QUARTER_DELIVERING' | '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 100; max 1000\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 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     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiContinuousContractKlineCandlestickData\n     */\n    readonly pair: string;\n\n    /**\n     * ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\n     * @type {'PERPETUAL' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'CURRENT_QUARTER_DELIVERING' | 'NEXT_QUARTER_DELIVERING' | '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 getFundingRateHistoryOfPerpetualFutures operation in MarketDataApi.\n * @interface GetFundingRateHistoryOfPerpetualFuturesRequest\n */\nexport interface GetFundingRateHistoryOfPerpetualFuturesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiGetFundingRateHistoryOfPerpetualFutures\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistoryOfPerpetualFutures\n     */\n    readonly startTime?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistoryOfPerpetualFutures\n     */\n    readonly endTime?: number;\n\n    /**\n     * Default 100; max 1000\n     * @type {number}\n     * @memberof MarketDataApiGetFundingRateHistoryOfPerpetualFutures\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for indexPriceAndMarkPrice operation in MarketDataApi.\n * @interface IndexPriceAndMarkPriceRequest\n */\nexport interface IndexPriceAndMarkPriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiIndexPriceAndMarkPrice\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof MarketDataApiIndexPriceAndMarkPrice\n     */\n    readonly pair?: string;\n}\n\n/**\n * Request parameters for indexPriceKlineCandlestickData operation in MarketDataApi.\n * @interface IndexPriceKlineCandlestickDataRequest\n */\nexport interface IndexPriceKlineCandlestickDataRequest {\n    /**\n     * BTCUSD\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     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiLongShortRatio\n     */\n    readonly pair: 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 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 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     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly pair: string;\n\n    /**\n     * ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\n     * @type {'PERPETUAL' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'CURRENT_QUARTER_DELIVERING' | 'NEXT_QUARTER_DELIVERING' | 'PERPETUAL_DELIVERING'}\n     * @memberof MarketDataApiOpenInterestStatistics\n     */\n    readonly contractType: OpenInterestStatisticsContractTypeEnum;\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 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 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     * @type {string}\n     * @memberof MarketDataApiSymbolOrderBookTicker\n     */\n    readonly pair?: 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     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTicker\n     */\n    readonly pair?: string;\n}\n\n/**\n * Request parameters for takerBuySellVolume operation in MarketDataApi.\n * @interface TakerBuySellVolumeRequest\n */\nexport interface TakerBuySellVolumeRequest {\n    /**\n     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly pair: string;\n\n    /**\n     * ALL, CURRENT_QUARTER, NEXT_QUARTER, PERPETUAL\n     * @type {'PERPETUAL' | 'CURRENT_QUARTER' | 'NEXT_QUARTER' | 'CURRENT_QUARTER_DELIVERING' | 'NEXT_QUARTER_DELIVERING' | 'PERPETUAL_DELIVERING'}\n     * @memberof MarketDataApiTakerBuySellVolume\n     */\n    readonly contractType: TakerBuySellVolumeContractTypeEnum;\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     * @type {string}\n     * @memberof MarketDataApiTicker24hrPriceChangeStatistics\n     */\n    readonly pair?: 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     * BTCUSD\n     * @type {string}\n     * @memberof MarketDataApiTopTraderLongShortRatioPositions\n     */\n    readonly pair: 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 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: 1\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/coin-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/coin-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     * Get compressed, aggregate trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\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/coin-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     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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/coin-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 of Perpetual Futures\n     *\n     * empty array will be returned for delivery symbols.\n     *\n     * Weight: 1\n     *\n     * @summary Get Funding Rate History of Perpetual Futures\n     * @param {GetFundingRateHistoryOfPerpetualFuturesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFundingRateHistoryOfPerpetualFuturesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/rest-api/Get-Funding-Rate-History-of-Perpetual-Futures Binance API Documentation}\n     */\n    public async getFundingRateHistoryOfPerpetualFutures(\n        requestParameters: GetFundingRateHistoryOfPerpetualFuturesRequest\n    ): Promise<RestApiResponse<GetFundingRateHistoryOfPerpetualFuturesResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getFundingRateHistoryOfPerpetualFutures(\n                requestParameters?.symbol,\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.limit\n            );\n        return sendRequest<GetFundingRateHistoryOfPerpetualFuturesResponse>(\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     *\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/coin-margined-futures/market-data/rest-api/Get-Funding-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     * Query index price and mark price\n     *\n     * Weight: 10\n     *\n     * @summary Index Price and Mark Price\n     * @param {IndexPriceAndMarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<IndexPriceAndMarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/rest-api/Index-Price-and-Mark-Price Binance API Documentation}\n     */\n    public async indexPriceAndMarkPrice(\n        requestParameters: IndexPriceAndMarkPriceRequest = {}\n    ): Promise<RestApiResponse<IndexPriceAndMarkPriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.indexPriceAndMarkPrice(\n            requestParameters?.symbol,\n            requestParameters?.pair\n        );\n        return sendRequest<IndexPriceAndMarkPriceResponse>(\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. Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     *\n     * Weight: 1\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/coin-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?.pair,\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     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     * 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     *\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/coin-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/coin-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     * Query open interest stats\n     *\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: 1\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/coin-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?.pair,\n            requestParameters?.contractType,\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 orderbook on specific symbol\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/coin-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/coin-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     * Query index price constituents\n     *\n     * Weight: 1\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/coin-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     * 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/coin-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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 2 for a single symbol, 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/coin-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            requestParameters?.pair\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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 1 for a single symbol, 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/coin-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            requestParameters?.pair\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     * Taker Buy Volume: the total volume of buy orders filled by takers within the period.\n     * Taker Sell Volume: the total volume of sell orders filled by takers within the period.\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: 1\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/coin-margined-futures/market-data/rest-api/Taker-Buy-Sell-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?.pair,\n            requestParameters?.contractType,\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/coin-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     *\n     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\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 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/coin-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                requestParameters?.pair\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     *\n     * Weight: 1\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/coin-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     *\n     * Weight: 1\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/coin-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?.pair,\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_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    CURRENT_QUARTER_DELIVERING = 'CURRENT_QUARTER_DELIVERING',\n    NEXT_QUARTER_DELIVERING = 'NEXT_QUARTER_DELIVERING',\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_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    CURRENT_QUARTER_DELIVERING = 'CURRENT_QUARTER_DELIVERING',\n    NEXT_QUARTER_DELIVERING = 'NEXT_QUARTER_DELIVERING',\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 OpenInterestStatisticsContractTypeEnum {\n    PERPETUAL = 'PERPETUAL',\n    CURRENT_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    CURRENT_QUARTER_DELIVERING = 'CURRENT_QUARTER_DELIVERING',\n    NEXT_QUARTER_DELIVERING = 'NEXT_QUARTER_DELIVERING',\n    PERPETUAL_DELIVERING = 'PERPETUAL_DELIVERING',\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 TakerBuySellVolumeContractTypeEnum {\n    PERPETUAL = 'PERPETUAL',\n    CURRENT_QUARTER = 'CURRENT_QUARTER',\n    NEXT_QUARTER = 'NEXT_QUARTER',\n    CURRENT_QUARTER_DELIVERING = 'CURRENT_QUARTER_DELIVERING',\n    NEXT_QUARTER_DELIVERING = 'NEXT_QUARTER_DELIVERING',\n    PERPETUAL_DELIVERING = 'PERPETUAL_DELIVERING',\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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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         * 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: '/dapi/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     * 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     * 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/coin-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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    CancelAllOpenOrdersResponse,\n    CancelMultipleOrdersResponse,\n    CancelOrderResponse,\n    ChangeInitialLeverageResponse,\n    ChangeMarginTypeResponse,\n    ChangePositionModeResponse,\n    CurrentAllOpenOrdersResponse,\n    GetOrderModifyHistoryResponse,\n    GetPositionMarginChangeHistoryResponse,\n    ModifyIsolatedPositionMarginResponse,\n    ModifyMultipleOrdersBatchOrdersParameterInner,\n    ModifyMultipleOrdersResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PositionAdlQuantileEstimationResponse,\n    PositionInformationResponse,\n    QueryCurrentOpenOrderResponse,\n    QueryOrderResponse,\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         *\n         * Either symbol or pair must be sent\n         * Symbol and pair cannot be sent together\n         * Pair and fromId cannot be sent together\n         * OrderId can only be sent together with symbol\n         * If a pair is sent,tickers for all symbols of the pair will be returned\n         * The parameter `fromId` cannot be sent with `startTime` or `endTime`\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         *\n         * Weight: 20 with symbol，40 with pair\n         *\n         * @summary Account Trade List (USER_DATA)\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         * @param {string} [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            pair?: string,\n            orderId?: string,\n            startTime?: number,\n            endTime?: number,\n            fromId?: 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 (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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: '/dapi/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         *\n         * Either `symbol` or `pair` must be sent.\n         * `pair` can't be sent with `orderId`\n         * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\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: 20 with symbol, 40 with pair\n         *\n         * @summary All Orders (USER_DATA)\n         * @param {string} [symbol]\n         * @param {string} [pair]\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            pair?: string,\n            orderId?: number,\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 (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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: '/dapi/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. This rest endpoint means to ensure your open orders are canceled in case of an outage. The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and repalced by a new one. 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         * 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         * 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: '/dapi/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: '/dapi/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: '/dapi/v1/batchOrders',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel an active order.\n         *\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: '/dapi/v1/order',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's initial leverage in the specific symbol market.\n         * For Hedge Mode, LONG and SHORT positions of one symbol use the same initial leverage and share a total notional value.\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: '/dapi/v1/leverage',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Change user's margin type in the specific symbol market.For Hedge Mode, LONG and SHORT positions of one symbol use the same margin type.\n         * With ISOLATED margin type, margins of the LONG and SHORT positions are isolated from each other.\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: '/dapi/v1/marginType',\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: '/dapi/v1/positionSide/dual',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get all open orders on a symbol. **Careful** when accessing this with no symbol.\n         *\n         * Weight: 1 for a single symbol, 40 for mutltiple symbols\n         *\n         * @summary Current All Open Orders (USER_DATA)\n         * @param {string} [symbol]\n         * @param {string} [pair]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        currentAllOpenOrders: async (\n            symbol?: string,\n            pair?: 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 (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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: '/dapi/v1/openOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get order modification history\n         *\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: '/dapi/v1/orderAmendment',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get position margin change history\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: '/dapi/v1/positionMargin/history',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Modify Isolated Position Margin\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 {ModifyIsolatedPositionMarginTypeEnum} 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: ModifyIsolatedPositionMarginTypeEnum,\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: '/dapi/v1/positionMargin',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Modify Multiple Orders\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\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: '/dapi/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         * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n         * Either `quantity` or `price` must be sent.\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\n         *\n         * @summary Modify Order (TRADE)\n         * @param {string} symbol\n         * @param {ModifyOrderSideEnum} side `SELL`, `BUY`\n         * @param {number} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [quantity] quantity measured by contract number, Cannot be sent with `closePosition`=`true`\n         * @param {number} [price]\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            orderId?: number,\n            origClientOrderId?: string,\n            quantity?: number,\n            price?: number,\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\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: '/dapi/v1/order',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in a new order.\n         *\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 /dapi/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` parameter\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`.\n         *\n         * Weight: 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 {NewOrderTypeEnum} 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] quantity measured by contract number, Cannot be sent with `closePosition`=`true`\n         * @param {string} [reduceOnly] \"true\" or \"false\". default \"false\". Cannot be sent in Hedge Mode; cannot be sent with `closePosition`=`true`(Close-All)\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] `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 `EXPIRE_MAKER`\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        newOrder: async (\n            symbol: string,\n            side: NewOrderSideEnum,\n            type: NewOrderTypeEnum,\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            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 (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: '/dapi/v1/order',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query 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: '/dapi/v1/adlQuantile',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account information.\n         *\n         * If neither `marginAsset` nor `pair` is sent, positions of all symbols with `TRADING` status will be returned.\n         * for One-way Mode user, the response  will only show the \"BOTH\" positions\n         * for Hedge Mode user, the response will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n         * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n         *\n         * Weight: 1\n         *\n         * @summary Position Information(USER_DATA)\n         * @param {string} [marginAsset]\n         * @param {string} [pair]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        positionInformation: async (\n            marginAsset?: string,\n            pair?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (marginAsset !== undefined && marginAsset !== null) {\n                localVarQueryParameter['marginAsset'] = marginAsset;\n            }\n\n            if (pair !== undefined && pair !== null) {\n                localVarQueryParameter['pair'] = pair;\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: '/dapi/v1/positionRisk',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query Current Open Order\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: '/dapi/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         *\n         * Either `orderId` or `origClientOrderId` must be sent.\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: '/dapi/v1/order',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * 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 200 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: '/dapi/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     *\n     * Either symbol or pair must be sent\n     * Symbol and pair cannot be sent together\n     * Pair and fromId cannot be sent together\n     * OrderId can only be sent together with symbol\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`\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     *\n     * Weight: 20 with symbol，40 with pair\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     *\n     * Either `symbol` or `pair` must be sent.\n     * `pair` can't be sent with `orderId`\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\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: 20 with symbol, 40 with pair\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. This rest endpoint means to ensure your open orders are canceled in case of an outage. The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and repalced by a new one. 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     * 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     * 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<void>>;\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     *\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 in the specific symbol market.\n     * For Hedge Mode, LONG and SHORT positions of one symbol use the same initial leverage and share a total notional value.\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 user's margin type in the specific symbol market.For Hedge Mode, LONG and SHORT positions of one symbol use the same margin type.\n     * With ISOLATED margin type, margins of the LONG and SHORT positions are isolated from each other.\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 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. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 1 for a single symbol, 40 for mutltiple symbols\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     *\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     * 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     * 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\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\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     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Either `quantity` or `price` must be sent.\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\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     *\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 /dapi/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` parameter\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`.\n     *\n     * Weight: 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     * Query 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 account information.\n     *\n     * If neither `marginAsset` nor `pair` is sent, positions of all symbols with `TRADING` status will be returned.\n     * for One-way Mode user, the response  will only show the \"BOTH\" positions\n     * for Hedge Mode user, the response will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 1\n     *\n     * @summary Position Information(USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    positionInformation(\n        requestParameters?: PositionInformationRequest\n    ): Promise<RestApiResponse<PositionInformationResponse>>;\n    /**\n     * Query Current Open Order\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     *\n     * Either `orderId` or `origClientOrderId` must be sent.\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     * 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 200 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 {string}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly pair?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly orderId?: string;\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 {string}\n     * @memberof TradeApiAllOrders\n     */\n    readonly pair?: 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 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 {string}\n     * @memberof TradeApiCurrentAllOpenOrders\n     */\n    readonly pair?: 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 {'LIMIT' | 'MARKET' | 'STOP' | 'STOP_MARKET' | 'TAKE_PROFIT' | 'TAKE_PROFIT_MARKET' | 'TRAILING_STOP_MARKET'}\n     * @memberof TradeApiModifyIsolatedPositionMargin\n     */\n    readonly type: ModifyIsolatedPositionMarginTypeEnum;\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     *\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     * quantity measured by contract number, 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     * 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 {'LIMIT' | 'MARKET' | 'STOP' | 'STOP_MARKET' | 'TAKE_PROFIT' | 'TAKE_PROFIT_MARKET' | 'TRAILING_STOP_MARKET'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: NewOrderTypeEnum;\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'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     * quantity measured by contract number, Cannot be sent with `closePosition`=`true`\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`(Close-All)\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     * `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 `EXPIRE_MAKER`\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_BOTH' | 'EXPIRE_MAKER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\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 positionInformation operation in TradeApi.\n * @interface PositionInformationRequest\n */\nexport interface PositionInformationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly marginAsset?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly pair?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformation\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 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     *\n     * Either symbol or pair must be sent\n     * Symbol and pair cannot be sent together\n     * Pair and fromId cannot be sent together\n     * OrderId can only be sent together with symbol\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`\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     *\n     * Weight: 20 with symbol，40 with pair\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/coin-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?.pair,\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     *\n     * Either `symbol` or `pair` must be sent.\n     * `pair` can't be sent with `orderId`\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\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: 20 with symbol, 40 with pair\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/coin-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?.pair,\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. This rest endpoint means to ensure your open orders are canceled in case of an outage. The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and repalced by a new one. 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     * 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     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/rest-api/Auto-Cancel-All-Open-Orders Binance API Documentation}\n     */\n    public async autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.autoCancelAllOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.countdownTime,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<void>(\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/coin-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/coin-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     *\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/coin-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 in the specific symbol market.\n     * For Hedge Mode, LONG and SHORT positions of one symbol use the same initial leverage and share a total notional value.\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/coin-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 user's margin type in the specific symbol market.For Hedge Mode, LONG and SHORT positions of one symbol use the same margin type.\n     * With ISOLATED margin type, margins of the LONG and SHORT positions are isolated from each other.\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/coin-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 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/coin-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. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 1 for a single symbol, 40 for mutltiple symbols\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/coin-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?.pair,\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     *\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/coin-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     * 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/coin-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     * 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/coin-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\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\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/coin-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     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Either `quantity` or `price` must be sent.\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\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/coin-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?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.quantity,\n            requestParameters?.price,\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     *\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 /dapi/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` parameter\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`.\n     *\n     * Weight: 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/coin-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?.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     * Query 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/coin-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 account information.\n     *\n     * If neither `marginAsset` nor `pair` is sent, positions of all symbols with `TRADING` status will be returned.\n     * for One-way Mode user, the response  will only show the \"BOTH\" positions\n     * for Hedge Mode user, the response will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 1\n     *\n     * @summary Position Information(USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/rest-api/Position-Information Binance API Documentation}\n     */\n    public async positionInformation(\n        requestParameters: PositionInformationRequest = {}\n    ): Promise<RestApiResponse<PositionInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.positionInformation(\n            requestParameters?.marginAsset,\n            requestParameters?.pair,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<PositionInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query Current Open Order\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/coin-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     *\n     * Either `orderId` or `origClientOrderId` must be sent.\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/coin-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     * 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 200 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/coin-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 ModifyIsolatedPositionMarginTypeEnum {\n    LIMIT = 'LIMIT',\n    MARKET = 'MARKET',\n    STOP = 'STOP',\n    STOP_MARKET = 'STOP_MARKET',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_MARKET = 'TAKE_PROFIT_MARKET',\n    TRAILING_STOP_MARKET = 'TRAILING_STOP_MARKET',\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 NewOrderTypeEnum {\n    LIMIT = 'LIMIT',\n    MARKET = 'MARKET',\n    STOP = 'STOP',\n    STOP_MARKET = 'STOP_MARKET',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_MARKET = 'TAKE_PROFIT_MARKET',\n    TRAILING_STOP_MARKET = 'TRAILING_STOP_MARKET',\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}\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    NONE = 'NONE',\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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 { 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: '/dapi/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.\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: '/dapi/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: '/dapi/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.\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<void>>;\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/coin-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.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive 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/coin-margined-futures/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    public async keepaliveUserDataStream(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.keepaliveUserDataStream();\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     * 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/coin-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 COIN Futures REST API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 { 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    AccountInformationRequest,\n    FuturesAccountBalanceRequest,\n    GetCurrentPositionModeRequest,\n    GetDownloadIdForFuturesOrderHistoryRequest,\n    GetDownloadIdForFuturesTradeHistoryRequest,\n    GetDownloadIdForFuturesTransactionHistoryRequest,\n    GetFuturesOrderHistoryDownloadLinkByIdRequest,\n    GetFuturesTradeDownloadLinkByIdRequest,\n    GetFuturesTransactionHistoryDownloadLinkByIdRequest,\n    GetIncomeHistoryRequest,\n    NotionalBracketForPairRequest,\n    NotionalBracketForSymbolRequest,\n    UserCommissionRateRequest,\n} from './modules/account-api';\nimport type {\n    BasisRequest,\n    CompressedAggregateTradesListRequest,\n    ContinuousContractKlineCandlestickDataRequest,\n    GetFundingRateHistoryOfPerpetualFuturesRequest,\n    IndexPriceAndMarkPriceRequest,\n    IndexPriceKlineCandlestickDataRequest,\n    KlineCandlestickDataRequest,\n    LongShortRatioRequest,\n    MarkPriceKlineCandlestickDataRequest,\n    OldTradesLookupRequest,\n    OpenInterestRequest,\n    OpenInterestStatisticsRequest,\n    OrderBookRequest,\n    PremiumIndexKlineDataRequest,\n    QueryIndexPriceConstituentsRequest,\n    RecentTradesListRequest,\n    SymbolOrderBookTickerRequest,\n    SymbolPriceTickerRequest,\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    ChangePositionModeRequest,\n    CurrentAllOpenOrdersRequest,\n    GetOrderModifyHistoryRequest,\n    GetPositionMarginChangeHistoryRequest,\n    ModifyIsolatedPositionMarginRequest,\n    ModifyMultipleOrdersRequest,\n    ModifyOrderRequest,\n    NewOrderRequest,\n    PositionAdlQuantileEstimationRequest,\n    PositionInformationRequest,\n    QueryCurrentOpenOrderRequest,\n    QueryOrderRequest,\n    UsersForceOrdersRequest,\n} from './modules/trade-api';\nimport type {} from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationResponse,\n    FuturesAccountBalanceResponse,\n    GetCurrentPositionModeResponse,\n    GetDownloadIdForFuturesOrderHistoryResponse,\n    GetDownloadIdForFuturesTradeHistoryResponse,\n    GetDownloadIdForFuturesTransactionHistoryResponse,\n    GetFuturesOrderHistoryDownloadLinkByIdResponse,\n    GetFuturesTradeDownloadLinkByIdResponse,\n    GetFuturesTransactionHistoryDownloadLinkByIdResponse,\n    GetIncomeHistoryResponse,\n    NotionalBracketForPairResponse,\n    NotionalBracketForSymbolResponse,\n    UserCommissionRateResponse,\n} from './types';\nimport type {\n    BasisResponse,\n    CheckServerTimeResponse,\n    CompressedAggregateTradesListResponse,\n    ContinuousContractKlineCandlestickDataResponse,\n    ExchangeInformationResponse,\n    GetFundingRateHistoryOfPerpetualFuturesResponse,\n    GetFundingRateInfoResponse,\n    IndexPriceAndMarkPriceResponse,\n    IndexPriceKlineCandlestickDataResponse,\n    KlineCandlestickDataResponse,\n    LongShortRatioResponse,\n    MarkPriceKlineCandlestickDataResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OpenInterestStatisticsResponse,\n    OrderBookResponse,\n    PremiumIndexKlineDataResponse,\n    QueryIndexPriceConstituentsResponse,\n    RecentTradesListResponse,\n    SymbolOrderBookTickerResponse,\n    SymbolPriceTickerResponse,\n    TakerBuySellVolumeResponse,\n    Ticker24hrPriceChangeStatisticsResponse,\n    TopTraderLongShortRatioAccountsResponse,\n    TopTraderLongShortRatioPositionsResponse,\n} from './types';\nimport type { ClassicPortfolioMarginAccountInformationResponse } from './types';\nimport type {\n    AccountTradeListResponse,\n    AllOrdersResponse,\n    CancelAllOpenOrdersResponse,\n    CancelMultipleOrdersResponse,\n    CancelOrderResponse,\n    ChangeInitialLeverageResponse,\n    ChangeMarginTypeResponse,\n    ChangePositionModeResponse,\n    CurrentAllOpenOrdersResponse,\n    GetOrderModifyHistoryResponse,\n    GetPositionMarginChangeHistoryResponse,\n    ModifyIsolatedPositionMarginResponse,\n    ModifyMultipleOrdersResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PositionAdlQuantileEstimationResponse,\n    PositionInformationResponse,\n    QueryCurrentOpenOrderResponse,\n    QueryOrderResponse,\n    UsersForceOrdersResponse,\n} from './types';\nimport type { StartUserDataStreamResponse } from './types';\n\nexport class RestAPI {\n    private configuration: ConfigurationRestAPI;\n    private accountApi: AccountApi;\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.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.\n     *\n     * for One-way Mode user, the \"positions\" will only show the \"BOTH\" positions\n     * for Hedge Mode user, the \"positions\" will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     *\n     * Weight: 5\n     *\n     * @summary Account Information (USER_DATA)\n     * @param {AccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Account-Information Binance API Documentation}\n     */\n    accountInformation(\n        requestParameters: AccountInformationRequest = {}\n    ): Promise<RestApiResponse<AccountInformationResponse>> {\n        return this.accountApi.accountInformation(requestParameters);\n    }\n\n    /**\n     * Check futures account balance\n     *\n     * Weight: 1\n     *\n     * @summary Futures Account Balance (USER_DATA)\n     * @param {FuturesAccountBalanceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<FuturesAccountBalanceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Futures-Account-Balance Binance API Documentation}\n     */\n    futuresAccountBalance(\n        requestParameters: FuturesAccountBalanceRequest = {}\n    ): Promise<RestApiResponse<FuturesAccountBalanceResponse>> {\n        return this.accountApi.futuresAccountBalance(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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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: 5\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/coin-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     * Get income history\n     *\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     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 20\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/coin-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     * **Not recommended to continue using this v1 endpoint**\n     *\n     * Get the pair's default notional bracket list, may return ambiguous values when there have been multiple different `symbol` brackets under the `pair`, suggest using the following `GET /dapi/v2/leverageBracket` query instead to get the specific `symbol` notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Pair(USER_DATA)\n     * @param {NotionalBracketForPairRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalBracketForPairResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Notional-Bracket-for-Pair Binance API Documentation}\n     */\n    notionalBracketForPair(\n        requestParameters: NotionalBracketForPairRequest = {}\n    ): Promise<RestApiResponse<NotionalBracketForPairResponse>> {\n        return this.accountApi.notionalBracketForPair(requestParameters);\n    }\n\n    /**\n     * Get the symbol's notional bracket list.\n     *\n     * Weight: 1\n     *\n     * @summary Notional Bracket for Symbol(USER_DATA)\n     * @param {NotionalBracketForSymbolRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NotionalBracketForSymbolResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/account/rest-api/Notional-Bracket-for-Symbol Binance API Documentation}\n     */\n    notionalBracketForSymbol(\n        requestParameters: NotionalBracketForSymbolRequest = {}\n    ): Promise<RestApiResponse<NotionalBracketForSymbolResponse>> {\n        return this.accountApi.notionalBracketForSymbol(requestParameters);\n    }\n\n    /**\n     * Query 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/coin-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     * Query 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: 1\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/coin-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/coin-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     * Get compressed, aggregate trades. Market trades that fill in 100ms with the same price and the same taking side will have the quantity aggregated.\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/coin-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     * Contract type:\n     * PERPETUAL\n     * CURRENT_QUARTER\n     * NEXT_QUARTER\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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/coin-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 of Perpetual Futures\n     *\n     * empty array will be returned for delivery symbols.\n     *\n     * Weight: 1\n     *\n     * @summary Get Funding Rate History of Perpetual Futures\n     * @param {GetFundingRateHistoryOfPerpetualFuturesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetFundingRateHistoryOfPerpetualFuturesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/rest-api/Get-Funding-Rate-History-of-Perpetual-Futures Binance API Documentation}\n     */\n    getFundingRateHistoryOfPerpetualFutures(\n        requestParameters: GetFundingRateHistoryOfPerpetualFuturesRequest\n    ): Promise<RestApiResponse<GetFundingRateHistoryOfPerpetualFuturesResponse>> {\n        return this.marketDataApi.getFundingRateHistoryOfPerpetualFutures(requestParameters);\n    }\n\n    /**\n     * Query funding rate info for symbols that had FundingRateCap/ FundingRateFloor / fundingIntervalHours adjustment\n     *\n     * Weight: 0\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/coin-margined-futures/market-data/rest-api/Get-Funding-Info Binance API Documentation}\n     */\n    getFundingRateInfo(): Promise<RestApiResponse<GetFundingRateInfoResponse>> {\n        return this.marketDataApi.getFundingRateInfo();\n    }\n\n    /**\n     * Query index price and mark price\n     *\n     * Weight: 10\n     *\n     * @summary Index Price and Mark Price\n     * @param {IndexPriceAndMarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<IndexPriceAndMarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/rest-api/Index-Price-and-Mark-Price Binance API Documentation}\n     */\n    indexPriceAndMarkPrice(\n        requestParameters: IndexPriceAndMarkPriceRequest = {}\n    ): Promise<RestApiResponse<IndexPriceAndMarkPriceResponse>> {\n        return this.marketDataApi.indexPriceAndMarkPrice(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for the index price of a pair. Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     *\n     * Weight: 1\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/coin-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     * Kline/candlestick bars for the mark price of a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     *\n     * 1000 | 10\n     * The difference between `startTime` and `endTime` can only be up to 200 days\n     * Between `startTime` and `endTime`, the most recent `limit` data from `endTime` will be returned:\n     * If `startTime` and `endTime` are not sent, current timestamp will be set as `endTime`, and the most recent data will be returned.\n     * If `startTime` is sent only, the timestamp of 200 days after `startTime` will be set as `endTime`(up to the current time)\n     * If `endTime` is sent only, the timestamp of 200 days before `endTime` will be set as `startTime`\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/coin-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     * 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     *\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/coin-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/coin-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     * Query open interest stats\n     *\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: 1\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/coin-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 orderbook on specific symbol\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/coin-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/coin-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     * Query index price constituents\n     *\n     * Weight: 1\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/coin-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     * 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/coin-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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 2 for a single symbol, 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/coin-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     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\n     *\n     * Weight: 1 for a single symbol, 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/coin-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     * Taker Buy Volume: the total volume of buy orders filled by takers within the period.\n     * Taker Sell Volume: the total volume of sell orders filled by takers within the period.\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: 1\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/coin-margined-futures/market-data/rest-api/Taker-Buy-Sell-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/coin-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     *\n     * Symbol and pair cannot be sent together\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * If either a pair or symbol is sent, tickers for all symbols of all pairs will be returned\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 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/coin-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     *\n     * Weight: 1\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/coin-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     *\n     * Weight: 1\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/coin-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     * 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/coin-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     *\n     * Either symbol or pair must be sent\n     * Symbol and pair cannot be sent together\n     * Pair and fromId cannot be sent together\n     * OrderId can only be sent together with symbol\n     * If a pair is sent,tickers for all symbols of the pair will be returned\n     * The parameter `fromId` cannot be sent with `startTime` or `endTime`\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     *\n     * Weight: 20 with symbol，40 with pair\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/coin-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     *\n     * Either `symbol` or `pair` must be sent.\n     * `pair` can't be sent with `orderId`\n     * If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\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: 20 with symbol, 40 with pair\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/coin-margined-futures/trade/rest-api/All-Orders Binance API Documentation}\n     */\n    allOrders(\n        requestParameters: AllOrdersRequest = {}\n    ): 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. This rest endpoint means to ensure your open orders are canceled in case of an outage. The endpoint should be called repeatedly as heartbeats so that the existing countdown time can be canceled and repalced by a new one. 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     * 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     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\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/coin-margined-futures/trade/rest-api/Auto-Cancel-All-Open-Orders Binance API Documentation}\n     */\n    autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<void>> {\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/coin-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/coin-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     *\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/coin-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 in the specific symbol market.\n     * For Hedge Mode, LONG and SHORT positions of one symbol use the same initial leverage and share a total notional value.\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/coin-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 user's margin type in the specific symbol market.For Hedge Mode, LONG and SHORT positions of one symbol use the same margin type.\n     * With ISOLATED margin type, margins of the LONG and SHORT positions are isolated from each other.\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/coin-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 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/coin-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. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 1 for a single symbol, 40 for mutltiple symbols\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/coin-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     *\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/coin-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     * 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/coin-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     * 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/coin-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\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\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/coin-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     * Either `orderId` or `origClientOrderId` must be sent, and the `orderId` will prevail if both are sent.\n     * Either `quantity` or `price` must be sent.\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\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/coin-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     *\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 /dapi/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` parameter\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`.\n     *\n     * Weight: 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/coin-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     * Query 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/coin-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 account information.\n     *\n     * If neither `marginAsset` nor `pair` is sent, positions of all symbols with `TRADING` status will be returned.\n     * for One-way Mode user, the response  will only show the \"BOTH\" positions\n     * for Hedge Mode user, the response will show \"BOTH\", \"LONG\", and \"SHORT\" positions.\n     * Please use with user data stream `ACCOUNT_UPDATE` to meet your timeliness and accuracy needs.\n     *\n     * Weight: 1\n     *\n     * @summary Position Information(USER_DATA)\n     * @param {PositionInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PositionInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/rest-api/Position-Information Binance API Documentation}\n     */\n    positionInformation(\n        requestParameters: PositionInformationRequest = {}\n    ): Promise<RestApiResponse<PositionInformationResponse>> {\n        return this.tradeApi.positionInformation(requestParameters);\n    }\n\n    /**\n     * Query Current Open Order\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/coin-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     *\n     * Either `orderId` or `origClientOrderId` must be sent.\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/coin-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     * 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 200 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/coin-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/coin-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.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive 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/coin-margined-futures/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    keepaliveUserDataStream(): Promise<RestApiResponse<void>> {\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/coin-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 COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 { AccountInformationResponse, FuturesAccountBalanceResponse } 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     * 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/**\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 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 * 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/coin-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     * 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/coin-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 * Binance Derivatives Trading COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    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     * 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 /dapi/v1/exchangeInfo`\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     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\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     * `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` parameter\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     * 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 available 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     * `LIMIT`, `MARKET`, `STOP`, `STOP_MARKET`, `TAKE_PROFIT`, `TAKE_PROFIT_MARKET`, `TRAILING_STOP_MARKET`\n     * @type {'LIMIT' | 'MARKET' | 'STOP' | 'STOP_MARKET' | 'TAKE_PROFIT' | 'TAKE_PROFIT_MARKET' | 'TRAILING_STOP_MARKET'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: NewOrderTypeEnum;\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'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     * Quantity measured by contract number, Cannot be sent with `closePosition`=`true`\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` (Close-All)\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 available 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 {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_BOTH' | 'EXPIRE_MAKER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum;\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 marginAsset?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiPositionInformation\n     */\n    readonly pair?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPositionInformation\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/coin-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/coin-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     * 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 /dapi/v1/exchangeInfo`\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     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\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     * `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` parameter\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/coin-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/coin-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     * 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/coin-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 NewOrderTypeEnum {\n    LIMIT = 'LIMIT',\n    MARKET = 'MARKET',\n    STOP = 'STOP',\n    STOP_MARKET = 'STOP_MARKET',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_MARKET = 'TAKE_PROFIT_MARKET',\n    TRAILING_STOP_MARKET = 'TRAILING_STOP_MARKET',\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}\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    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n}\n","/**\n * Binance Derivatives Trading COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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/coin-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/coin-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/coin-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 COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 COIN Futures WebSocket API\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 { TradeApi } from './modules/trade-api';\nimport { UserDataStreamsApi } from './modules/user-data-streams-api';\n\nimport type {\n    AccountInformationRequest,\n    FuturesAccountBalanceRequest,\n} from './modules/account-api';\nimport type {\n    CancelOrderRequest,\n    ModifyOrderRequest,\n    NewOrderRequest,\n    PositionInformationRequest,\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 { AccountInformationResponse, FuturesAccountBalanceResponse } from './types';\nimport type {\n    CancelOrderResponse,\n    ModifyOrderResponse,\n    NewOrderResponse,\n    PositionInformationResponse,\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 tradeApi: TradeApi;\n    private userDataStreamsApi: UserDataStreamsApi;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n        this.accountApi = new AccountApi(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/coin-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     * 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/coin-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     * 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/coin-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/coin-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     * 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 /dapi/v1/exchangeInfo`\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     * For `TRAILING_STOP_MARKET`, if you got such error code.\n     * BUY: `activationPrice` should be smaller than latest price.\n     * SELL: `activationPrice` should be larger than latest price.\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     * `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` parameter\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/coin-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/coin-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     * 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/coin-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/coin-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/coin-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/coin-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 COIN Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 COIN Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    ContinuousContractKlineCandlestickStreamsResponse,\n    ContractInfoStreamResponse,\n    DiffBookDepthStreamsResponse,\n    IndexKlineCandlestickStreamsResponse,\n    IndexPriceStreamResponse,\n    IndividualSymbolBookTickerStreamsResponse,\n    IndividualSymbolMiniTickerStreamResponse,\n    IndividualSymbolTickerStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    LiquidationOrderStreamsResponse,\n    MarkPriceKlineCandlestickStreamsResponse,\n    MarkPriceOfAllSymbolsOfAPairResponse,\n    MarkPriceStreamResponse,\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.\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: Real-time\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         * Kline update every second\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, or 100 milliseconds\n         *\n         * Update Speed: 250ms or 500ms or 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         * Index Kline/Candlestick Streams\n         *\n         * Update Speed: 250ms\n         *\n         * @summary Index Kline/Candlestick Streams\n         * @param {string} pair The pair parameter\n         * @param {string} interval The interval parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        indexKlineCandlestickStreams: (pair: string, interval: string, id?: string): string => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('indexKlineCandlestickStreams', 'pair', pair);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('indexKlineCandlestickStreams', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<pair>@indexPriceKline_<interval>'.slice(1),\n                { pair, interval, id }\n            );\n        },\n        /**\n         * Index Price Stream\n         *\n         * Update Speed: 3000ms OR 1000ms\n         *\n         * @summary Index Price Stream\n         * @param {string} pair The pair parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        indexPriceStream: (pair: string, id?: string, updateSpeed?: string): string => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('indexPriceStream', 'pair', pair);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<pair>@indexPrice@<updateSpeed>'.slice(1),\n                { pair, id, 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: 500ms\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: 500ms\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         *\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 Kline/Candlestick Streams\n         *\n         * Update Speed: 250ms\n         *\n         * @summary Mark Price 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        markPriceKlineCandlestickStreams: (\n            symbol: string,\n            interval: string,\n            id?: string\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('markPriceKlineCandlestickStreams', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('markPriceKlineCandlestickStreams', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@markPriceKline_<interval>'.slice(1),\n                { symbol, interval, id }\n            );\n        },\n        /**\n         * Mark Price of All Symbols of a Pair\n         *\n         * Update Speed: 3000ms OR 1000ms\n         *\n         * @summary Mark Price of All Symbols of a Pair\n         * @param {string} pair The pair parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        markPriceOfAllSymbolsOfAPair: (pair: string, id?: string, updateSpeed?: string): string => {\n            // verify required parameter 'pair' is not null or undefined\n            assertParamExists('markPriceOfAllSymbolsOfAPair', 'pair', pair);\n\n            return replaceWebsocketStreamsPlaceholders('/<pair>@markPrice@<updateSpeed>'.slice(1), {\n                pair,\n                id,\n                updateSpeed,\n            });\n        },\n        /**\n         * Mark price update stream\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         * 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.\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: Real-time\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     * Kline update every second\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, or 100 milliseconds\n     *\n     * Update Speed: 250ms or 500ms or 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     * Index Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Index Kline/Candlestick Streams\n     * @param {IndexKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndexKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    indexKlineCandlestickStreams(\n        requestParameters: IndexKlineCandlestickStreamsRequest\n    ): WebsocketStream<IndexKlineCandlestickStreamsResponse>;\n\n    /**\n     * Index Price Stream\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Index Price Stream\n     * @param {IndexPriceStreamRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndexPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    indexPriceStream(\n        requestParameters: IndexPriceStreamRequest\n    ): WebsocketStream<IndexPriceStreamResponse>;\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: 500ms\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: 500ms\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     *\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 Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Mark Price Kline/Candlestick Streams\n     * @param {MarkPriceKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MarkPriceKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    markPriceKlineCandlestickStreams(\n        requestParameters: MarkPriceKlineCandlestickStreamsRequest\n    ): WebsocketStream<MarkPriceKlineCandlestickStreamsResponse>;\n\n    /**\n     * Mark Price of All Symbols of a Pair\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Mark Price of All Symbols of a Pair\n     * @param {MarkPriceOfAllSymbolsOfAPairRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    markPriceOfAllSymbolsOfAPair(\n        requestParameters: MarkPriceOfAllSymbolsOfAPairRequest\n    ): WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse>;\n\n    /**\n     * Mark price update stream\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     * 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 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 indexKlineCandlestickStreams operation in WebsocketMarketStreamsApi.\n * @interface IndexKlineCandlestickStreamsRequest\n */\nexport interface IndexKlineCandlestickStreamsRequest {\n    /**\n     * The pair parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexKlineCandlestickStreams\n     */\n    readonly pair: string;\n\n    /**\n     * The interval parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexKlineCandlestickStreams\n     */\n    readonly interval: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexKlineCandlestickStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for indexPriceStream operation in WebsocketMarketStreamsApi.\n * @interface IndexPriceStreamRequest\n */\nexport interface IndexPriceStreamRequest {\n    /**\n     * The pair parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexPriceStream\n     */\n    readonly pair: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexPriceStream\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexPriceStream\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 markPriceKlineCandlestickStreams operation in WebsocketMarketStreamsApi.\n * @interface MarkPriceKlineCandlestickStreamsRequest\n */\nexport interface MarkPriceKlineCandlestickStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceKlineCandlestickStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * The interval parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceKlineCandlestickStreams\n     */\n    readonly interval: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceKlineCandlestickStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for markPriceOfAllSymbolsOfAPair operation in WebsocketMarketStreamsApi.\n * @interface MarkPriceOfAllSymbolsOfAPairRequest\n */\nexport interface MarkPriceOfAllSymbolsOfAPairRequest {\n    /**\n     * The pair parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceOfAllSymbolsOfAPair\n     */\n    readonly pair: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceOfAllSymbolsOfAPair\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPriceOfAllSymbolsOfAPair\n     */\n    readonly updateSpeed?: 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 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.\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/coin-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: Real-time\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/coin-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/coin-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/coin-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/coin-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     * Kline update every second\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/coin-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/coin-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, or 100 milliseconds\n     *\n     * Update Speed: 250ms or 500ms or 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/coin-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     * Index Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Index Kline/Candlestick Streams\n     * @param {IndexKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Index-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    public indexKlineCandlestickStreams(\n        requestParameters: IndexKlineCandlestickStreamsRequest\n    ): WebsocketStream<IndexKlineCandlestickStreamsResponse> {\n        const stream = this.localVarParamCreator.indexKlineCandlestickStreams(\n            requestParameters?.pair,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<IndexKlineCandlestickStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Index Price Stream\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Index Price Stream\n     * @param {IndexPriceStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Index-Price-Stream Binance API Documentation}\n     */\n    public indexPriceStream(\n        requestParameters: IndexPriceStreamRequest\n    ): WebsocketStream<IndexPriceStreamResponse> {\n        const stream = this.localVarParamCreator.indexPriceStream(\n            requestParameters?.pair,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<IndexPriceStreamResponse>(\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/coin-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: 500ms\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/coin-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: 500ms\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/coin-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/coin-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     *\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/coin-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 Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Mark Price Kline/Candlestick Streams\n     * @param {MarkPriceKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Mark-Price-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    public markPriceKlineCandlestickStreams(\n        requestParameters: MarkPriceKlineCandlestickStreamsRequest\n    ): WebsocketStream<MarkPriceKlineCandlestickStreamsResponse> {\n        const stream = this.localVarParamCreator.markPriceKlineCandlestickStreams(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<MarkPriceKlineCandlestickStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Mark Price of All Symbols of a Pair\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Mark Price of All Symbols of a Pair\n     * @param {MarkPriceOfAllSymbolsOfAPairRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Mark-Price-of-All-Symbols-of-a-Pair Binance API Documentation}\n     */\n    public markPriceOfAllSymbolsOfAPair(\n        requestParameters: MarkPriceOfAllSymbolsOfAPairRequest\n    ): WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse> {\n        const stream = this.localVarParamCreator.markPriceOfAllSymbolsOfAPair(\n            requestParameters?.pair,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<MarkPriceOfAllSymbolsOfAPairResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Mark price update stream\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/coin-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     * 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/coin-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 COIN Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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 COIN Futures WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Derivatives Trading COIN 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    ContinuousContractKlineCandlestickStreamsRequest,\n    ContractInfoStreamRequest,\n    DiffBookDepthStreamsRequest,\n    IndexKlineCandlestickStreamsRequest,\n    IndexPriceStreamRequest,\n    IndividualSymbolBookTickerStreamsRequest,\n    IndividualSymbolMiniTickerStreamRequest,\n    IndividualSymbolTickerStreamsRequest,\n    KlineCandlestickStreamsRequest,\n    LiquidationOrderStreamsRequest,\n    MarkPriceKlineCandlestickStreamsRequest,\n    MarkPriceOfAllSymbolsOfAPairRequest,\n    MarkPriceStreamRequest,\n    PartialBookDepthStreamsRequest,\n} from './modules/websocket-market-streams-api';\n\nimport type {\n    AggregateTradeStreamsResponse,\n    AllBookTickersStreamResponse,\n    AllMarketLiquidationOrderStreamsResponse,\n    AllMarketMiniTickersStreamResponse,\n    AllMarketTickersStreamsResponse,\n    ContinuousContractKlineCandlestickStreamsResponse,\n    ContractInfoStreamResponse,\n    DiffBookDepthStreamsResponse,\n    IndexKlineCandlestickStreamsResponse,\n    IndexPriceStreamResponse,\n    IndividualSymbolBookTickerStreamsResponse,\n    IndividualSymbolMiniTickerStreamResponse,\n    IndividualSymbolTickerStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    LiquidationOrderStreamsResponse,\n    MarkPriceKlineCandlestickStreamsResponse,\n    MarkPriceOfAllSymbolsOfAPairResponse,\n    MarkPriceStreamResponse,\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.\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/coin-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: Real-time\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/coin-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/coin-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/coin-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/coin-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     * Kline update every second\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/coin-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/coin-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, or 100 milliseconds\n     *\n     * Update Speed: 250ms or 500ms or 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/coin-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     * Index Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Index Kline/Candlestick Streams\n     * @param {IndexKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Index-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    indexKlineCandlestickStreams(\n        requestParameters: IndexKlineCandlestickStreamsRequest\n    ): WebsocketStream<IndexKlineCandlestickStreamsResponse> {\n        return this.websocketMarketStreamsApi.indexKlineCandlestickStreams(requestParameters);\n    }\n\n    /**\n     * Index Price Stream\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Index Price Stream\n     * @param {IndexPriceStreamRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexPriceStreamResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Index-Price-Stream Binance API Documentation}\n     */\n    indexPriceStream(\n        requestParameters: IndexPriceStreamRequest\n    ): WebsocketStream<IndexPriceStreamResponse> {\n        return this.websocketMarketStreamsApi.indexPriceStream(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/coin-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: 500ms\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/coin-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: 500ms\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/coin-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/coin-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     *\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/coin-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 Kline/Candlestick Streams\n     *\n     * Update Speed: 250ms\n     *\n     * @summary Mark Price Kline/Candlestick Streams\n     * @param {MarkPriceKlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceKlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Mark-Price-Kline-Candlestick-Streams Binance API Documentation}\n     */\n    markPriceKlineCandlestickStreams(\n        requestParameters: MarkPriceKlineCandlestickStreamsRequest\n    ): WebsocketStream<MarkPriceKlineCandlestickStreamsResponse> {\n        return this.websocketMarketStreamsApi.markPriceKlineCandlestickStreams(requestParameters);\n    }\n\n    /**\n     * Mark Price of All Symbols of a Pair\n     *\n     * Update Speed: 3000ms OR 1000ms\n     *\n     * @summary Mark Price of All Symbols of a Pair\n     * @param {MarkPriceOfAllSymbolsOfAPairRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams/Mark-Price-of-All-Symbols-of-a-Pair Binance API Documentation}\n     */\n    markPriceOfAllSymbolsOfAPair(\n        requestParameters: MarkPriceOfAllSymbolsOfAPairRequest\n    ): WebsocketStream<MarkPriceOfAllSymbolsOfAPairResponse> {\n        return this.websocketMarketStreamsApi.markPriceOfAllSymbolsOfAPair(requestParameters);\n    }\n\n    /**\n     * Mark price update stream\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/coin-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     * 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/coin-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    DerivativesTradingCoinFutures,\n    ConfigurationDerivativesTradingCoinFutures,\n} from './derivatives-trading-coin-futures';\nexport * as DerivativesTradingCoinFuturesRestAPI from './rest-api';\nexport * as DerivativesTradingCoinFuturesWebsocketAPI from './websocket-api';\nexport * as DerivativesTradingCoinFuturesWebsocketStreams from './websocket-streams';\n\nexport {\n    DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_COIN_FUTURES_REST_API_TESTNET_URL,\n    DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL,\n    DERIVATIVES_TRADING_COIN_FUTURES_WS_API_TESTNET_URL,\n    DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL,\n    DERIVATIVES_TRADING_COIN_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","BasisContractTypeEnum","BasisPeriodEnum","ContinuousContractKlineCandlestickDataContractTypeEnum","ContinuousContractKlineCandlestickDataIntervalEnum","IndexPriceKlineCandlestickDataIntervalEnum","KlineCandlestickDataIntervalEnum","LongShortRatioPeriodEnum","MarkPriceKlineCandlestickDataIntervalEnum","OpenInterestStatisticsContractTypeEnum","OpenInterestStatisticsPeriodEnum","PremiumIndexKlineDataIntervalEnum","TakerBuySellVolumeContractTypeEnum","TakerBuySellVolumePeriodEnum","TopTraderLongShortRatioAccountsPeriodEnum","TopTraderLongShortRatioPositionsPeriodEnum","assertParamExists","sendRequest","assertParamExists","sendRequest","ChangeMarginTypeMarginTypeEnum","ModifyIsolatedPositionMarginTypeEnum","ModifyIsolatedPositionMarginPositionSideEnum","ModifyOrderSideEnum","ModifyOrderPriceMatchEnum","NewOrderSideEnum","NewOrderTypeEnum","NewOrderPositionSideEnum","NewOrderTimeInForceEnum","NewOrderWorkingTypeEnum","NewOrderNewOrderRespTypeEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","UsersForceOrdersAutoCloseTypeEnum","sendRequest","sendRequest","sendRequest","AccountApi","ModifyOrderPriceMatchEnum","ModifyOrderSideEnum","NewOrderNewOrderRespTypeEnum","NewOrderPositionSideEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","NewOrderSideEnum","NewOrderTimeInForceEnum","NewOrderTypeEnum","NewOrderWorkingTypeEnum","TradeApi","UserDataStreamsApi","AccountApi","TradeApi","ModifyOrderSideEnum","ModifyOrderPriceMatchEnum","NewOrderSideEnum","NewOrderTypeEnum","NewOrderPositionSideEnum","NewOrderTimeInForceEnum","NewOrderWorkingTypeEnum","NewOrderNewOrderRespTypeEnum","NewOrderPriceMatchEnum","NewOrderSelfTradePreventionModeEnum","UserDataStreamsApi","AccountApi","TradeApi","UserDataStreamsApi","assertParamExists","WebsocketStreamsBase","createStreamHandler","createStreamHandler","WebsocketStreamsBase","ConfigurationRestAPI","ConfigurationWebsocketAPI","ConfigurationWebsocketStreams","DERIVATIVES_TRADING_COIN_FUTURES_REST_API_PROD_URL","DERIVATIVES_TRADING_COIN_FUTURES_WS_API_PROD_URL","DERIVATIVES_TRADING_COIN_FUTURES_WS_STREAMS_PROD_URL"]}