@binance/margin-trading 11.0.0 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","MARGIN_TRADING_REST_API_PROD_URL","MARGIN_TRADING_WS_STREAMS_PROD_URL"],"sources":["../package.json","../src/rest-api/modules/account-api.ts","../src/rest-api/modules/borrow-repay-api.ts","../src/rest-api/modules/market-data-api.ts","../src/rest-api/modules/risk-data-stream-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/modules/transfer-api.ts","../src/rest-api/rest-api.ts","../src/rest-api/index.ts","../src/websocket-streams/websocket-streams-connection.ts","../src/websocket-streams/websocket-streams.ts","../src/websocket-streams/index.ts","../src/margin-trading.ts"],"sourcesContent":["{\n \"name\": \"@binance/margin-trading\",\n \"description\": \"Official Binance Margin Trading Connector - A lightweight library that provides a convenient interface to Binance's Margin Trading REST API.\",\n \"version\": \"11.0.0\",\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 && tsdown\",\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 \"Margin Trading\",\n \"Connector\",\n \"REST\"\n ],\n \"author\": \"Binance\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/binance/binance-connector-js.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/binance/binance-connector-js/issues\"\n },\n \"homepage\": \"https://github.com/binance/binance-connector-js#readme\",\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 \"json-with-bigint\": \"^3.4.4\",\n \"prettier\": \"^3.3.3\",\n \"ts-jest\": \"^29.1.1\",\n \"ts-node\": \"^10.9.1\",\n \"tsdown\": \"^0.16.5\",\n \"typescript\": \"^5.7.2\",\n \"typescript-eslint\": \"^8.24.0\"\n },\n \"dependencies\": {\n \"@binance/common\": \"2.3.1\",\n \"axios\": \"^1.7.4\"\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 AdjustCrossMarginMaxLeverageResponse,\n DisableIsolatedMarginAccountResponse,\n EnableIsolatedMarginAccountResponse,\n GetBnbBurnStatusResponse,\n GetSummaryOfMarginAccountResponse,\n QueryCrossIsolatedMarginCapitalFlowResponse,\n QueryCrossMarginAccountDetailsResponse,\n QueryCrossMarginFeeDataResponse,\n QueryEnabledIsolatedMarginAccountLimitResponse,\n QueryIsolatedMarginAccountInfoResponse,\n QueryIsolatedMarginFeeDataResponse,\n} from '../types';\n\n/**\n * AccountApi - axios parameter creator\n */\nconst AccountApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {number | bigint} maxLeverage Can only adjust 3 , 5 or 10,Example: maxLeverage = 5 or 3 for Cross Margin Classic; maxLeverage=10 for Cross Margin Pro 10x leverage or 20x if compliance allows.\n *\n * @throws {RequiredError}\n */\n adjustCrossMarginMaxLeverage: async (\n maxLeverage: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'maxLeverage' is not null or undefined\n assertParamExists('adjustCrossMarginMaxLeverage', 'maxLeverage', maxLeverage);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (maxLeverage !== undefined && maxLeverage !== null) {\n localVarQueryParameter['maxLeverage'] = maxLeverage;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/max-leverage',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n disableIsolatedMarginAccount: async (\n symbol: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('disableIsolatedMarginAccount', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/account',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n enableIsolatedMarginAccount: async (\n symbol: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('enableIsolatedMarginAccount', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/account',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getBnbBurnStatus: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/bnbBurn',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSummaryOfMarginAccount: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/tradeCoeff',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {string} [asset]\n * @param {string} [symbol] isolated margin pair\n * @param {string} [type] Transfer Type: ROLL_IN, ROLL_OUT\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossIsolatedMarginCapitalFlow: async (\n asset?: string,\n symbol?: string,\n type?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n fromId?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/capital-flow',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossMarginAccountDetails: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/account',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {string} [coin]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossMarginFeeData: async (\n vipLevel?: number | bigint,\n coin?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (coin !== undefined && coin !== null) {\n localVarQueryParameter['coin'] = coin;\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: '/sapi/v1/margin/crossMarginData',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryEnabledIsolatedMarginAccountLimit: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/isolated/accountLimit',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {string} [symbols] Max 5 symbols can be sent; separated by \",\". e.g. \"BTCUSDT,BNBUSDT,ADAUSDT\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginAccountInfo: async (\n symbols?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbols !== undefined && symbols !== null) {\n localVarQueryParameter['symbols'] = symbols;\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: '/sapi/v1/margin/isolated/account',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginFeeData: async (\n vipLevel?: number | bigint,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolatedMarginData',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * AccountApi - interface\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>;\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>;\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>;\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n getBnbBurnStatus(\n requestParameters?: GetBnbBurnStatusRequest\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>>;\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n getSummaryOfMarginAccount(\n requestParameters?: GetSummaryOfMarginAccountRequest\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>;\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossIsolatedMarginCapitalFlow(\n requestParameters?: QueryCrossIsolatedMarginCapitalFlowRequest\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>;\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossMarginAccountDetails(\n requestParameters?: QueryCrossMarginAccountDetailsRequest\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>;\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossMarginFeeData(\n requestParameters?: QueryCrossMarginFeeDataRequest\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>;\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryEnabledIsolatedMarginAccountLimit(\n requestParameters?: QueryEnabledIsolatedMarginAccountLimitRequest\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>;\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryIsolatedMarginAccountInfo(\n requestParameters?: QueryIsolatedMarginAccountInfoRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>;\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryIsolatedMarginFeeData(\n requestParameters?: QueryIsolatedMarginFeeDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>;\n}\n\n/**\n * Request parameters for adjustCrossMarginMaxLeverage operation in AccountApi.\n * @interface AdjustCrossMarginMaxLeverageRequest\n */\nexport interface AdjustCrossMarginMaxLeverageRequest {\n /**\n * Can only adjust 3 , 5 or 10,Example: maxLeverage = 5 or 3 for Cross Margin Classic; maxLeverage=10 for Cross Margin Pro 10x leverage or 20x if compliance allows.\n * @type {number | bigint}\n * @memberof AccountApiAdjustCrossMarginMaxLeverage\n */\n readonly maxLeverage: number | bigint;\n}\n\n/**\n * Request parameters for disableIsolatedMarginAccount operation in AccountApi.\n * @interface DisableIsolatedMarginAccountRequest\n */\nexport interface DisableIsolatedMarginAccountRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiDisableIsolatedMarginAccount\n */\n readonly symbol: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiDisableIsolatedMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for enableIsolatedMarginAccount operation in AccountApi.\n * @interface EnableIsolatedMarginAccountRequest\n */\nexport interface EnableIsolatedMarginAccountRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiEnableIsolatedMarginAccount\n */\n readonly symbol: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiEnableIsolatedMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getBnbBurnStatus operation in AccountApi.\n * @interface GetBnbBurnStatusRequest\n */\nexport interface GetBnbBurnStatusRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiGetBnbBurnStatus\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSummaryOfMarginAccount operation in AccountApi.\n * @interface GetSummaryOfMarginAccountRequest\n */\nexport interface GetSummaryOfMarginAccountRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiGetSummaryOfMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossIsolatedMarginCapitalFlow operation in AccountApi.\n * @interface QueryCrossIsolatedMarginCapitalFlowRequest\n */\nexport interface QueryCrossIsolatedMarginCapitalFlowRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly asset?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly symbol?: string;\n\n /**\n * Transfer Type: ROLL_IN, ROLL_OUT\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly type?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly endTime?: number | bigint;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly fromId?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossMarginAccountDetails operation in AccountApi.\n * @interface QueryCrossMarginAccountDetailsRequest\n */\nexport interface QueryCrossMarginAccountDetailsRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginAccountDetails\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossMarginFeeData operation in AccountApi.\n * @interface QueryCrossMarginFeeDataRequest\n */\nexport interface QueryCrossMarginFeeDataRequest {\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly coin?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryEnabledIsolatedMarginAccountLimit operation in AccountApi.\n * @interface QueryEnabledIsolatedMarginAccountLimitRequest\n */\nexport interface QueryEnabledIsolatedMarginAccountLimitRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryEnabledIsolatedMarginAccountLimit\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginAccountInfo operation in AccountApi.\n * @interface QueryIsolatedMarginAccountInfoRequest\n */\nexport interface QueryIsolatedMarginAccountInfoRequest {\n /**\n * Max 5 symbols can be sent; separated by \",\". e.g. \"BTCUSDT,BNBUSDT,ADAUSDT\"\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly symbols?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginFeeData operation in AccountApi.\n * @interface QueryIsolatedMarginFeeDataRequest\n */\nexport interface QueryIsolatedMarginFeeDataRequest {\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly recvWindow?: number | bigint;\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 * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Adjust-cross-margin-max-leverage Binance API Documentation}\n */\n public async adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.adjustCrossMarginMaxLeverage(\n requestParameters?.maxLeverage\n );\n return sendRequest<AdjustCrossMarginMaxLeverageResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Disable-Isolated-Margin-Account Binance API Documentation}\n */\n public async disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.disableIsolatedMarginAccount(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<DisableIsolatedMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Enable-Isolated-Margin-Account Binance API Documentation}\n */\n public async enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.enableIsolatedMarginAccount(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<EnableIsolatedMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-BNB-Burn-Status Binance API Documentation}\n */\n public async getBnbBurnStatus(\n requestParameters: GetBnbBurnStatusRequest = {}\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getBnbBurnStatus(\n requestParameters?.recvWindow\n );\n return sendRequest<GetBnbBurnStatusResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-Summary-of-Margin-account Binance API Documentation}\n */\n public async getSummaryOfMarginAccount(\n requestParameters: GetSummaryOfMarginAccountRequest = {}\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getSummaryOfMarginAccount(\n requestParameters?.recvWindow\n );\n return sendRequest<GetSummaryOfMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Isolated-Margin-Capital-Flow Binance API Documentation}\n */\n public async queryCrossIsolatedMarginCapitalFlow(\n requestParameters: QueryCrossIsolatedMarginCapitalFlowRequest = {}\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCrossIsolatedMarginCapitalFlow(\n requestParameters?.asset,\n requestParameters?.symbol,\n requestParameters?.type,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.fromId,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossIsolatedMarginCapitalFlowResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Account-Details Binance API Documentation}\n */\n public async queryCrossMarginAccountDetails(\n requestParameters: QueryCrossMarginAccountDetailsRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCrossMarginAccountDetails(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossMarginAccountDetailsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Fee-Data Binance API Documentation}\n */\n public async queryCrossMarginFeeData(\n requestParameters: QueryCrossMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryCrossMarginFeeData(\n requestParameters?.vipLevel,\n requestParameters?.coin,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossMarginFeeDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Enabled-Isolated-Margin-Account-Limit Binance API Documentation}\n */\n public async queryEnabledIsolatedMarginAccountLimit(\n requestParameters: QueryEnabledIsolatedMarginAccountLimitRequest = {}\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryEnabledIsolatedMarginAccountLimit(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryEnabledIsolatedMarginAccountLimitResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Account-Info Binance API Documentation}\n */\n public async queryIsolatedMarginAccountInfo(\n requestParameters: QueryIsolatedMarginAccountInfoRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryIsolatedMarginAccountInfo(\n requestParameters?.symbols,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginAccountInfoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Fee-Data Binance API Documentation}\n */\n public async queryIsolatedMarginFeeData(\n requestParameters: QueryIsolatedMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryIsolatedMarginFeeData(\n requestParameters?.vipLevel,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginFeeDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 GetFutureHourlyInterestRateResponse,\n GetInterestHistoryResponse,\n MarginAccountBorrowRepayResponse,\n QueryBorrowRepayRecordsInMarginAccountResponse,\n QueryMarginInterestRateHistoryResponse,\n QueryMaxBorrowResponse,\n} from '../types';\n\n/**\n * BorrowRepayApi - axios parameter creator\n */\nconst BorrowRepayApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {string} assets List of assets, separated by commas, up to 20\n * @param {boolean} isIsolated for isolated margin or not, \"TRUE\", \"FALSE\"\n *\n * @throws {RequiredError}\n */\n getFutureHourlyInterestRate: async (\n assets: string,\n isIsolated: boolean\n ): Promise<RequestArgs> => {\n // verify required parameter 'assets' is not null or undefined\n assertParamExists('getFutureHourlyInterestRate', 'assets', assets);\n // verify required parameter 'isIsolated' is not null or undefined\n assertParamExists('getFutureHourlyInterestRate', 'isIsolated', isIsolated);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (assets !== undefined && assets !== null) {\n localVarQueryParameter['assets'] = assets;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/next-hourly-interest-rate',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getInterestHistory: async (\n asset?: string,\n isolatedSymbol?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\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: '/sapi/v1/margin/interestHistory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {string} asset\n * @param {string} isIsolated `TRUE` for Isolated Margin, `FALSE` for Cross Margin, Default `FALSE`\n * @param {string} symbol\n * @param {string} amount\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountBorrowRepay: async (\n asset: string,\n isIsolated: string,\n symbol: string,\n amount: string,\n type: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'asset', asset);\n // verify required parameter 'isIsolated' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'isIsolated', isIsolated);\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'symbol', symbol);\n // verify required parameter 'amount' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'amount', amount);\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (amount !== undefined && amount !== null) {\n localVarQueryParameter['amount'] = amount;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\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: '/sapi/v1/margin/borrow-repay',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [asset]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [txId] `tranId` in `POST /sapi/v1/margin/loan`\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryBorrowRepayRecordsInMarginAccount: async (\n type: string,\n asset?: string,\n isolatedSymbol?: string,\n txId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('queryBorrowRepayRecordsInMarginAccount', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (txId !== undefined && txId !== null) {\n localVarQueryParameter['txId'] = txId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\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: '/sapi/v1/margin/borrow-repay',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {string} asset\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginInterestRateHistory: async (\n asset: string,\n vipLevel?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMarginInterestRateHistory', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\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: '/sapi/v1/margin/interestRateHistory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMaxBorrow: async (\n asset: string,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMaxBorrow', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/maxBorrowable',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * BorrowRepayApi - interface\n * @interface BorrowRepayApi\n */\nexport interface BorrowRepayApiInterface {\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>;\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n getInterestHistory(\n requestParameters?: GetInterestHistoryRequest\n ): Promise<RestApiResponse<GetInterestHistoryResponse>>;\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>;\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>;\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>;\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>>;\n}\n\n/**\n * Request parameters for getFutureHourlyInterestRate operation in BorrowRepayApi.\n * @interface GetFutureHourlyInterestRateRequest\n */\nexport interface GetFutureHourlyInterestRateRequest {\n /**\n * List of assets, separated by commas, up to 20\n * @type {string}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly assets: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\"\n * @type {boolean}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly isIsolated: boolean;\n}\n\n/**\n * Request parameters for getInterestHistory operation in BorrowRepayApi.\n * @interface GetInterestHistoryRequest\n */\nexport interface GetInterestHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly asset?: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountBorrowRepay operation in BorrowRepayApi.\n * @interface MarginAccountBorrowRepayRequest\n */\nexport interface MarginAccountBorrowRepayRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly asset: string;\n\n /**\n * `TRUE` for Isolated Margin, `FALSE` for Cross Margin, Default `FALSE`\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly isIsolated: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly symbol: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly amount: string;\n\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly type: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryBorrowRepayRecordsInMarginAccount operation in BorrowRepayApi.\n * @interface QueryBorrowRepayRecordsInMarginAccountRequest\n */\nexport interface QueryBorrowRepayRecordsInMarginAccountRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly type: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly asset?: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly isolatedSymbol?: string;\n\n /**\n * `tranId` in `POST /sapi/v1/margin/loan`\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly txId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginInterestRateHistory operation in BorrowRepayApi.\n * @interface QueryMarginInterestRateHistoryRequest\n */\nexport interface QueryMarginInterestRateHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly asset: string;\n\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly vipLevel?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMaxBorrow operation in BorrowRepayApi.\n * @interface QueryMaxBorrowRequest\n */\nexport interface QueryMaxBorrowRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly asset: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * BorrowRepayApi - object-oriented interface\n * @class BorrowRepayApi\n */\nexport class BorrowRepayApi implements BorrowRepayApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = BorrowRepayApiAxiosParamCreator(configuration);\n }\n\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-a-future-hourly-interest-rate Binance API Documentation}\n */\n public async getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getFutureHourlyInterestRate(\n requestParameters?.assets,\n requestParameters?.isIsolated\n );\n return sendRequest<GetFutureHourlyInterestRateResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetInterestHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-Interest-History Binance API Documentation}\n */\n public async getInterestHistory(\n requestParameters: GetInterestHistoryRequest = {}\n ): Promise<RestApiResponse<GetInterestHistoryResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getInterestHistory(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<GetInterestHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Margin-account-borrow-repay Binance API Documentation}\n */\n public async marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountBorrowRepay(\n requestParameters?.asset,\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.amount,\n requestParameters?.type,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountBorrowRepayResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Borrow-Repay Binance API Documentation}\n */\n public async queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryBorrowRepayRecordsInMarginAccount(\n requestParameters?.type,\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.txId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryBorrowRepayRecordsInMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Margin-Interest-Rate-History Binance API Documentation}\n */\n public async queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginInterestRateHistory(\n requestParameters?.asset,\n requestParameters?.vipLevel,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginInterestRateHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMaxBorrowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Max-Borrow Binance API Documentation}\n */\n public async queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMaxBorrow(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMaxBorrowResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 CrossMarginCollateralRatioResponse,\n GetAllCrossMarginPairsResponse,\n GetAllIsolatedMarginSymbolResponse,\n GetAllMarginAssetsResponse,\n GetDelistScheduleResponse,\n GetLimitPricePairsResponse,\n GetListScheduleResponse,\n GetMarginAssetRiskBasedLiquidationRatioResponse,\n QueryIsolatedMarginTierDataResponse,\n QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse,\n QueryMarginAvailableInventoryResponse,\n QueryMarginPriceindexResponse,\n} from '../types';\n\n/**\n * MarketDataApi - axios parameter creator\n */\nconst MarketDataApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n crossMarginCollateralRatio: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/crossMarginCollateralRatio',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {string} [symbol] isolated margin pair\n *\n * @throws {RequiredError}\n */\n getAllCrossMarginPairs: async (symbol?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/allPairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getAllIsolatedMarginSymbol: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/allPairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {string} [asset]\n *\n * @throws {RequiredError}\n */\n getAllMarginAssets: async (asset?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/allAssets',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getDelistSchedule: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/delist-schedule',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n getLimitPricePairs: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/limit-price-pairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getListSchedule: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/list-schedule',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n getMarginAssetRiskBasedLiquidationRatio: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/risk-based-liquidation-ratio',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {string} symbol\n * @param {number | bigint} [tier] All margin tier data will be returned if tier is omitted\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginTierData: async (\n symbol: string,\n tier?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryIsolatedMarginTierData', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (tier !== undefined && tier !== null) {\n localVarQueryParameter['tier'] = tier;\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: '/sapi/v1/margin/isolatedMarginTier',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/leverageBracket',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {string} type `MARGIN`,`ISOLATED`\n *\n * @throws {RequiredError}\n */\n queryMarginAvailableInventory: async (type: string): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('queryMarginAvailableInventory', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/available-inventory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {string} symbol\n *\n * @throws {RequiredError}\n */\n queryMarginPriceindex: async (symbol: string): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginPriceindex', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/priceIndex',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * MarketDataApi - interface\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n crossMarginCollateralRatio(): Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>;\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllCrossMarginPairs(\n requestParameters?: GetAllCrossMarginPairsRequest\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>;\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllIsolatedMarginSymbol(\n requestParameters?: GetAllIsolatedMarginSymbolRequest\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>;\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllMarginAssets(\n requestParameters?: GetAllMarginAssetsRequest\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>>;\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getDelistSchedule(\n requestParameters?: GetDelistScheduleRequest\n ): Promise<RestApiResponse<GetDelistScheduleResponse>>;\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>>;\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getListSchedule(\n requestParameters?: GetListScheduleRequest\n ): Promise<RestApiResponse<GetListScheduleResponse>>;\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n >;\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>;\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n >;\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>;\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>>;\n}\n\n/**\n * Request parameters for getAllCrossMarginPairs operation in MarketDataApi.\n * @interface GetAllCrossMarginPairsRequest\n */\nexport interface GetAllCrossMarginPairsRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof MarketDataApiGetAllCrossMarginPairs\n */\n readonly symbol?: string;\n}\n\n/**\n * Request parameters for getAllIsolatedMarginSymbol operation in MarketDataApi.\n * @interface GetAllIsolatedMarginSymbolRequest\n */\nexport interface GetAllIsolatedMarginSymbolRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getAllMarginAssets operation in MarketDataApi.\n * @interface GetAllMarginAssetsRequest\n */\nexport interface GetAllMarginAssetsRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiGetAllMarginAssets\n */\n readonly asset?: string;\n}\n\n/**\n * Request parameters for getDelistSchedule operation in MarketDataApi.\n * @interface GetDelistScheduleRequest\n */\nexport interface GetDelistScheduleRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetDelistSchedule\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getListSchedule operation in MarketDataApi.\n * @interface GetListScheduleRequest\n */\nexport interface GetListScheduleRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetListSchedule\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginTierData operation in MarketDataApi.\n * @interface QueryIsolatedMarginTierDataRequest\n */\nexport interface QueryIsolatedMarginTierDataRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly symbol: string;\n\n /**\n * All margin tier data will be returned if tier is omitted\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly tier?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAvailableInventory operation in MarketDataApi.\n * @interface QueryMarginAvailableInventoryRequest\n */\nexport interface QueryMarginAvailableInventoryRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof MarketDataApiQueryMarginAvailableInventory\n */\n readonly type: string;\n}\n\n/**\n * Request parameters for queryMarginPriceindex operation in MarketDataApi.\n * @interface QueryMarginPriceindexRequest\n */\nexport interface QueryMarginPriceindexRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiQueryMarginPriceindex\n */\n readonly symbol: string;\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 * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n * @returns {Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Cross-margin-collateral-ratio Binance API Documentation}\n */\n public async crossMarginCollateralRatio(): Promise<\n RestApiResponse<CrossMarginCollateralRatioResponse>\n > {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.crossMarginCollateralRatio();\n return sendRequest<CrossMarginCollateralRatioResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Cross-Margin-Pairs Binance API Documentation}\n */\n public async getAllCrossMarginPairs(\n requestParameters: GetAllCrossMarginPairsRequest = {}\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllCrossMarginPairs(\n requestParameters?.symbol\n );\n return sendRequest<GetAllCrossMarginPairsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Isolated-Margin-Symbol Binance API Documentation}\n */\n public async getAllIsolatedMarginSymbol(\n requestParameters: GetAllIsolatedMarginSymbolRequest = {}\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllIsolatedMarginSymbol(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<GetAllIsolatedMarginSymbolResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllMarginAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Margin-Assets Binance API Documentation}\n */\n public async getAllMarginAssets(\n requestParameters: GetAllMarginAssetsRequest = {}\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllMarginAssets(\n requestParameters?.asset\n );\n return sendRequest<GetAllMarginAssetsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetDelistScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Delist-Schedule Binance API Documentation}\n */\n public async getDelistSchedule(\n requestParameters: GetDelistScheduleRequest = {}\n ): Promise<RestApiResponse<GetDelistScheduleResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getDelistSchedule(\n requestParameters?.recvWindow\n );\n return sendRequest<GetDelistScheduleResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n * @returns {Promise<RestApiResponse<GetLimitPricePairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Limit-Price-Pairs Binance API Documentation}\n */\n public async getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getLimitPricePairs();\n return sendRequest<GetLimitPricePairsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetListScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-list-Schedule Binance API Documentation}\n */\n public async getListSchedule(\n requestParameters: GetListScheduleRequest = {}\n ): Promise<RestApiResponse<GetListScheduleResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getListSchedule(\n requestParameters?.recvWindow\n );\n return sendRequest<GetListScheduleResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n * @returns {Promise<RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Asset-Risk-Based-Liquidation-Ratio Binance API Documentation}\n */\n public async getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n > {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getMarginAssetRiskBasedLiquidationRatio();\n return sendRequest<GetMarginAssetRiskBasedLiquidationRatioResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Isolated-Margin-Tier-Data Binance API Documentation}\n */\n public async queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryIsolatedMarginTierData(\n requestParameters?.symbol,\n requestParameters?.tier,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginTierDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n * @returns {Promise<RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Liability-Coin-Leverage-Bracket-in-Cross-Margin-Pro-Mode Binance API Documentation}\n */\n public async queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n > {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryLiabilityCoinLeverageBracketInCrossMarginProMode();\n return sendRequest<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-margin-avaliable-inventory Binance API Documentation}\n */\n public async queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginAvailableInventory(\n requestParameters?.type\n );\n return sendRequest<QueryMarginAvailableInventoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginPriceindexResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Margin-PriceIndex Binance API Documentation}\n */\n public async queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginPriceindex(\n requestParameters?.symbol\n );\n return sendRequest<QueryMarginPriceindexResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 { StartUserDataStreamResponse } from '../types';\n\n/**\n * RiskDataStreamApi - axios parameter creator\n */\nconst RiskDataStreamApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\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 const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {string} listenKey\n *\n * @throws {RequiredError}\n */\n keepaliveUserDataStream: async (listenKey: string): Promise<RequestArgs> => {\n // verify required parameter 'listenKey' is not null or undefined\n assertParamExists('keepaliveUserDataStream', 'listenKey', listenKey);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (listenKey !== undefined && listenKey !== null) {\n localVarQueryParameter['listenKey'] = listenKey;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'PUT',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Start a new user data stream.\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 const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * RiskDataStreamApi - interface\n * @interface RiskDataStreamApi\n */\nexport interface RiskDataStreamApiInterface {\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApiInterface\n */\n closeUserDataStream(): Promise<RestApiResponse<void>>;\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApiInterface\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Start a new user data stream.\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 RiskDataStreamApiInterface\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * Request parameters for keepaliveUserDataStream operation in RiskDataStreamApi.\n * @interface KeepaliveUserDataStreamRequest\n */\nexport interface KeepaliveUserDataStreamRequest {\n /**\n *\n * @type {string}\n * @memberof RiskDataStreamApiKeepaliveUserDataStream\n */\n readonly listenKey: string;\n}\n\n/**\n * RiskDataStreamApi - object-oriented interface\n * @class RiskDataStreamApi\n */\nexport class RiskDataStreamApi implements RiskDataStreamApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = RiskDataStreamApiAxiosParamCreator(configuration);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\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 RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/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.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<void>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/Keepalive-User-Data-Stream Binance API Documentation}\n */\n public async keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.keepaliveUserDataStream(\n requestParameters?.listenKey\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Start a new user data stream.\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 RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/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.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryMarginAccountsAllOcoResponse,\n QueryMarginAccountsAllOrdersResponse,\n QueryMarginAccountsOcoResponse,\n QueryMarginAccountsOpenOcoResponse,\n QueryMarginAccountsOpenOrdersResponse,\n QueryMarginAccountsOrderResponse,\n QueryMarginAccountsTradeListResponse,\n QuerySpecialKeyListResponse,\n QuerySpecialKeyResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {string} apiName\n * @param {string} [symbol] isolated margin pair\n * @param {string} [ip] Can be added in batches, separated by commas. Max 30 for an API key\n * @param {string} [publicKey] 1. If publicKey is inputted it will create an RSA or Ed25519 key. <br />2. Need to be encoded to URL-encoded format\n * @param {string} [permissionMode] This parameter is only for the Ed25519 API key, and does not effact for other encryption methods. The value can be TRADE (TRADE for all permissions) or READ (READ for USER_DATA, FIX_API_READ_ONLY). The default value is TRADE.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n createSpecialKey: async (\n apiName: string,\n symbol?: string,\n ip?: string,\n publicKey?: string,\n permissionMode?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'apiName' is not null or undefined\n assertParamExists('createSpecialKey', 'apiName', apiName);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (apiName !== undefined && apiName !== null) {\n localVarQueryParameter['apiName'] = apiName;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (ip !== undefined && ip !== null) {\n localVarQueryParameter['ip'] = ip;\n }\n if (publicKey !== undefined && publicKey !== null) {\n localVarQueryParameter['publicKey'] = publicKey;\n }\n if (permissionMode !== undefined && permissionMode !== null) {\n localVarQueryParameter['permissionMode'] = permissionMode;\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: '/sapi/v1/margin/apiKey',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {string} [apiName]\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n deleteSpecialKey: async (\n apiName?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (apiName !== undefined && apiName !== null) {\n localVarQueryParameter['apiName'] = apiName;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/apiKey',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {string} ip Can be added in batches, separated by commas. Max 30 for an API key\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n editIpForSpecialKey: async (\n ip: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'ip' is not null or undefined\n assertParamExists('editIpForSpecialKey', 'ip', ip);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (ip !== undefined && ip !== null) {\n localVarQueryParameter['ip'] = ip;\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: '/sapi/v1/margin/apiKey/ip',\n method: 'PUT',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getForceLiquidationRecord: async (\n startTime?: number | bigint,\n endTime?: number | bigint,\n isolatedSymbol?: string,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\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: '/sapi/v1/margin/forceLiquidationRec',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSmallLiabilityExchangeCoinList: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/exchange-small-liability',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {number | bigint} current Currently querying page. Start from 1. Default:1\n * @param {number | bigint} size Default:10, Max:100\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSmallLiabilityExchangeHistory: async (\n current: number | bigint,\n size: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'current' is not null or undefined\n assertParamExists('getSmallLiabilityExchangeHistory', 'current', current);\n // verify required parameter 'size' is not null or undefined\n assertParamExists('getSmallLiabilityExchangeHistory', 'size', size);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\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: '/sapi/v1/margin/exchange-small-liability-history',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelAllOpenOrdersOnASymbol: async (\n symbol: string,\n isIsolated?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelAllOpenOrdersOnASymbol', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\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: '/sapi/v1/margin/openOrders',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [orderListId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOco: async (\n symbol: string,\n isIsolated?: string,\n orderListId?: number | bigint,\n listClientOrderId?: string,\n newClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelOco', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderListId !== undefined && orderListId !== null) {\n localVarQueryParameter['orderListId'] = orderListId;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\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: '/sapi/v1/margin/orderList',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOrder: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n origClientOrderId?: string,\n newClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelOrder', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\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: '/sapi/v1/margin/order',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOcoSideEnum} side\n * @param {number} quantity\n * @param {number} price\n * @param {number} stopPrice\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [limitClientOrderId] A unique Id for the limit order\n * @param {number} [limitIcebergQty]\n * @param {string} [stopClientOrderId] A unique Id for the stop loss/stop loss limit leg\n * @param {number} [stopLimitPrice] If provided, `stopLimitTimeInForce` is required.\n * @param {number} [stopIcebergQty]\n * @param {string} [stopLimitTimeInForce] Valid values are `GTC`/`FOK`/`IOC`\n * @param {MarginAccountNewOcoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountNewOco: async (\n symbol: string,\n side: MarginAccountNewOcoSideEnum,\n quantity: number,\n price: number,\n stopPrice: number,\n isIsolated?: string,\n listClientOrderId?: string,\n limitClientOrderId?: string,\n limitIcebergQty?: number,\n stopClientOrderId?: string,\n stopLimitPrice?: number,\n stopIcebergQty?: number,\n stopLimitTimeInForce?: string,\n newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum,\n sideEffectType?: string,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOco', 'symbol', symbol);\n // verify required parameter 'side' is not null or undefined\n assertParamExists('marginAccountNewOco', 'side', side);\n // verify required parameter 'quantity' is not null or undefined\n assertParamExists('marginAccountNewOco', 'quantity', quantity);\n // verify required parameter 'price' is not null or undefined\n assertParamExists('marginAccountNewOco', 'price', price);\n // verify required parameter 'stopPrice' is not null or undefined\n assertParamExists('marginAccountNewOco', 'stopPrice', stopPrice);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (side !== undefined && side !== null) {\n localVarQueryParameter['side'] = side;\n }\n if (quantity !== undefined && quantity !== null) {\n localVarQueryParameter['quantity'] = quantity;\n }\n if (limitClientOrderId !== undefined && limitClientOrderId !== null) {\n localVarQueryParameter['limitClientOrderId'] = limitClientOrderId;\n }\n if (price !== undefined && price !== null) {\n localVarQueryParameter['price'] = price;\n }\n if (limitIcebergQty !== undefined && limitIcebergQty !== null) {\n localVarQueryParameter['limitIcebergQty'] = limitIcebergQty;\n }\n if (stopClientOrderId !== undefined && stopClientOrderId !== null) {\n localVarQueryParameter['stopClientOrderId'] = stopClientOrderId;\n }\n if (stopPrice !== undefined && stopPrice !== null) {\n localVarQueryParameter['stopPrice'] = stopPrice;\n }\n if (stopLimitPrice !== undefined && stopLimitPrice !== null) {\n localVarQueryParameter['stopLimitPrice'] = stopLimitPrice;\n }\n if (stopIcebergQty !== undefined && stopIcebergQty !== null) {\n localVarQueryParameter['stopIcebergQty'] = stopIcebergQty;\n }\n if (stopLimitTimeInForce !== undefined && stopLimitTimeInForce !== null) {\n localVarQueryParameter['stopLimitTimeInForce'] = stopLimitTimeInForce;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\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: '/sapi/v1/margin/order/oco',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOrderSideEnum} side\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number} [quantity]\n * @param {number} [quoteOrderQty]\n * @param {number} [price]\n * @param {number} [stopPrice] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @param {MarginAccountNewOrderNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {MarginAccountNewOrderTimeInForceEnum} [timeInForce] GTC,IOC,FOK\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountNewOrder: async (\n symbol: string,\n side: MarginAccountNewOrderSideEnum,\n type: string,\n isIsolated?: string,\n quantity?: number,\n quoteOrderQty?: number,\n price?: number,\n stopPrice?: number,\n newClientOrderId?: string,\n icebergQty?: number,\n newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum,\n sideEffectType?: string,\n timeInForce?: MarginAccountNewOrderTimeInForceEnum,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'symbol', symbol);\n // verify required parameter 'side' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'side', side);\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (side !== undefined && side !== null) {\n localVarQueryParameter['side'] = side;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (quantity !== undefined && quantity !== null) {\n localVarQueryParameter['quantity'] = quantity;\n }\n if (quoteOrderQty !== undefined && quoteOrderQty !== null) {\n localVarQueryParameter['quoteOrderQty'] = quoteOrderQty;\n }\n if (price !== undefined && price !== null) {\n localVarQueryParameter['price'] = price;\n }\n if (stopPrice !== undefined && stopPrice !== null) {\n localVarQueryParameter['stopPrice'] = stopPrice;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n }\n if (icebergQty !== undefined && icebergQty !== null) {\n localVarQueryParameter['icebergQty'] = icebergQty;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (timeInForce !== undefined && timeInForce !== null) {\n localVarQueryParameter['timeInForce'] = timeInForce;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\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: '/sapi/v1/margin/order',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {string} symbol\n * @param {string} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n * @param {string} workingSide BUY, SELL\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {number} workingIcebergQty This can only be used if `workingTimeInForce` is `GTC`.\n * @param {string} pendingType Supported values: [Order Types](https://developers.binance.com/docs/binance-spot-api-docs/enums#order-types-ordertypes-type) Note that `MARKET` orders using `quoteOrderQty` are not supported.\n * @param {string} pendingSide BUY, SELL\n * @param {number} pendingQuantity\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {MarginAccountNewOtoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {string} [workingTimeInForce] GTC,IOC,FOK\n * @param {string} [pendingClientOrderId] Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n * @param {number} [pendingPrice]\n * @param {number} [pendingStopPrice]\n * @param {number} [pendingTrailingDelta]\n * @param {number} [pendingIcebergQty] This can only be used if `pendingTimeInForce` is `GTC`.\n * @param {string} [pendingTimeInForce] GTC,IOC,FOK\n *\n * @throws {RequiredError}\n */\n marginAccountNewOto: async (\n symbol: string,\n workingType: string,\n workingSide: string,\n workingPrice: number,\n workingQuantity: number,\n workingIcebergQty: number,\n pendingType: string,\n pendingSide: string,\n pendingQuantity: number,\n isIsolated?: string,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum,\n sideEffectType?: string,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n workingClientOrderId?: string,\n workingTimeInForce?: string,\n pendingClientOrderId?: string,\n pendingPrice?: number,\n pendingStopPrice?: number,\n pendingTrailingDelta?: number,\n pendingIcebergQty?: number,\n pendingTimeInForce?: string\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOto', 'symbol', symbol);\n // verify required parameter 'workingType' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingType', workingType);\n // verify required parameter 'workingSide' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingSide', workingSide);\n // verify required parameter 'workingPrice' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingPrice', workingPrice);\n // verify required parameter 'workingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingQuantity', workingQuantity);\n // verify required parameter 'workingIcebergQty' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingIcebergQty', workingIcebergQty);\n // verify required parameter 'pendingType' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingType', pendingType);\n // verify required parameter 'pendingSide' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingSide', pendingSide);\n // verify required parameter 'pendingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingQuantity', pendingQuantity);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\n }\n if (workingType !== undefined && workingType !== null) {\n localVarQueryParameter['workingType'] = workingType;\n }\n if (workingSide !== undefined && workingSide !== null) {\n localVarQueryParameter['workingSide'] = workingSide;\n }\n if (workingClientOrderId !== undefined && workingClientOrderId !== null) {\n localVarQueryParameter['workingClientOrderId'] = workingClientOrderId;\n }\n if (workingPrice !== undefined && workingPrice !== null) {\n localVarQueryParameter['workingPrice'] = workingPrice;\n }\n if (workingQuantity !== undefined && workingQuantity !== null) {\n localVarQueryParameter['workingQuantity'] = workingQuantity;\n }\n if (workingIcebergQty !== undefined && workingIcebergQty !== null) {\n localVarQueryParameter['workingIcebergQty'] = workingIcebergQty;\n }\n if (workingTimeInForce !== undefined && workingTimeInForce !== null) {\n localVarQueryParameter['workingTimeInForce'] = workingTimeInForce;\n }\n if (pendingType !== undefined && pendingType !== null) {\n localVarQueryParameter['pendingType'] = pendingType;\n }\n if (pendingSide !== undefined && pendingSide !== null) {\n localVarQueryParameter['pendingSide'] = pendingSide;\n }\n if (pendingClientOrderId !== undefined && pendingClientOrderId !== null) {\n localVarQueryParameter['pendingClientOrderId'] = pendingClientOrderId;\n }\n if (pendingPrice !== undefined && pendingPrice !== null) {\n localVarQueryParameter['pendingPrice'] = pendingPrice;\n }\n if (pendingStopPrice !== undefined && pendingStopPrice !== null) {\n localVarQueryParameter['pendingStopPrice'] = pendingStopPrice;\n }\n if (pendingTrailingDelta !== undefined && pendingTrailingDelta !== null) {\n localVarQueryParameter['pendingTrailingDelta'] = pendingTrailingDelta;\n }\n if (pendingQuantity !== undefined && pendingQuantity !== null) {\n localVarQueryParameter['pendingQuantity'] = pendingQuantity;\n }\n if (pendingIcebergQty !== undefined && pendingIcebergQty !== null) {\n localVarQueryParameter['pendingIcebergQty'] = pendingIcebergQty;\n }\n if (pendingTimeInForce !== undefined && pendingTimeInForce !== null) {\n localVarQueryParameter['pendingTimeInForce'] = pendingTimeInForce;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/order/oto',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {string} symbol\n * @param {string} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n * @param {string} workingSide BUY, SELL\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {string} pendingSide BUY, SELL\n * @param {number} pendingQuantity\n * @param {string} pendingAboveType Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {MarginAccountNewOtocoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {number} [workingIcebergQty] This can only be used if `workingTimeInForce` is `GTC`.\n * @param {string} [workingTimeInForce] GTC,IOC,FOK\n * @param {string} [pendingAboveClientOrderId] Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n * @param {number} [pendingAbovePrice]\n * @param {number} [pendingAboveStopPrice]\n * @param {number} [pendingAboveTrailingDelta]\n * @param {number} [pendingAboveIcebergQty] This can only be used if `pendingAboveTimeInForce` is `GTC`.\n * @param {string} [pendingAboveTimeInForce]\n * @param {string} [pendingBelowType] Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @param {string} [pendingBelowClientOrderId] Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n * @param {number} [pendingBelowPrice]\n * @param {number} [pendingBelowStopPrice]\n * @param {number} [pendingBelowTrailingDelta]\n * @param {number} [pendingBelowIcebergQty] This can only be used if `pendingBelowTimeInForce` is `GTC`.\n * @param {string} [pendingBelowTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOtoco: async (\n symbol: string,\n workingType: string,\n workingSide: string,\n workingPrice: number,\n workingQuantity: number,\n pendingSide: string,\n pendingQuantity: number,\n pendingAboveType: string,\n isIsolated?: string,\n sideEffectType?: string,\n autoRepayAtCancel?: boolean,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum,\n selfTradePreventionMode?: string,\n workingClientOrderId?: string,\n workingIcebergQty?: number,\n workingTimeInForce?: string,\n pendingAboveClientOrderId?: string,\n pendingAbovePrice?: number,\n pendingAboveStopPrice?: number,\n pendingAboveTrailingDelta?: number,\n pendingAboveIcebergQty?: number,\n pendingAboveTimeInForce?: string,\n pendingBelowType?: string,\n pendingBelowClientOrderId?: string,\n pendingBelowPrice?: number,\n pendingBelowStopPrice?: number,\n pendingBelowTrailingDelta?: number,\n pendingBelowIcebergQty?: number,\n pendingBelowTimeInForce?: string\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'symbol', symbol);\n // verify required parameter 'workingType' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingType', workingType);\n // verify required parameter 'workingSide' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingSide', workingSide);\n // verify required parameter 'workingPrice' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingPrice', workingPrice);\n // verify required parameter 'workingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingQuantity', workingQuantity);\n // verify required parameter 'pendingSide' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingSide', pendingSide);\n // verify required parameter 'pendingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingQuantity', pendingQuantity);\n // verify required parameter 'pendingAboveType' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingAboveType', pendingAboveType);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (workingType !== undefined && workingType !== null) {\n localVarQueryParameter['workingType'] = workingType;\n }\n if (workingSide !== undefined && workingSide !== null) {\n localVarQueryParameter['workingSide'] = workingSide;\n }\n if (workingClientOrderId !== undefined && workingClientOrderId !== null) {\n localVarQueryParameter['workingClientOrderId'] = workingClientOrderId;\n }\n if (workingPrice !== undefined && workingPrice !== null) {\n localVarQueryParameter['workingPrice'] = workingPrice;\n }\n if (workingQuantity !== undefined && workingQuantity !== null) {\n localVarQueryParameter['workingQuantity'] = workingQuantity;\n }\n if (workingIcebergQty !== undefined && workingIcebergQty !== null) {\n localVarQueryParameter['workingIcebergQty'] = workingIcebergQty;\n }\n if (workingTimeInForce !== undefined && workingTimeInForce !== null) {\n localVarQueryParameter['workingTimeInForce'] = workingTimeInForce;\n }\n if (pendingSide !== undefined && pendingSide !== null) {\n localVarQueryParameter['pendingSide'] = pendingSide;\n }\n if (pendingQuantity !== undefined && pendingQuantity !== null) {\n localVarQueryParameter['pendingQuantity'] = pendingQuantity;\n }\n if (pendingAboveType !== undefined && pendingAboveType !== null) {\n localVarQueryParameter['pendingAboveType'] = pendingAboveType;\n }\n if (pendingAboveClientOrderId !== undefined && pendingAboveClientOrderId !== null) {\n localVarQueryParameter['pendingAboveClientOrderId'] = pendingAboveClientOrderId;\n }\n if (pendingAbovePrice !== undefined && pendingAbovePrice !== null) {\n localVarQueryParameter['pendingAbovePrice'] = pendingAbovePrice;\n }\n if (pendingAboveStopPrice !== undefined && pendingAboveStopPrice !== null) {\n localVarQueryParameter['pendingAboveStopPrice'] = pendingAboveStopPrice;\n }\n if (pendingAboveTrailingDelta !== undefined && pendingAboveTrailingDelta !== null) {\n localVarQueryParameter['pendingAboveTrailingDelta'] = pendingAboveTrailingDelta;\n }\n if (pendingAboveIcebergQty !== undefined && pendingAboveIcebergQty !== null) {\n localVarQueryParameter['pendingAboveIcebergQty'] = pendingAboveIcebergQty;\n }\n if (pendingAboveTimeInForce !== undefined && pendingAboveTimeInForce !== null) {\n localVarQueryParameter['pendingAboveTimeInForce'] = pendingAboveTimeInForce;\n }\n if (pendingBelowType !== undefined && pendingBelowType !== null) {\n localVarQueryParameter['pendingBelowType'] = pendingBelowType;\n }\n if (pendingBelowClientOrderId !== undefined && pendingBelowClientOrderId !== null) {\n localVarQueryParameter['pendingBelowClientOrderId'] = pendingBelowClientOrderId;\n }\n if (pendingBelowPrice !== undefined && pendingBelowPrice !== null) {\n localVarQueryParameter['pendingBelowPrice'] = pendingBelowPrice;\n }\n if (pendingBelowStopPrice !== undefined && pendingBelowStopPrice !== null) {\n localVarQueryParameter['pendingBelowStopPrice'] = pendingBelowStopPrice;\n }\n if (pendingBelowTrailingDelta !== undefined && pendingBelowTrailingDelta !== null) {\n localVarQueryParameter['pendingBelowTrailingDelta'] = pendingBelowTrailingDelta;\n }\n if (pendingBelowIcebergQty !== undefined && pendingBelowIcebergQty !== null) {\n localVarQueryParameter['pendingBelowIcebergQty'] = pendingBelowIcebergQty;\n }\n if (pendingBelowTimeInForce !== undefined && pendingBelowTimeInForce !== null) {\n localVarQueryParameter['pendingBelowTimeInForce'] = pendingBelowTimeInForce;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/order/otoco',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginManualLiquidation: async (\n type: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginManualLiquidation', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/manual-liquidation',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCurrentMarginOrderCountUsage: async (\n isIsolated?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/rateLimit/order',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOco: async (\n isIsolated?: string,\n symbol?: string,\n fromId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/allOrderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOrders: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsAllOrders', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/allOrders',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [orderListId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOco: async (\n isIsolated?: string,\n symbol?: string,\n orderListId?: number | bigint,\n origClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (orderListId !== undefined && orderListId !== null) {\n localVarQueryParameter['orderListId'] = orderListId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\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: '/sapi/v1/margin/orderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOco: async (\n isIsolated?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/openOrderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOrders: async (\n symbol?: string,\n isIsolated?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\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: '/sapi/v1/margin/openOrders',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOrder: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n origClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsOrder', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\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: '/sapi/v1/margin/order',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsTradeList: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n fromId?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsTradeList', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/myTrades',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n querySpecialKey: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/apiKey',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n querySpecialKeyList: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/api-key-list',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {Array<string>} assetNames The assets list of small liability exchange, Example: assetNames = BTC,ETH\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n smallLiabilityExchange: async (\n assetNames: Array<string>,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'assetNames' is not null or undefined\n assertParamExists('smallLiabilityExchange', 'assetNames', assetNames);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (assetNames) {\n localVarQueryParameter['assetNames'] = assetNames;\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: '/sapi/v1/margin/exchange-small-liability',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>>;\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n deleteSpecialKey(requestParameters?: DeleteSpecialKeyRequest): Promise<RestApiResponse<void>>;\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getForceLiquidationRecord(\n requestParameters?: GetForceLiquidationRecordRequest\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>>;\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getSmallLiabilityExchangeCoinList(\n requestParameters?: GetSmallLiabilityExchangeCoinListRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>;\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>;\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>;\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>>;\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>>;\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>>;\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>>;\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>>;\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>>;\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>>;\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryCurrentMarginOrderCountUsage(\n requestParameters?: QueryCurrentMarginOrderCountUsageRequest\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>;\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsAllOco(\n requestParameters?: QueryMarginAccountsAllOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>;\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>;\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOco(\n requestParameters?: QueryMarginAccountsOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>;\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOpenOco(\n requestParameters?: QueryMarginAccountsOpenOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>;\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOpenOrders(\n requestParameters?: QueryMarginAccountsOpenOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>;\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>;\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>;\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n querySpecialKey(\n requestParameters?: QuerySpecialKeyRequest\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>>;\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n querySpecialKeyList(\n requestParameters?: QuerySpecialKeyListRequest\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>>;\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>>;\n}\n\n/**\n * Request parameters for createSpecialKey operation in TradeApi.\n * @interface CreateSpecialKeyRequest\n */\nexport interface CreateSpecialKeyRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly apiName: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * Can be added in batches, separated by commas. Max 30 for an API key\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly ip?: string;\n\n /**\n * 1. If publicKey is inputted it will create an RSA or Ed25519 key. <br />2. Need to be encoded to URL-encoded format\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly publicKey?: string;\n\n /**\n * This parameter is only for the Ed25519 API key, and does not effact for other encryption methods. The value can be TRADE (TRADE for all permissions) or READ (READ for USER_DATA, FIX_API_READ_ONLY). The default value is TRADE.\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly permissionMode?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for deleteSpecialKey operation in TradeApi.\n * @interface DeleteSpecialKeyRequest\n */\nexport interface DeleteSpecialKeyRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly apiName?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for editIpForSpecialKey operation in TradeApi.\n * @interface EditIpForSpecialKeyRequest\n */\nexport interface EditIpForSpecialKeyRequest {\n /**\n * Can be added in batches, separated by commas. Max 30 for an API key\n * @type {string}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly ip: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getForceLiquidationRecord operation in TradeApi.\n * @interface GetForceLiquidationRecordRequest\n */\nexport interface GetForceLiquidationRecordRequest {\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly endTime?: number | bigint;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly isolatedSymbol?: string;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSmallLiabilityExchangeCoinList operation in TradeApi.\n * @interface GetSmallLiabilityExchangeCoinListRequest\n */\nexport interface GetSmallLiabilityExchangeCoinListRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeCoinList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSmallLiabilityExchangeHistory operation in TradeApi.\n * @interface GetSmallLiabilityExchangeHistoryRequest\n */\nexport interface GetSmallLiabilityExchangeHistoryRequest {\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly current: number | bigint;\n\n /**\n * Default:10, Max:100\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly size: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelAllOpenOrdersOnASymbol operation in TradeApi.\n * @interface MarginAccountCancelAllOpenOrdersOnASymbolRequest\n */\nexport interface MarginAccountCancelAllOpenOrdersOnASymbolRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly isIsolated?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelOco operation in TradeApi.\n * @interface MarginAccountCancelOcoRequest\n */\nexport interface MarginAccountCancelOcoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly listClientOrderId?: string;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly newClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelOrder operation in TradeApi.\n * @interface MarginAccountCancelOrderRequest\n */\nexport interface MarginAccountCancelOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly orderId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly origClientOrderId?: string;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOco operation in TradeApi.\n * @interface MarginAccountNewOcoRequest\n */\nexport interface MarginAccountNewOcoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly symbol: string;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly side: MarginAccountNewOcoSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly quantity: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly price: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopPrice: number;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly listClientOrderId?: string;\n\n /**\n * A unique Id for the limit order\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly limitClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly limitIcebergQty?: number;\n\n /**\n * A unique Id for the stop loss/stop loss limit leg\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopClientOrderId?: string;\n\n /**\n * If provided, `stopLimitTimeInForce` is required.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopIcebergQty?: number;\n\n /**\n * Valid values are `GTC`/`FOK`/`IOC`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitTimeInForce?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly sideEffectType?: string;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOrder operation in TradeApi.\n * @interface MarginAccountNewOrderRequest\n */\nexport interface MarginAccountNewOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly symbol: string;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly side: MarginAccountNewOrderSideEnum;\n\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly type: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly quantity?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly quoteOrderQty?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly price?: number;\n\n /**\n * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly stopPrice?: number;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly icebergQty?: number;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly sideEffectType?: string;\n\n /**\n * GTC,IOC,FOK\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly timeInForce?: MarginAccountNewOrderTimeInForceEnum;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOto operation in TradeApi.\n * @interface MarginAccountNewOtoRequest\n */\nexport interface MarginAccountNewOtoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly symbol: string;\n\n /**\n * Supported values: `LIMIT`, `LIMIT_MAKER`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingPrice: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingQuantity: number;\n\n /**\n * This can only be used if `workingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingIcebergQty: number;\n\n /**\n * Supported values: [Order Types](https://developers.binance.com/docs/binance-spot-api-docs/enums#order-types-ordertypes-type) Note that `MARKET` orders using `quoteOrderQty` are not supported.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingQuantity: number;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly listClientOrderId?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly sideEffectType?: string;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingClientOrderId?: string;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingTimeInForce?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingIcebergQty?: number;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTimeInForce?: string;\n}\n\n/**\n * Request parameters for marginAccountNewOtoco operation in TradeApi.\n * @interface MarginAccountNewOtocoRequest\n */\nexport interface MarginAccountNewOtocoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly symbol: string;\n\n /**\n * Supported values: `LIMIT`, `LIMIT_MAKER`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingPrice: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingQuantity: number;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingQuantity: number;\n\n /**\n * Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveType: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly isIsolated?: string;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly sideEffectType?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly listClientOrderId?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingClientOrderId?: string;\n\n /**\n * This can only be used if `workingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingIcebergQty?: number;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingTimeInForce?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAbovePrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingAboveTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveIcebergQty?: number;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTimeInForce?: string;\n\n /**\n * Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowType?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingBelowTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowIcebergQty?: number;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTimeInForce?: string;\n}\n\n/**\n * Request parameters for marginManualLiquidation operation in TradeApi.\n * @interface MarginManualLiquidationRequest\n */\nexport interface MarginManualLiquidationRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly type: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCurrentMarginOrderCountUsage operation in TradeApi.\n * @interface QueryCurrentMarginOrderCountUsageRequest\n */\nexport interface QueryCurrentMarginOrderCountUsageRequest {\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsAllOco operation in TradeApi.\n * @interface QueryMarginAccountsAllOcoRequest\n */\nexport interface QueryMarginAccountsAllOcoRequest {\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly symbol?: string;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly fromId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly endTime?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsAllOrders operation in TradeApi.\n * @interface QueryMarginAccountsAllOrdersRequest\n */\nexport interface QueryMarginAccountsAllOrdersRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly orderId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly endTime?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOco operation in TradeApi.\n * @interface QueryMarginAccountsOcoRequest\n */\nexport interface QueryMarginAccountsOcoRequest {\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly symbol?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly origClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOpenOco operation in TradeApi.\n * @interface QueryMarginAccountsOpenOcoRequest\n */\nexport interface QueryMarginAccountsOpenOcoRequest {\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOpenOrders operation in TradeApi.\n * @interface QueryMarginAccountsOpenOrdersRequest\n */\nexport interface QueryMarginAccountsOpenOrdersRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly symbol?: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly isIsolated?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOrder operation in TradeApi.\n * @interface QueryMarginAccountsOrderRequest\n */\nexport interface QueryMarginAccountsOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly orderId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly origClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsTradeList operation in TradeApi.\n * @interface QueryMarginAccountsTradeListRequest\n */\nexport interface QueryMarginAccountsTradeListRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly symbol: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\",default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly orderId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly endTime?: number | bigint;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly fromId?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for querySpecialKey operation in TradeApi.\n * @interface QuerySpecialKeyRequest\n */\nexport interface QuerySpecialKeyRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for querySpecialKeyList operation in TradeApi.\n * @interface QuerySpecialKeyListRequest\n */\nexport interface QuerySpecialKeyListRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for smallLiabilityExchange operation in TradeApi.\n * @interface SmallLiabilityExchangeRequest\n */\nexport interface SmallLiabilityExchangeRequest {\n /**\n * The assets list of small liability exchange, Example: assetNames = BTC,ETH\n * @type {Array<string>}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly assetNames: Array<string>;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly recvWindow?: number | bigint;\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 * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<CreateSpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Create-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.createSpecialKey(\n requestParameters?.apiName,\n requestParameters?.symbol,\n requestParameters?.ip,\n requestParameters?.publicKey,\n requestParameters?.permissionMode,\n requestParameters?.recvWindow\n );\n return sendRequest<CreateSpecialKeyResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} 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/margin_trading/trade/Delete-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async deleteSpecialKey(\n requestParameters: DeleteSpecialKeyRequest = {}\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.deleteSpecialKey(\n requestParameters?.apiName,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} 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/margin_trading/trade/Edit-ip-for-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.editIpForSpecialKey(\n requestParameters?.ip,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetForceLiquidationRecordResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Force-Liquidation-Record Binance API Documentation}\n */\n public async getForceLiquidationRecord(\n requestParameters: GetForceLiquidationRecordRequest = {}\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getForceLiquidationRecord(\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.isolatedSymbol,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<GetForceLiquidationRecordResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-Coin-List Binance API Documentation}\n */\n public async getSmallLiabilityExchangeCoinList(\n requestParameters: GetSmallLiabilityExchangeCoinListRequest = {}\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getSmallLiabilityExchangeCoinList(\n requestParameters?.recvWindow\n );\n return sendRequest<GetSmallLiabilityExchangeCoinListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-History Binance API Documentation}\n */\n public async getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getSmallLiabilityExchangeHistory(\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.recvWindow\n );\n return sendRequest<GetSmallLiabilityExchangeHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-All-Open-Orders Binance API Documentation}\n */\n public async marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelAllOpenOrdersOnASymbolResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-OCO Binance API Documentation}\n */\n public async marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountCancelOco(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderListId,\n requestParameters?.listClientOrderId,\n requestParameters?.newClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-Order Binance API Documentation}\n */\n public async marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountCancelOrder(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.origClientOrderId,\n requestParameters?.newClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO Binance API Documentation}\n */\n public async marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOco(\n requestParameters?.symbol,\n requestParameters?.side,\n requestParameters?.quantity,\n requestParameters?.price,\n requestParameters?.stopPrice,\n requestParameters?.isIsolated,\n requestParameters?.listClientOrderId,\n requestParameters?.limitClientOrderId,\n requestParameters?.limitIcebergQty,\n requestParameters?.stopClientOrderId,\n requestParameters?.stopLimitPrice,\n requestParameters?.stopIcebergQty,\n requestParameters?.stopLimitTimeInForce,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountNewOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-Order Binance API Documentation}\n */\n public async marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOrder(\n requestParameters?.symbol,\n requestParameters?.side,\n requestParameters?.type,\n requestParameters?.isIsolated,\n requestParameters?.quantity,\n requestParameters?.quoteOrderQty,\n requestParameters?.price,\n requestParameters?.stopPrice,\n requestParameters?.newClientOrderId,\n requestParameters?.icebergQty,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.timeInForce,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountNewOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOtoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTO Binance API Documentation}\n */\n public async marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOto(\n requestParameters?.symbol,\n requestParameters?.workingType,\n requestParameters?.workingSide,\n requestParameters?.workingPrice,\n requestParameters?.workingQuantity,\n requestParameters?.workingIcebergQty,\n requestParameters?.pendingType,\n requestParameters?.pendingSide,\n requestParameters?.pendingQuantity,\n requestParameters?.isIsolated,\n requestParameters?.listClientOrderId,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.workingClientOrderId,\n requestParameters?.workingTimeInForce,\n requestParameters?.pendingClientOrderId,\n requestParameters?.pendingPrice,\n requestParameters?.pendingStopPrice,\n requestParameters?.pendingTrailingDelta,\n requestParameters?.pendingIcebergQty,\n requestParameters?.pendingTimeInForce\n );\n return sendRequest<MarginAccountNewOtoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOtocoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTOCO Binance API Documentation}\n */\n public async marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOtoco(\n requestParameters?.symbol,\n requestParameters?.workingType,\n requestParameters?.workingSide,\n requestParameters?.workingPrice,\n requestParameters?.workingQuantity,\n requestParameters?.pendingSide,\n requestParameters?.pendingQuantity,\n requestParameters?.pendingAboveType,\n requestParameters?.isIsolated,\n requestParameters?.sideEffectType,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.listClientOrderId,\n requestParameters?.newOrderRespType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.workingClientOrderId,\n requestParameters?.workingIcebergQty,\n requestParameters?.workingTimeInForce,\n requestParameters?.pendingAboveClientOrderId,\n requestParameters?.pendingAbovePrice,\n requestParameters?.pendingAboveStopPrice,\n requestParameters?.pendingAboveTrailingDelta,\n requestParameters?.pendingAboveIcebergQty,\n requestParameters?.pendingAboveTimeInForce,\n requestParameters?.pendingBelowType,\n requestParameters?.pendingBelowClientOrderId,\n requestParameters?.pendingBelowPrice,\n requestParameters?.pendingBelowStopPrice,\n requestParameters?.pendingBelowTrailingDelta,\n requestParameters?.pendingBelowIcebergQty,\n requestParameters?.pendingBelowTimeInForce\n );\n return sendRequest<MarginAccountNewOtocoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginManualLiquidationResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Manual-Liquidation Binance API Documentation}\n */\n public async marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginManualLiquidation(\n requestParameters?.type,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginManualLiquidationResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Current-Margin-Order-Count-Usage Binance API Documentation}\n */\n public async queryCurrentMarginOrderCountUsage(\n requestParameters: QueryCurrentMarginOrderCountUsageRequest = {}\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCurrentMarginOrderCountUsage(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCurrentMarginOrderCountUsageResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-all-OCO Binance API Documentation}\n */\n public async queryMarginAccountsAllOco(\n requestParameters: QueryMarginAccountsAllOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsAllOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.fromId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsAllOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-All-Orders Binance API Documentation}\n */\n public async queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsAllOrders(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsAllOrdersResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-OCO Binance API Documentation}\n */\n public async queryMarginAccountsOco(\n requestParameters: QueryMarginAccountsOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.orderListId,\n requestParameters?.origClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-OCO Binance API Documentation}\n */\n public async queryMarginAccountsOpenOco(\n requestParameters: QueryMarginAccountsOpenOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOpenOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOpenOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-Orders Binance API Documentation}\n */\n public async queryMarginAccountsOpenOrders(\n requestParameters: QueryMarginAccountsOpenOrdersRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginAccountsOpenOrders(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOpenOrdersResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Order Binance API Documentation}\n */\n public async queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOrder(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.origClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List Binance API Documentation}\n */\n public async queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsTradeList(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.fromId,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsTradeListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QuerySpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async querySpecialKey(\n requestParameters: QuerySpecialKeyRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.querySpecialKey(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QuerySpecialKeyResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QuerySpecialKeyListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-List-of-Low-Latency-Trading Binance API Documentation}\n */\n public async querySpecialKeyList(\n requestParameters: QuerySpecialKeyListRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.querySpecialKeyList(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QuerySpecialKeyListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} 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/margin_trading/trade/Small-Liability-Exchange Binance API Documentation}\n */\n public async smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.smallLiabilityExchange(\n requestParameters?.assetNames,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum MarginAccountNewOcoSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOcoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOrderNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtocoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 GetCrossMarginTransferHistoryResponse,\n QueryMaxTransferOutAmountResponse,\n} from '../types';\n\n/**\n * TransferApi - axios parameter creator\n */\nconst TransferApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [type] Transfer Type: ROLL_IN, ROLL_OUT\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getCrossMarginTransferHistory: async (\n asset?: string,\n type?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/transfer',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMaxTransferOutAmount: async (\n asset: string,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMaxTransferOutAmount', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/maxTransferable',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TransferApi - interface\n * @interface TransferApi\n */\nexport interface TransferApiInterface {\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApiInterface\n */\n getCrossMarginTransferHistory(\n requestParameters?: GetCrossMarginTransferHistoryRequest\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>;\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApiInterface\n */\n queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>;\n}\n\n/**\n * Request parameters for getCrossMarginTransferHistory operation in TransferApi.\n * @interface GetCrossMarginTransferHistoryRequest\n */\nexport interface GetCrossMarginTransferHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly asset?: string;\n\n /**\n * Transfer Type: ROLL_IN, ROLL_OUT\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly type?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly size?: number | bigint;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMaxTransferOutAmount operation in TransferApi.\n * @interface QueryMaxTransferOutAmountRequest\n */\nexport interface QueryMaxTransferOutAmountRequest {\n /**\n *\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly asset: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * TransferApi - object-oriented interface\n * @class TransferApi\n */\nexport class TransferApi implements TransferApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = TransferApiAxiosParamCreator(configuration);\n }\n\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApi\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Get-Cross-Margin-Transfer-History Binance API Documentation}\n */\n public async getCrossMarginTransferHistory(\n requestParameters: GetCrossMarginTransferHistoryRequest = {}\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getCrossMarginTransferHistory(\n requestParameters?.asset,\n requestParameters?.type,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<GetCrossMarginTransferHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApi\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Query-Max-Transfer-Out-Amount Binance API Documentation}\n */\n public async queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMaxTransferOutAmount(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMaxTransferOutAmountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 { BorrowRepayApi } from './modules/borrow-repay-api';\nimport { MarketDataApi } from './modules/market-data-api';\nimport { RiskDataStreamApi } from './modules/risk-data-stream-api';\nimport { TradeApi } from './modules/trade-api';\nimport { TransferApi } from './modules/transfer-api';\n\nimport type {\n AdjustCrossMarginMaxLeverageRequest,\n DisableIsolatedMarginAccountRequest,\n EnableIsolatedMarginAccountRequest,\n GetBnbBurnStatusRequest,\n GetSummaryOfMarginAccountRequest,\n QueryCrossIsolatedMarginCapitalFlowRequest,\n QueryCrossMarginAccountDetailsRequest,\n QueryCrossMarginFeeDataRequest,\n QueryEnabledIsolatedMarginAccountLimitRequest,\n QueryIsolatedMarginAccountInfoRequest,\n QueryIsolatedMarginFeeDataRequest,\n} from './modules/account-api';\nimport type {\n GetFutureHourlyInterestRateRequest,\n GetInterestHistoryRequest,\n MarginAccountBorrowRepayRequest,\n QueryBorrowRepayRecordsInMarginAccountRequest,\n QueryMarginInterestRateHistoryRequest,\n QueryMaxBorrowRequest,\n} from './modules/borrow-repay-api';\nimport type {\n GetAllCrossMarginPairsRequest,\n GetAllIsolatedMarginSymbolRequest,\n GetAllMarginAssetsRequest,\n GetDelistScheduleRequest,\n GetListScheduleRequest,\n QueryIsolatedMarginTierDataRequest,\n QueryMarginAvailableInventoryRequest,\n QueryMarginPriceindexRequest,\n} from './modules/market-data-api';\nimport type { KeepaliveUserDataStreamRequest } from './modules/risk-data-stream-api';\nimport type {\n CreateSpecialKeyRequest,\n DeleteSpecialKeyRequest,\n EditIpForSpecialKeyRequest,\n GetForceLiquidationRecordRequest,\n GetSmallLiabilityExchangeCoinListRequest,\n GetSmallLiabilityExchangeHistoryRequest,\n MarginAccountCancelAllOpenOrdersOnASymbolRequest,\n MarginAccountCancelOcoRequest,\n MarginAccountCancelOrderRequest,\n MarginAccountNewOcoRequest,\n MarginAccountNewOrderRequest,\n MarginAccountNewOtoRequest,\n MarginAccountNewOtocoRequest,\n MarginManualLiquidationRequest,\n QueryCurrentMarginOrderCountUsageRequest,\n QueryMarginAccountsAllOcoRequest,\n QueryMarginAccountsAllOrdersRequest,\n QueryMarginAccountsOcoRequest,\n QueryMarginAccountsOpenOcoRequest,\n QueryMarginAccountsOpenOrdersRequest,\n QueryMarginAccountsOrderRequest,\n QueryMarginAccountsTradeListRequest,\n QuerySpecialKeyRequest,\n QuerySpecialKeyListRequest,\n SmallLiabilityExchangeRequest,\n} from './modules/trade-api';\nimport type {\n GetCrossMarginTransferHistoryRequest,\n QueryMaxTransferOutAmountRequest,\n} from './modules/transfer-api';\n\nimport type {\n AdjustCrossMarginMaxLeverageResponse,\n DisableIsolatedMarginAccountResponse,\n EnableIsolatedMarginAccountResponse,\n GetBnbBurnStatusResponse,\n GetSummaryOfMarginAccountResponse,\n QueryCrossIsolatedMarginCapitalFlowResponse,\n QueryCrossMarginAccountDetailsResponse,\n QueryCrossMarginFeeDataResponse,\n QueryEnabledIsolatedMarginAccountLimitResponse,\n QueryIsolatedMarginAccountInfoResponse,\n QueryIsolatedMarginFeeDataResponse,\n} from './types';\nimport type {\n GetFutureHourlyInterestRateResponse,\n GetInterestHistoryResponse,\n MarginAccountBorrowRepayResponse,\n QueryBorrowRepayRecordsInMarginAccountResponse,\n QueryMarginInterestRateHistoryResponse,\n QueryMaxBorrowResponse,\n} from './types';\nimport type {\n CrossMarginCollateralRatioResponse,\n GetAllCrossMarginPairsResponse,\n GetAllIsolatedMarginSymbolResponse,\n GetAllMarginAssetsResponse,\n GetDelistScheduleResponse,\n GetLimitPricePairsResponse,\n GetListScheduleResponse,\n GetMarginAssetRiskBasedLiquidationRatioResponse,\n QueryIsolatedMarginTierDataResponse,\n QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse,\n QueryMarginAvailableInventoryResponse,\n QueryMarginPriceindexResponse,\n} from './types';\nimport type { StartUserDataStreamResponse } from './types';\nimport type {\n CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryMarginAccountsAllOcoResponse,\n QueryMarginAccountsAllOrdersResponse,\n QueryMarginAccountsOcoResponse,\n QueryMarginAccountsOpenOcoResponse,\n QueryMarginAccountsOpenOrdersResponse,\n QueryMarginAccountsOrderResponse,\n QueryMarginAccountsTradeListResponse,\n QuerySpecialKeyResponse,\n QuerySpecialKeyListResponse,\n} from './types';\nimport type {\n GetCrossMarginTransferHistoryResponse,\n QueryMaxTransferOutAmountResponse,\n} from './types';\n\nexport class RestAPI {\n private configuration: ConfigurationRestAPI;\n private accountApi: AccountApi;\n private borrowRepayApi: BorrowRepayApi;\n private marketDataApi: MarketDataApi;\n private riskDataStreamApi: RiskDataStreamApi;\n private tradeApi: TradeApi;\n private transferApi: TransferApi;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.accountApi = new AccountApi(configuration);\n this.borrowRepayApi = new BorrowRepayApi(configuration);\n this.marketDataApi = new MarketDataApi(configuration);\n this.riskDataStreamApi = new RiskDataStreamApi(configuration);\n this.tradeApi = new TradeApi(configuration);\n this.transferApi = new TransferApi(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 queryParams - Query parameters for the request.\n * @param bodyParams - Body 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 queryParams: Record<string, unknown> = {},\n bodyParams: Record<string, unknown> = {}\n ): Promise<RestApiResponse<T>> {\n return sendRequest<T>(\n this.configuration,\n endpoint,\n method,\n queryParams,\n bodyParams,\n undefined\n );\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 queryParams - Query parameters for the request.\n * @param bodyParams - Body 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 queryParams: Record<string, unknown> = {},\n bodyParams: Record<string, unknown> = {}\n ): Promise<RestApiResponse<T>> {\n return sendRequest<T>(\n this.configuration,\n endpoint,\n method,\n queryParams,\n bodyParams,\n undefined,\n { isSigned: true }\n );\n }\n\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Adjust-cross-margin-max-leverage Binance API Documentation}\n */\n adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>> {\n return this.accountApi.adjustCrossMarginMaxLeverage(requestParameters);\n }\n\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Disable-Isolated-Margin-Account Binance API Documentation}\n */\n disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>> {\n return this.accountApi.disableIsolatedMarginAccount(requestParameters);\n }\n\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Enable-Isolated-Margin-Account Binance API Documentation}\n */\n enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>> {\n return this.accountApi.enableIsolatedMarginAccount(requestParameters);\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-BNB-Burn-Status Binance API Documentation}\n */\n getBnbBurnStatus(\n requestParameters: GetBnbBurnStatusRequest = {}\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n return this.accountApi.getBnbBurnStatus(requestParameters);\n }\n\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-Summary-of-Margin-account Binance API Documentation}\n */\n getSummaryOfMarginAccount(\n requestParameters: GetSummaryOfMarginAccountRequest = {}\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>> {\n return this.accountApi.getSummaryOfMarginAccount(requestParameters);\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Isolated-Margin-Capital-Flow Binance API Documentation}\n */\n queryCrossIsolatedMarginCapitalFlow(\n requestParameters: QueryCrossIsolatedMarginCapitalFlowRequest = {}\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>> {\n return this.accountApi.queryCrossIsolatedMarginCapitalFlow(requestParameters);\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Account-Details Binance API Documentation}\n */\n queryCrossMarginAccountDetails(\n requestParameters: QueryCrossMarginAccountDetailsRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>> {\n return this.accountApi.queryCrossMarginAccountDetails(requestParameters);\n }\n\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Fee-Data Binance API Documentation}\n */\n queryCrossMarginFeeData(\n requestParameters: QueryCrossMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>> {\n return this.accountApi.queryCrossMarginFeeData(requestParameters);\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Enabled-Isolated-Margin-Account-Limit Binance API Documentation}\n */\n queryEnabledIsolatedMarginAccountLimit(\n requestParameters: QueryEnabledIsolatedMarginAccountLimitRequest = {}\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>> {\n return this.accountApi.queryEnabledIsolatedMarginAccountLimit(requestParameters);\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Account-Info Binance API Documentation}\n */\n queryIsolatedMarginAccountInfo(\n requestParameters: QueryIsolatedMarginAccountInfoRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>> {\n return this.accountApi.queryIsolatedMarginAccountInfo(requestParameters);\n }\n\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Fee-Data Binance API Documentation}\n */\n queryIsolatedMarginFeeData(\n requestParameters: QueryIsolatedMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>> {\n return this.accountApi.queryIsolatedMarginFeeData(requestParameters);\n }\n\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-a-future-hourly-interest-rate Binance API Documentation}\n */\n getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>> {\n return this.borrowRepayApi.getFutureHourlyInterestRate(requestParameters);\n }\n\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetInterestHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-Interest-History Binance API Documentation}\n */\n getInterestHistory(\n requestParameters: GetInterestHistoryRequest = {}\n ): Promise<RestApiResponse<GetInterestHistoryResponse>> {\n return this.borrowRepayApi.getInterestHistory(requestParameters);\n }\n\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Margin-account-borrow-repay Binance API Documentation}\n */\n marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>> {\n return this.borrowRepayApi.marginAccountBorrowRepay(requestParameters);\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Borrow-Repay Binance API Documentation}\n */\n queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>> {\n return this.borrowRepayApi.queryBorrowRepayRecordsInMarginAccount(requestParameters);\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Margin-Interest-Rate-History Binance API Documentation}\n */\n queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>> {\n return this.borrowRepayApi.queryMarginInterestRateHistory(requestParameters);\n }\n\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMaxBorrowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Max-Borrow Binance API Documentation}\n */\n queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>> {\n return this.borrowRepayApi.queryMaxBorrow(requestParameters);\n }\n\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Cross-margin-collateral-ratio Binance API Documentation}\n */\n crossMarginCollateralRatio(): Promise<RestApiResponse<CrossMarginCollateralRatioResponse>> {\n return this.marketDataApi.crossMarginCollateralRatio();\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Cross-Margin-Pairs Binance API Documentation}\n */\n getAllCrossMarginPairs(\n requestParameters: GetAllCrossMarginPairsRequest = {}\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>> {\n return this.marketDataApi.getAllCrossMarginPairs(requestParameters);\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Isolated-Margin-Symbol Binance API Documentation}\n */\n getAllIsolatedMarginSymbol(\n requestParameters: GetAllIsolatedMarginSymbolRequest = {}\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>> {\n return this.marketDataApi.getAllIsolatedMarginSymbol(requestParameters);\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllMarginAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Margin-Assets Binance API Documentation}\n */\n getAllMarginAssets(\n requestParameters: GetAllMarginAssetsRequest = {}\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>> {\n return this.marketDataApi.getAllMarginAssets(requestParameters);\n }\n\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetDelistScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Delist-Schedule Binance API Documentation}\n */\n getDelistSchedule(\n requestParameters: GetDelistScheduleRequest = {}\n ): Promise<RestApiResponse<GetDelistScheduleResponse>> {\n return this.marketDataApi.getDelistSchedule(requestParameters);\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<GetLimitPricePairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Limit-Price-Pairs Binance API Documentation}\n */\n getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>> {\n return this.marketDataApi.getLimitPricePairs();\n }\n\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetListScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-list-Schedule Binance API Documentation}\n */\n getListSchedule(\n requestParameters: GetListScheduleRequest = {}\n ): Promise<RestApiResponse<GetListScheduleResponse>> {\n return this.marketDataApi.getListSchedule(requestParameters);\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Asset-Risk-Based-Liquidation-Ratio Binance API Documentation}\n */\n getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n > {\n return this.marketDataApi.getMarginAssetRiskBasedLiquidationRatio();\n }\n\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Isolated-Margin-Tier-Data Binance API Documentation}\n */\n queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>> {\n return this.marketDataApi.queryIsolatedMarginTierData(requestParameters);\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Liability-Coin-Leverage-Bracket-in-Cross-Margin-Pro-Mode Binance API Documentation}\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n > {\n return this.marketDataApi.queryLiabilityCoinLeverageBracketInCrossMarginProMode();\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-margin-avaliable-inventory Binance API Documentation}\n */\n queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>> {\n return this.marketDataApi.queryMarginAvailableInventory(requestParameters);\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginPriceindexResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Margin-PriceIndex Binance API Documentation}\n */\n queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>> {\n return this.marketDataApi.queryMarginPriceindex(requestParameters);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\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/margin_trading/risk-data-stream/Close-User-Data-Stream Binance API Documentation}\n */\n closeUserDataStream(): Promise<RestApiResponse<void>> {\n return this.riskDataStreamApi.closeUserDataStream();\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n *\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/margin_trading/risk-data-stream/Keepalive-User-Data-Stream Binance API Documentation}\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n return this.riskDataStreamApi.keepaliveUserDataStream(requestParameters);\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight: 1\n *\n * @summary Start User Data Stream (USER_STREAM)\n *\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/margin_trading/risk-data-stream/Start-User-Data-Stream Binance API Documentation}\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n return this.riskDataStreamApi.startUserDataStream();\n }\n\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<CreateSpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Create-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n return this.tradeApi.createSpecialKey(requestParameters);\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Delete-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n deleteSpecialKey(\n requestParameters: DeleteSpecialKeyRequest = {}\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.deleteSpecialKey(requestParameters);\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Edit-ip-for-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.editIpForSpecialKey(requestParameters);\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetForceLiquidationRecordResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Force-Liquidation-Record Binance API Documentation}\n */\n getForceLiquidationRecord(\n requestParameters: GetForceLiquidationRecordRequest = {}\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>> {\n return this.tradeApi.getForceLiquidationRecord(requestParameters);\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-Coin-List Binance API Documentation}\n */\n getSmallLiabilityExchangeCoinList(\n requestParameters: GetSmallLiabilityExchangeCoinListRequest = {}\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>> {\n return this.tradeApi.getSmallLiabilityExchangeCoinList(requestParameters);\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-History Binance API Documentation}\n */\n getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>> {\n return this.tradeApi.getSmallLiabilityExchangeHistory(requestParameters);\n }\n\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-All-Open-Orders Binance API Documentation}\n */\n marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>> {\n return this.tradeApi.marginAccountCancelAllOpenOrdersOnASymbol(requestParameters);\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-OCO Binance API Documentation}\n */\n marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>> {\n return this.tradeApi.marginAccountCancelOco(requestParameters);\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-Order Binance API Documentation}\n */\n marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>> {\n return this.tradeApi.marginAccountCancelOrder(requestParameters);\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO Binance API Documentation}\n */\n marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>> {\n return this.tradeApi.marginAccountNewOco(requestParameters);\n }\n\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-Order Binance API Documentation}\n */\n marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>> {\n return this.tradeApi.marginAccountNewOrder(requestParameters);\n }\n\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOtoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTO Binance API Documentation}\n */\n marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>> {\n return this.tradeApi.marginAccountNewOto(requestParameters);\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOtocoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTOCO Binance API Documentation}\n */\n marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>> {\n return this.tradeApi.marginAccountNewOtoco(requestParameters);\n }\n\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginManualLiquidationResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Manual-Liquidation Binance API Documentation}\n */\n marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>> {\n return this.tradeApi.marginManualLiquidation(requestParameters);\n }\n\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Current-Margin-Order-Count-Usage Binance API Documentation}\n */\n queryCurrentMarginOrderCountUsage(\n requestParameters: QueryCurrentMarginOrderCountUsageRequest = {}\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>> {\n return this.tradeApi.queryCurrentMarginOrderCountUsage(requestParameters);\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-all-OCO Binance API Documentation}\n */\n queryMarginAccountsAllOco(\n requestParameters: QueryMarginAccountsAllOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>> {\n return this.tradeApi.queryMarginAccountsAllOco(requestParameters);\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-All-Orders Binance API Documentation}\n */\n queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>> {\n return this.tradeApi.queryMarginAccountsAllOrders(requestParameters);\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-OCO Binance API Documentation}\n */\n queryMarginAccountsOco(\n requestParameters: QueryMarginAccountsOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>> {\n return this.tradeApi.queryMarginAccountsOco(requestParameters);\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-OCO Binance API Documentation}\n */\n queryMarginAccountsOpenOco(\n requestParameters: QueryMarginAccountsOpenOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>> {\n return this.tradeApi.queryMarginAccountsOpenOco(requestParameters);\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-Orders Binance API Documentation}\n */\n queryMarginAccountsOpenOrders(\n requestParameters: QueryMarginAccountsOpenOrdersRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>> {\n return this.tradeApi.queryMarginAccountsOpenOrders(requestParameters);\n }\n\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Order Binance API Documentation}\n */\n queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>> {\n return this.tradeApi.queryMarginAccountsOrder(requestParameters);\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List Binance API Documentation}\n */\n queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>> {\n return this.tradeApi.queryMarginAccountsTradeList(requestParameters);\n }\n\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QuerySpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n querySpecialKey(\n requestParameters: QuerySpecialKeyRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>> {\n return this.tradeApi.querySpecialKey(requestParameters);\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QuerySpecialKeyListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-List-of-Low-Latency-Trading Binance API Documentation}\n */\n querySpecialKeyList(\n requestParameters: QuerySpecialKeyListRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>> {\n return this.tradeApi.querySpecialKeyList(requestParameters);\n }\n\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Small-Liability-Exchange Binance API Documentation}\n */\n smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.smallLiabilityExchange(requestParameters);\n }\n\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Get-Cross-Margin-Transfer-History Binance API Documentation}\n */\n getCrossMarginTransferHistory(\n requestParameters: GetCrossMarginTransferHistoryRequest = {}\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>> {\n return this.transferApi.getCrossMarginTransferHistory(requestParameters);\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Query-Max-Transfer-Out-Amount Binance API Documentation}\n */\n queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>> {\n return this.transferApi.queryMaxTransferOutAmount(requestParameters);\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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';\n\nimport type { RiskDataStreamEventsResponse } from './types';\nimport type { TradeDataStreamEventsResponse } from './types';\n\nexport class WebsocketStreamsConnection {\n private websocketBase: WebsocketStreamsBase;\n\n constructor(websocketBase: WebsocketStreamsBase) {\n this.websocketBase = 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 risk data WebSocket stream using the provided listen key.\n * @param listenKey - The listen key for the risk data WebSocket stream.\n * @param id - Optional risk data stream ID\n * @returns A WebSocket stream handler for the risk data stream.\n */\n riskData(listenKey: string, id?: string): WebsocketStream<RiskDataStreamEventsResponse> {\n return createStreamHandler<RiskDataStreamEventsResponse>(this.websocketBase, listenKey, id);\n }\n\n /**\n * Subscribes to the trade data WebSocket stream using the provided listen key.\n * @param listenKey - The listen key for the trade data WebSocket stream.\n * @param id - Optional trade data stream ID\n * @returns A WebSocket stream handler for the trade data stream.\n */\n tradeData(listenKey: string, id?: string): WebsocketStream<TradeDataStreamEventsResponse> {\n return createStreamHandler<TradeDataStreamEventsResponse>(\n this.websocketBase,\n listenKey,\n id\n );\n }\n}\n","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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\n const websocketStreamsConnection = new WebsocketStreamsConnection(websocketBase);\n await websocketBase.connect(stream);\n return websocketStreamsConnection;\n }\n}\n","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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';\n\nexport * from './websocket-streams';\nexport * from './websocket-streams-connection';\n","import {\n buildUserAgent,\n ConfigurationRestAPI,\n ConfigurationWebsocketStreams,\n MARGIN_TRADING_REST_API_PROD_URL,\n MARGIN_TRADING_WS_STREAMS_PROD_URL,\n} from '@binance/common';\nimport { name, version } from '../package.json';\nimport { RestAPI } from './rest-api';\n\nimport { WebsocketStreams } from './websocket-streams';\n\nexport interface ConfigurationMarginTrading {\n configurationRestAPI?: ConfigurationRestAPI;\n\n configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class MarginTrading {\n public restAPI!: RestAPI;\n\n public websocketStreams!: WebsocketStreams;\n\n constructor(config: ConfigurationMarginTrading) {\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 = configRestAPI.basePath || MARGIN_TRADING_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?.configurationWebsocketStreams) {\n const configWebsocketStreams = new ConfigurationWebsocketStreams(\n config.configurationWebsocketStreams\n ) as ConfigurationWebsocketStreams & {\n userAgent: string;\n };\n configWebsocketStreams.wsURL =\n configWebsocketStreams.wsURL || MARGIN_TRADING_WS_STREAMS_PROD_URL;\n configWebsocketStreams.userAgent = userAgent;\n this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","MARGIN_TRADING_REST_API_PROD_URL","MARGIN_TRADING_WS_STREAMS_PROD_URL"],"sources":["../package.json","../src/rest-api/modules/account-api.ts","../src/rest-api/modules/borrow-repay-api.ts","../src/rest-api/modules/market-data-api.ts","../src/rest-api/modules/risk-data-stream-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/modules/transfer-api.ts","../src/rest-api/rest-api.ts","../src/rest-api/index.ts","../src/websocket-streams/websocket-streams-connection.ts","../src/websocket-streams/websocket-streams.ts","../src/websocket-streams/index.ts","../src/margin-trading.ts"],"sourcesContent":["{\n \"name\": \"@binance/margin-trading\",\n \"description\": \"Official Binance Margin Trading Connector - A lightweight library that provides a convenient interface to Binance's Margin Trading REST API.\",\n \"version\": \"12.0.1\",\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 && tsdown\",\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 \"Margin Trading\",\n \"Connector\",\n \"REST\"\n ],\n \"author\": \"Binance\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/binance/binance-connector-js.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/binance/binance-connector-js/issues\"\n },\n \"homepage\": \"https://github.com/binance/binance-connector-js#readme\",\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 \"json-with-bigint\": \"^3.4.4\",\n \"prettier\": \"^3.3.3\",\n \"ts-jest\": \"^29.1.1\",\n \"ts-node\": \"^10.9.1\",\n \"tsdown\": \"^0.16.5\",\n \"typescript\": \"^5.7.2\",\n \"typescript-eslint\": \"^8.24.0\"\n },\n \"dependencies\": {\n \"@binance/common\": \"2.3.3\",\n \"axios\": \"^1.7.4\"\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 AdjustCrossMarginMaxLeverageResponse,\n DisableIsolatedMarginAccountResponse,\n EnableIsolatedMarginAccountResponse,\n GetBnbBurnStatusResponse,\n GetSummaryOfMarginAccountResponse,\n QueryCrossIsolatedMarginCapitalFlowResponse,\n QueryCrossMarginAccountDetailsResponse,\n QueryCrossMarginFeeDataResponse,\n QueryEnabledIsolatedMarginAccountLimitResponse,\n QueryIsolatedMarginAccountInfoResponse,\n QueryIsolatedMarginFeeDataResponse,\n} from '../types';\n\n/**\n * AccountApi - axios parameter creator\n */\nconst AccountApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {number | bigint} maxLeverage Can only adjust 3 , 5 or 10,Example: maxLeverage = 5 or 3 for Cross Margin Classic; maxLeverage=10 for Cross Margin Pro 10x leverage or 20x if compliance allows.\n *\n * @throws {RequiredError}\n */\n adjustCrossMarginMaxLeverage: async (\n maxLeverage: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'maxLeverage' is not null or undefined\n assertParamExists('adjustCrossMarginMaxLeverage', 'maxLeverage', maxLeverage);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (maxLeverage !== undefined && maxLeverage !== null) {\n localVarQueryParameter['maxLeverage'] = maxLeverage;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/max-leverage',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n disableIsolatedMarginAccount: async (\n symbol: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('disableIsolatedMarginAccount', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/account',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n enableIsolatedMarginAccount: async (\n symbol: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('enableIsolatedMarginAccount', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/account',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getBnbBurnStatus: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/bnbBurn',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSummaryOfMarginAccount: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/tradeCoeff',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {string} [asset]\n * @param {string} [symbol] isolated margin pair\n * @param {string} [type] Transfer Type: ROLL_IN, ROLL_OUT\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossIsolatedMarginCapitalFlow: async (\n asset?: string,\n symbol?: string,\n type?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n fromId?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/capital-flow',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossMarginAccountDetails: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/account',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {string} [coin]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCrossMarginFeeData: async (\n vipLevel?: number | bigint,\n coin?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (coin !== undefined && coin !== null) {\n localVarQueryParameter['coin'] = coin;\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: '/sapi/v1/margin/crossMarginData',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryEnabledIsolatedMarginAccountLimit: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/isolated/accountLimit',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {string} [symbols] Max 5 symbols can be sent; separated by \",\". e.g. \"BTCUSDT,BNBUSDT,ADAUSDT\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginAccountInfo: async (\n symbols?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbols !== undefined && symbols !== null) {\n localVarQueryParameter['symbols'] = symbols;\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: '/sapi/v1/margin/isolated/account',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginFeeData: async (\n vipLevel?: number | bigint,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolatedMarginData',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * AccountApi - interface\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>;\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>;\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>;\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n getBnbBurnStatus(\n requestParameters?: GetBnbBurnStatusRequest\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>>;\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n getSummaryOfMarginAccount(\n requestParameters?: GetSummaryOfMarginAccountRequest\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>;\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossIsolatedMarginCapitalFlow(\n requestParameters?: QueryCrossIsolatedMarginCapitalFlowRequest\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>;\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossMarginAccountDetails(\n requestParameters?: QueryCrossMarginAccountDetailsRequest\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>;\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryCrossMarginFeeData(\n requestParameters?: QueryCrossMarginFeeDataRequest\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>;\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryEnabledIsolatedMarginAccountLimit(\n requestParameters?: QueryEnabledIsolatedMarginAccountLimitRequest\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>;\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryIsolatedMarginAccountInfo(\n requestParameters?: QueryIsolatedMarginAccountInfoRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>;\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApiInterface\n */\n queryIsolatedMarginFeeData(\n requestParameters?: QueryIsolatedMarginFeeDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>;\n}\n\n/**\n * Request parameters for adjustCrossMarginMaxLeverage operation in AccountApi.\n * @interface AdjustCrossMarginMaxLeverageRequest\n */\nexport interface AdjustCrossMarginMaxLeverageRequest {\n /**\n * Can only adjust 3 , 5 or 10,Example: maxLeverage = 5 or 3 for Cross Margin Classic; maxLeverage=10 for Cross Margin Pro 10x leverage or 20x if compliance allows.\n * @type {number | bigint}\n * @memberof AccountApiAdjustCrossMarginMaxLeverage\n */\n readonly maxLeverage: number | bigint;\n}\n\n/**\n * Request parameters for disableIsolatedMarginAccount operation in AccountApi.\n * @interface DisableIsolatedMarginAccountRequest\n */\nexport interface DisableIsolatedMarginAccountRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiDisableIsolatedMarginAccount\n */\n readonly symbol: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiDisableIsolatedMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for enableIsolatedMarginAccount operation in AccountApi.\n * @interface EnableIsolatedMarginAccountRequest\n */\nexport interface EnableIsolatedMarginAccountRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiEnableIsolatedMarginAccount\n */\n readonly symbol: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiEnableIsolatedMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getBnbBurnStatus operation in AccountApi.\n * @interface GetBnbBurnStatusRequest\n */\nexport interface GetBnbBurnStatusRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiGetBnbBurnStatus\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSummaryOfMarginAccount operation in AccountApi.\n * @interface GetSummaryOfMarginAccountRequest\n */\nexport interface GetSummaryOfMarginAccountRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiGetSummaryOfMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossIsolatedMarginCapitalFlow operation in AccountApi.\n * @interface QueryCrossIsolatedMarginCapitalFlowRequest\n */\nexport interface QueryCrossIsolatedMarginCapitalFlowRequest {\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly asset?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly symbol?: string;\n\n /**\n * Transfer Type: ROLL_IN, ROLL_OUT\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly type?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly endTime?: number | bigint;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly fromId?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossMarginAccountDetails operation in AccountApi.\n * @interface QueryCrossMarginAccountDetailsRequest\n */\nexport interface QueryCrossMarginAccountDetailsRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginAccountDetails\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCrossMarginFeeData operation in AccountApi.\n * @interface QueryCrossMarginFeeDataRequest\n */\nexport interface QueryCrossMarginFeeDataRequest {\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly coin?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossMarginFeeData\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryEnabledIsolatedMarginAccountLimit operation in AccountApi.\n * @interface QueryEnabledIsolatedMarginAccountLimitRequest\n */\nexport interface QueryEnabledIsolatedMarginAccountLimitRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryEnabledIsolatedMarginAccountLimit\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginAccountInfo operation in AccountApi.\n * @interface QueryIsolatedMarginAccountInfoRequest\n */\nexport interface QueryIsolatedMarginAccountInfoRequest {\n /**\n * Max 5 symbols can be sent; separated by \",\". e.g. \"BTCUSDT,BNBUSDT,ADAUSDT\"\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly symbols?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginFeeData operation in AccountApi.\n * @interface QueryIsolatedMarginFeeDataRequest\n */\nexport interface QueryIsolatedMarginFeeDataRequest {\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly recvWindow?: number | bigint;\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 * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Adjust-cross-margin-max-leverage Binance API Documentation}\n */\n public async adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.adjustCrossMarginMaxLeverage(\n requestParameters?.maxLeverage\n );\n return sendRequest<AdjustCrossMarginMaxLeverageResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Disable-Isolated-Margin-Account Binance API Documentation}\n */\n public async disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.disableIsolatedMarginAccount(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<DisableIsolatedMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Enable-Isolated-Margin-Account Binance API Documentation}\n */\n public async enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.enableIsolatedMarginAccount(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<EnableIsolatedMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-BNB-Burn-Status Binance API Documentation}\n */\n public async getBnbBurnStatus(\n requestParameters: GetBnbBurnStatusRequest = {}\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getBnbBurnStatus(\n requestParameters?.recvWindow\n );\n return sendRequest<GetBnbBurnStatusResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-Summary-of-Margin-account Binance API Documentation}\n */\n public async getSummaryOfMarginAccount(\n requestParameters: GetSummaryOfMarginAccountRequest = {}\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getSummaryOfMarginAccount(\n requestParameters?.recvWindow\n );\n return sendRequest<GetSummaryOfMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Isolated-Margin-Capital-Flow Binance API Documentation}\n */\n public async queryCrossIsolatedMarginCapitalFlow(\n requestParameters: QueryCrossIsolatedMarginCapitalFlowRequest = {}\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCrossIsolatedMarginCapitalFlow(\n requestParameters?.asset,\n requestParameters?.symbol,\n requestParameters?.type,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.fromId,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossIsolatedMarginCapitalFlowResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Account-Details Binance API Documentation}\n */\n public async queryCrossMarginAccountDetails(\n requestParameters: QueryCrossMarginAccountDetailsRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCrossMarginAccountDetails(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossMarginAccountDetailsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Fee-Data Binance API Documentation}\n */\n public async queryCrossMarginFeeData(\n requestParameters: QueryCrossMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryCrossMarginFeeData(\n requestParameters?.vipLevel,\n requestParameters?.coin,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCrossMarginFeeDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Enabled-Isolated-Margin-Account-Limit Binance API Documentation}\n */\n public async queryEnabledIsolatedMarginAccountLimit(\n requestParameters: QueryEnabledIsolatedMarginAccountLimitRequest = {}\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryEnabledIsolatedMarginAccountLimit(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryEnabledIsolatedMarginAccountLimitResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Account-Info Binance API Documentation}\n */\n public async queryIsolatedMarginAccountInfo(\n requestParameters: QueryIsolatedMarginAccountInfoRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryIsolatedMarginAccountInfo(\n requestParameters?.symbols,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginAccountInfoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof AccountApi\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Fee-Data Binance API Documentation}\n */\n public async queryIsolatedMarginFeeData(\n requestParameters: QueryIsolatedMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryIsolatedMarginFeeData(\n requestParameters?.vipLevel,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginFeeDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 GetFutureHourlyInterestRateResponse,\n GetInterestHistoryResponse,\n MarginAccountBorrowRepayResponse,\n QueryBorrowRepayRecordsInMarginAccountResponse,\n QueryMarginInterestRateHistoryResponse,\n QueryMaxBorrowResponse,\n} from '../types';\n\n/**\n * BorrowRepayApi - axios parameter creator\n */\nconst BorrowRepayApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {string} assets List of assets, separated by commas, up to 20\n * @param {boolean} isIsolated for isolated margin or not, \"TRUE\", \"FALSE\"\n *\n * @throws {RequiredError}\n */\n getFutureHourlyInterestRate: async (\n assets: string,\n isIsolated: boolean\n ): Promise<RequestArgs> => {\n // verify required parameter 'assets' is not null or undefined\n assertParamExists('getFutureHourlyInterestRate', 'assets', assets);\n // verify required parameter 'isIsolated' is not null or undefined\n assertParamExists('getFutureHourlyInterestRate', 'isIsolated', isIsolated);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (assets !== undefined && assets !== null) {\n localVarQueryParameter['assets'] = assets;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/next-hourly-interest-rate',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getInterestHistory: async (\n asset?: string,\n isolatedSymbol?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\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: '/sapi/v1/margin/interestHistory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {string} asset\n * @param {string} isIsolated `TRUE` for Isolated Margin, `FALSE` for Cross Margin, Default `FALSE`\n * @param {string} symbol\n * @param {string} amount\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountBorrowRepay: async (\n asset: string,\n isIsolated: string,\n symbol: string,\n amount: string,\n type: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'asset', asset);\n // verify required parameter 'isIsolated' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'isIsolated', isIsolated);\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'symbol', symbol);\n // verify required parameter 'amount' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'amount', amount);\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginAccountBorrowRepay', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (amount !== undefined && amount !== null) {\n localVarQueryParameter['amount'] = amount;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\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: '/sapi/v1/margin/borrow-repay',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [asset]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [txId] `tranId` in `POST /sapi/v1/margin/loan`\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryBorrowRepayRecordsInMarginAccount: async (\n type: string,\n asset?: string,\n isolatedSymbol?: string,\n txId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('queryBorrowRepayRecordsInMarginAccount', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (txId !== undefined && txId !== null) {\n localVarQueryParameter['txId'] = txId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\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: '/sapi/v1/margin/borrow-repay',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {string} asset\n * @param {number | bigint} [vipLevel] User's current specific margin data will be returned if vipLevel is omitted\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginInterestRateHistory: async (\n asset: string,\n vipLevel?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMarginInterestRateHistory', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (vipLevel !== undefined && vipLevel !== null) {\n localVarQueryParameter['vipLevel'] = vipLevel;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\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: '/sapi/v1/margin/interestRateHistory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMaxBorrow: async (\n asset: string,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMaxBorrow', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/maxBorrowable',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * BorrowRepayApi - interface\n * @interface BorrowRepayApi\n */\nexport interface BorrowRepayApiInterface {\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>;\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n getInterestHistory(\n requestParameters?: GetInterestHistoryRequest\n ): Promise<RestApiResponse<GetInterestHistoryResponse>>;\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>;\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>;\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>;\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApiInterface\n */\n queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>>;\n}\n\n/**\n * Request parameters for getFutureHourlyInterestRate operation in BorrowRepayApi.\n * @interface GetFutureHourlyInterestRateRequest\n */\nexport interface GetFutureHourlyInterestRateRequest {\n /**\n * List of assets, separated by commas, up to 20\n * @type {string}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly assets: string;\n\n /**\n * for isolated margin or not, \"TRUE\", \"FALSE\"\n * @type {boolean}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly isIsolated: boolean;\n}\n\n/**\n * Request parameters for getInterestHistory operation in BorrowRepayApi.\n * @interface GetInterestHistoryRequest\n */\nexport interface GetInterestHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly asset?: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountBorrowRepay operation in BorrowRepayApi.\n * @interface MarginAccountBorrowRepayRequest\n */\nexport interface MarginAccountBorrowRepayRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly asset: string;\n\n /**\n * `TRUE` for Isolated Margin, `FALSE` for Cross Margin, Default `FALSE`\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly isIsolated: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly symbol: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly amount: string;\n\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly type: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryBorrowRepayRecordsInMarginAccount operation in BorrowRepayApi.\n * @interface QueryBorrowRepayRecordsInMarginAccountRequest\n */\nexport interface QueryBorrowRepayRecordsInMarginAccountRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly type: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly asset?: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly isolatedSymbol?: string;\n\n /**\n * `tranId` in `POST /sapi/v1/margin/loan`\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly txId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginInterestRateHistory operation in BorrowRepayApi.\n * @interface QueryMarginInterestRateHistoryRequest\n */\nexport interface QueryMarginInterestRateHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly asset: string;\n\n /**\n * User's current specific margin data will be returned if vipLevel is omitted\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly vipLevel?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMaxBorrow operation in BorrowRepayApi.\n * @interface QueryMaxBorrowRequest\n */\nexport interface QueryMaxBorrowRequest {\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly asset: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * BorrowRepayApi - object-oriented interface\n * @class BorrowRepayApi\n */\nexport class BorrowRepayApi implements BorrowRepayApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = BorrowRepayApiAxiosParamCreator(configuration);\n }\n\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-a-future-hourly-interest-rate Binance API Documentation}\n */\n public async getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getFutureHourlyInterestRate(\n requestParameters?.assets,\n requestParameters?.isIsolated\n );\n return sendRequest<GetFutureHourlyInterestRateResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetInterestHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-Interest-History Binance API Documentation}\n */\n public async getInterestHistory(\n requestParameters: GetInterestHistoryRequest = {}\n ): Promise<RestApiResponse<GetInterestHistoryResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getInterestHistory(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<GetInterestHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Margin-account-borrow-repay Binance API Documentation}\n */\n public async marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountBorrowRepay(\n requestParameters?.asset,\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.amount,\n requestParameters?.type,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountBorrowRepayResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Borrow-Repay Binance API Documentation}\n */\n public async queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryBorrowRepayRecordsInMarginAccount(\n requestParameters?.type,\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.txId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryBorrowRepayRecordsInMarginAccountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Margin-Interest-Rate-History Binance API Documentation}\n */\n public async queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginInterestRateHistory(\n requestParameters?.asset,\n requestParameters?.vipLevel,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginInterestRateHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMaxBorrowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof BorrowRepayApi\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Max-Borrow Binance API Documentation}\n */\n public async queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMaxBorrow(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMaxBorrowResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 CrossMarginCollateralRatioResponse,\n GetAllCrossMarginPairsResponse,\n GetAllIsolatedMarginSymbolResponse,\n GetAllMarginAssetsResponse,\n GetDelistScheduleResponse,\n GetLimitPricePairsResponse,\n GetListScheduleResponse,\n GetMarginAssetRiskBasedLiquidationRatioResponse,\n GetMarginRestrictedAssetsResponse,\n QueryIsolatedMarginTierDataResponse,\n QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse,\n QueryMarginAvailableInventoryResponse,\n QueryMarginPriceindexResponse,\n} from '../types';\n\n/**\n * MarketDataApi - axios parameter creator\n */\nconst MarketDataApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n crossMarginCollateralRatio: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/crossMarginCollateralRatio',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {string} [symbol] isolated margin pair\n *\n * @throws {RequiredError}\n */\n getAllCrossMarginPairs: async (symbol?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/allPairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getAllIsolatedMarginSymbol: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/isolated/allPairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {string} [asset]\n *\n * @throws {RequiredError}\n */\n getAllMarginAssets: async (asset?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/allAssets',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getDelistSchedule: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/delist-schedule',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n getLimitPricePairs: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/limit-price-pairs',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getListSchedule: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/list-schedule',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n getMarginAssetRiskBasedLiquidationRatio: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/risk-based-liquidation-ratio',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Margin Restricted Assets\n *\n * Weight: 1\n *\n * @summary Get Margin Restricted Assets (MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n getMarginRestrictedAssets: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/restricted-asset',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {string} symbol\n * @param {number | bigint} [tier] All margin tier data will be returned if tier is omitted\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryIsolatedMarginTierData: async (\n symbol: string,\n tier?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryIsolatedMarginTierData', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (tier !== undefined && tier !== null) {\n localVarQueryParameter['tier'] = tier;\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: '/sapi/v1/margin/isolatedMarginTier',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @throws {RequiredError}\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode: async (): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/leverageBracket',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {string} type `MARGIN`,`ISOLATED`\n *\n * @throws {RequiredError}\n */\n queryMarginAvailableInventory: async (type: string): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('queryMarginAvailableInventory', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/available-inventory',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {string} symbol\n *\n * @throws {RequiredError}\n */\n queryMarginPriceindex: async (symbol: string): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginPriceindex', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/priceIndex',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * MarketDataApi - interface\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n crossMarginCollateralRatio(): Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>;\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllCrossMarginPairs(\n requestParameters?: GetAllCrossMarginPairsRequest\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>;\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllIsolatedMarginSymbol(\n requestParameters?: GetAllIsolatedMarginSymbolRequest\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>;\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getAllMarginAssets(\n requestParameters?: GetAllMarginAssetsRequest\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>>;\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getDelistSchedule(\n requestParameters?: GetDelistScheduleRequest\n ): Promise<RestApiResponse<GetDelistScheduleResponse>>;\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>>;\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getListSchedule(\n requestParameters?: GetListScheduleRequest\n ): Promise<RestApiResponse<GetListScheduleResponse>>;\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n >;\n /**\n * Get Margin Restricted Assets\n *\n * Weight: 1\n *\n * @summary Get Margin Restricted Assets (MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n getMarginRestrictedAssets(): Promise<RestApiResponse<GetMarginRestrictedAssetsResponse>>;\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>;\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n >;\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>;\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>>;\n}\n\n/**\n * Request parameters for getAllCrossMarginPairs operation in MarketDataApi.\n * @interface GetAllCrossMarginPairsRequest\n */\nexport interface GetAllCrossMarginPairsRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof MarketDataApiGetAllCrossMarginPairs\n */\n readonly symbol?: string;\n}\n\n/**\n * Request parameters for getAllIsolatedMarginSymbol operation in MarketDataApi.\n * @interface GetAllIsolatedMarginSymbolRequest\n */\nexport interface GetAllIsolatedMarginSymbolRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getAllMarginAssets operation in MarketDataApi.\n * @interface GetAllMarginAssetsRequest\n */\nexport interface GetAllMarginAssetsRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiGetAllMarginAssets\n */\n readonly asset?: string;\n}\n\n/**\n * Request parameters for getDelistSchedule operation in MarketDataApi.\n * @interface GetDelistScheduleRequest\n */\nexport interface GetDelistScheduleRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetDelistSchedule\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getListSchedule operation in MarketDataApi.\n * @interface GetListScheduleRequest\n */\nexport interface GetListScheduleRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiGetListSchedule\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryIsolatedMarginTierData operation in MarketDataApi.\n * @interface QueryIsolatedMarginTierDataRequest\n */\nexport interface QueryIsolatedMarginTierDataRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly symbol: string;\n\n /**\n * All margin tier data will be returned if tier is omitted\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly tier?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAvailableInventory operation in MarketDataApi.\n * @interface QueryMarginAvailableInventoryRequest\n */\nexport interface QueryMarginAvailableInventoryRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof MarketDataApiQueryMarginAvailableInventory\n */\n readonly type: string;\n}\n\n/**\n * Request parameters for queryMarginPriceindex operation in MarketDataApi.\n * @interface QueryMarginPriceindexRequest\n */\nexport interface QueryMarginPriceindexRequest {\n /**\n *\n * @type {string}\n * @memberof MarketDataApiQueryMarginPriceindex\n */\n readonly symbol: string;\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 * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n * @returns {Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Cross-margin-collateral-ratio Binance API Documentation}\n */\n public async crossMarginCollateralRatio(): Promise<\n RestApiResponse<CrossMarginCollateralRatioResponse>\n > {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.crossMarginCollateralRatio();\n return sendRequest<CrossMarginCollateralRatioResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Cross-Margin-Pairs Binance API Documentation}\n */\n public async getAllCrossMarginPairs(\n requestParameters: GetAllCrossMarginPairsRequest = {}\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllCrossMarginPairs(\n requestParameters?.symbol\n );\n return sendRequest<GetAllCrossMarginPairsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Isolated-Margin-Symbol Binance API Documentation}\n */\n public async getAllIsolatedMarginSymbol(\n requestParameters: GetAllIsolatedMarginSymbolRequest = {}\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllIsolatedMarginSymbol(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<GetAllIsolatedMarginSymbolResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetAllMarginAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Margin-Assets Binance API Documentation}\n */\n public async getAllMarginAssets(\n requestParameters: GetAllMarginAssetsRequest = {}\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAllMarginAssets(\n requestParameters?.asset\n );\n return sendRequest<GetAllMarginAssetsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetDelistScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Delist-Schedule Binance API Documentation}\n */\n public async getDelistSchedule(\n requestParameters: GetDelistScheduleRequest = {}\n ): Promise<RestApiResponse<GetDelistScheduleResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getDelistSchedule(\n requestParameters?.recvWindow\n );\n return sendRequest<GetDelistScheduleResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n * @returns {Promise<RestApiResponse<GetLimitPricePairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Limit-Price-Pairs Binance API Documentation}\n */\n public async getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getLimitPricePairs();\n return sendRequest<GetLimitPricePairsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetListScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-list-Schedule Binance API Documentation}\n */\n public async getListSchedule(\n requestParameters: GetListScheduleRequest = {}\n ): Promise<RestApiResponse<GetListScheduleResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getListSchedule(\n requestParameters?.recvWindow\n );\n return sendRequest<GetListScheduleResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n * @returns {Promise<RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Asset-Risk-Based-Liquidation-Ratio Binance API Documentation}\n */\n public async getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n > {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getMarginAssetRiskBasedLiquidationRatio();\n return sendRequest<GetMarginAssetRiskBasedLiquidationRatioResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get Margin Restricted Assets\n *\n * Weight: 1\n *\n * @summary Get Margin Restricted Assets (MARKET_DATA)\n * @returns {Promise<RestApiResponse<GetMarginRestrictedAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Restricted-Assets Binance API Documentation}\n */\n public async getMarginRestrictedAssets(): Promise<\n RestApiResponse<GetMarginRestrictedAssetsResponse>\n > {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getMarginRestrictedAssets();\n return sendRequest<GetMarginRestrictedAssetsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Isolated-Margin-Tier-Data Binance API Documentation}\n */\n public async queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryIsolatedMarginTierData(\n requestParameters?.symbol,\n requestParameters?.tier,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryIsolatedMarginTierDataResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n * @returns {Promise<RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Liability-Coin-Leverage-Bracket-in-Cross-Margin-Pro-Mode Binance API Documentation}\n */\n public async queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n > {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryLiabilityCoinLeverageBracketInCrossMarginProMode();\n return sendRequest<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-margin-avaliable-inventory Binance API Documentation}\n */\n public async queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginAvailableInventory(\n requestParameters?.type\n );\n return sendRequest<QueryMarginAvailableInventoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginPriceindexResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Margin-PriceIndex Binance API Documentation}\n */\n public async queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginPriceindex(\n requestParameters?.symbol\n );\n return sendRequest<QueryMarginPriceindexResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 { StartUserDataStreamResponse } from '../types';\n\n/**\n * RiskDataStreamApi - axios parameter creator\n */\nconst RiskDataStreamApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\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 const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {string} listenKey\n *\n * @throws {RequiredError}\n */\n keepaliveUserDataStream: async (listenKey: string): Promise<RequestArgs> => {\n // verify required parameter 'listenKey' is not null or undefined\n assertParamExists('keepaliveUserDataStream', 'listenKey', listenKey);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (listenKey !== undefined && listenKey !== null) {\n localVarQueryParameter['listenKey'] = listenKey;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'PUT',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Start a new user data stream.\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 const localVarBodyParameter: Record<string, unknown> = {};\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/listen-key',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * RiskDataStreamApi - interface\n * @interface RiskDataStreamApi\n */\nexport interface RiskDataStreamApiInterface {\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApiInterface\n */\n closeUserDataStream(): Promise<RestApiResponse<void>>;\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApiInterface\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Start a new user data stream.\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 RiskDataStreamApiInterface\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * Request parameters for keepaliveUserDataStream operation in RiskDataStreamApi.\n * @interface KeepaliveUserDataStreamRequest\n */\nexport interface KeepaliveUserDataStreamRequest {\n /**\n *\n * @type {string}\n * @memberof RiskDataStreamApiKeepaliveUserDataStream\n */\n readonly listenKey: string;\n}\n\n/**\n * RiskDataStreamApi - object-oriented interface\n * @class RiskDataStreamApi\n */\nexport class RiskDataStreamApi implements RiskDataStreamApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = RiskDataStreamApiAxiosParamCreator(configuration);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\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 RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/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.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<void>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/Keepalive-User-Data-Stream Binance API Documentation}\n */\n public async keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.keepaliveUserDataStream(\n requestParameters?.listenKey\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Start a new user data stream.\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 RiskDataStreamApi\n * @see {@link https://developers.binance.com/docs/margin_trading/risk-data-stream/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.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryMarginAccountsAllOcoResponse,\n QueryMarginAccountsAllOrdersResponse,\n QueryMarginAccountsOcoResponse,\n QueryMarginAccountsOpenOcoResponse,\n QueryMarginAccountsOpenOrdersResponse,\n QueryMarginAccountsOrderResponse,\n QueryMarginAccountsTradeListResponse,\n QueryPreventedMatchesResponse,\n QuerySpecialKeyListResponse,\n QuerySpecialKeyResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {string} apiName\n * @param {string} [symbol] isolated margin pair\n * @param {string} [ip] Can be added in batches, separated by commas. Max 30 for an API key\n * @param {string} [publicKey] 1. If publicKey is inputted it will create an RSA or Ed25519 key. <br />2. Need to be encoded to URL-encoded format\n * @param {string} [permissionMode] This parameter is only for the Ed25519 API key, and does not effact for other encryption methods. The value can be TRADE (TRADE for all permissions) or READ (READ for USER_DATA, FIX_API_READ_ONLY). The default value is TRADE.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n createSpecialKey: async (\n apiName: string,\n symbol?: string,\n ip?: string,\n publicKey?: string,\n permissionMode?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'apiName' is not null or undefined\n assertParamExists('createSpecialKey', 'apiName', apiName);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (apiName !== undefined && apiName !== null) {\n localVarQueryParameter['apiName'] = apiName;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (ip !== undefined && ip !== null) {\n localVarQueryParameter['ip'] = ip;\n }\n if (publicKey !== undefined && publicKey !== null) {\n localVarQueryParameter['publicKey'] = publicKey;\n }\n if (permissionMode !== undefined && permissionMode !== null) {\n localVarQueryParameter['permissionMode'] = permissionMode;\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: '/sapi/v1/margin/apiKey',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {string} [apiName]\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n deleteSpecialKey: async (\n apiName?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (apiName !== undefined && apiName !== null) {\n localVarQueryParameter['apiName'] = apiName;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/apiKey',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {string} ip Can be added in batches, separated by commas. Max 30 for an API key\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n editIpForSpecialKey: async (\n ip: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'ip' is not null or undefined\n assertParamExists('editIpForSpecialKey', 'ip', ip);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (ip !== undefined && ip !== null) {\n localVarQueryParameter['ip'] = ip;\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: '/sapi/v1/margin/apiKey/ip',\n method: 'PUT',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getForceLiquidationRecord: async (\n startTime?: number | bigint,\n endTime?: number | bigint,\n isolatedSymbol?: string,\n current?: number | bigint,\n size?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\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: '/sapi/v1/margin/forceLiquidationRec',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSmallLiabilityExchangeCoinList: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: 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: '/sapi/v1/margin/exchange-small-liability',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {number | bigint} current Currently querying page. Start from 1. Default:1\n * @param {number | bigint} size Default:10, Max:100\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getSmallLiabilityExchangeHistory: async (\n current: number | bigint,\n size: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'current' is not null or undefined\n assertParamExists('getSmallLiabilityExchangeHistory', 'current', current);\n // verify required parameter 'size' is not null or undefined\n assertParamExists('getSmallLiabilityExchangeHistory', 'size', size);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\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: '/sapi/v1/margin/exchange-small-liability-history',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelAllOpenOrdersOnASymbol: async (\n symbol: string,\n isIsolated?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelAllOpenOrdersOnASymbol', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\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: '/sapi/v1/margin/openOrders',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [orderListId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOco: async (\n symbol: string,\n isIsolated?: string,\n orderListId?: number | bigint,\n listClientOrderId?: string,\n newClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelOco', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderListId !== undefined && orderListId !== null) {\n localVarQueryParameter['orderListId'] = orderListId;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\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: '/sapi/v1/margin/orderList',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOrder: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n origClientOrderId?: string,\n newClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountCancelOrder', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\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: '/sapi/v1/margin/order',\n method: 'DELETE',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOcoSideEnum} side\n * @param {number} quantity\n * @param {number} price\n * @param {number} stopPrice\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [limitClientOrderId] A unique Id for the limit order\n * @param {number} [limitIcebergQty]\n * @param {string} [stopClientOrderId] A unique Id for the stop loss/stop loss limit leg\n * @param {number} [stopLimitPrice] If provided, `stopLimitTimeInForce` is required.\n * @param {number} [stopIcebergQty]\n * @param {string} [stopLimitTimeInForce] Valid values are `GTC`/`FOK`/`IOC`\n * @param {MarginAccountNewOcoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountNewOco: async (\n symbol: string,\n side: MarginAccountNewOcoSideEnum,\n quantity: number,\n price: number,\n stopPrice: number,\n isIsolated?: string,\n listClientOrderId?: string,\n limitClientOrderId?: string,\n limitIcebergQty?: number,\n stopClientOrderId?: string,\n stopLimitPrice?: number,\n stopIcebergQty?: number,\n stopLimitTimeInForce?: string,\n newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum,\n sideEffectType?: string,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOco', 'symbol', symbol);\n // verify required parameter 'side' is not null or undefined\n assertParamExists('marginAccountNewOco', 'side', side);\n // verify required parameter 'quantity' is not null or undefined\n assertParamExists('marginAccountNewOco', 'quantity', quantity);\n // verify required parameter 'price' is not null or undefined\n assertParamExists('marginAccountNewOco', 'price', price);\n // verify required parameter 'stopPrice' is not null or undefined\n assertParamExists('marginAccountNewOco', 'stopPrice', stopPrice);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (side !== undefined && side !== null) {\n localVarQueryParameter['side'] = side;\n }\n if (quantity !== undefined && quantity !== null) {\n localVarQueryParameter['quantity'] = quantity;\n }\n if (limitClientOrderId !== undefined && limitClientOrderId !== null) {\n localVarQueryParameter['limitClientOrderId'] = limitClientOrderId;\n }\n if (price !== undefined && price !== null) {\n localVarQueryParameter['price'] = price;\n }\n if (limitIcebergQty !== undefined && limitIcebergQty !== null) {\n localVarQueryParameter['limitIcebergQty'] = limitIcebergQty;\n }\n if (stopClientOrderId !== undefined && stopClientOrderId !== null) {\n localVarQueryParameter['stopClientOrderId'] = stopClientOrderId;\n }\n if (stopPrice !== undefined && stopPrice !== null) {\n localVarQueryParameter['stopPrice'] = stopPrice;\n }\n if (stopLimitPrice !== undefined && stopLimitPrice !== null) {\n localVarQueryParameter['stopLimitPrice'] = stopLimitPrice;\n }\n if (stopIcebergQty !== undefined && stopIcebergQty !== null) {\n localVarQueryParameter['stopIcebergQty'] = stopIcebergQty;\n }\n if (stopLimitTimeInForce !== undefined && stopLimitTimeInForce !== null) {\n localVarQueryParameter['stopLimitTimeInForce'] = stopLimitTimeInForce;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\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: '/sapi/v1/margin/order/oco',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOrderSideEnum} side\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number} [quantity]\n * @param {number} [quoteOrderQty]\n * @param {number} [price]\n * @param {number} [stopPrice] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default\n * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @param {MarginAccountNewOrderNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {MarginAccountNewOrderTimeInForceEnum} [timeInForce] GTC,IOC,FOK\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginAccountNewOrder: async (\n symbol: string,\n side: MarginAccountNewOrderSideEnum,\n type: string,\n isIsolated?: string,\n quantity?: number,\n quoteOrderQty?: number,\n price?: number,\n stopPrice?: number,\n newClientOrderId?: string,\n icebergQty?: number,\n newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum,\n sideEffectType?: string,\n timeInForce?: MarginAccountNewOrderTimeInForceEnum,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'symbol', symbol);\n // verify required parameter 'side' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'side', side);\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginAccountNewOrder', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (side !== undefined && side !== null) {\n localVarQueryParameter['side'] = side;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (quantity !== undefined && quantity !== null) {\n localVarQueryParameter['quantity'] = quantity;\n }\n if (quoteOrderQty !== undefined && quoteOrderQty !== null) {\n localVarQueryParameter['quoteOrderQty'] = quoteOrderQty;\n }\n if (price !== undefined && price !== null) {\n localVarQueryParameter['price'] = price;\n }\n if (stopPrice !== undefined && stopPrice !== null) {\n localVarQueryParameter['stopPrice'] = stopPrice;\n }\n if (newClientOrderId !== undefined && newClientOrderId !== null) {\n localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n }\n if (icebergQty !== undefined && icebergQty !== null) {\n localVarQueryParameter['icebergQty'] = icebergQty;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (timeInForce !== undefined && timeInForce !== null) {\n localVarQueryParameter['timeInForce'] = timeInForce;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\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: '/sapi/v1/margin/order',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {string} symbol\n * @param {string} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n * @param {string} workingSide BUY, SELL\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {number} workingIcebergQty This can only be used if `workingTimeInForce` is `GTC`.\n * @param {string} pendingType Supported values: [Order Types](https://developers.binance.com/docs/binance-spot-api-docs/enums#order-types-ordertypes-type) Note that `MARKET` orders using `quoteOrderQty` are not supported.\n * @param {string} pendingSide BUY, SELL\n * @param {number} pendingQuantity\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {MarginAccountNewOtoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {string} [workingTimeInForce] GTC,IOC,FOK\n * @param {string} [pendingClientOrderId] Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n * @param {number} [pendingPrice]\n * @param {number} [pendingStopPrice]\n * @param {number} [pendingTrailingDelta]\n * @param {number} [pendingIcebergQty] This can only be used if `pendingTimeInForce` is `GTC`.\n * @param {string} [pendingTimeInForce] GTC,IOC,FOK\n *\n * @throws {RequiredError}\n */\n marginAccountNewOto: async (\n symbol: string,\n workingType: string,\n workingSide: string,\n workingPrice: number,\n workingQuantity: number,\n workingIcebergQty: number,\n pendingType: string,\n pendingSide: string,\n pendingQuantity: number,\n isIsolated?: string,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum,\n sideEffectType?: string,\n selfTradePreventionMode?: string,\n autoRepayAtCancel?: boolean,\n workingClientOrderId?: string,\n workingTimeInForce?: string,\n pendingClientOrderId?: string,\n pendingPrice?: number,\n pendingStopPrice?: number,\n pendingTrailingDelta?: number,\n pendingIcebergQty?: number,\n pendingTimeInForce?: string\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOto', 'symbol', symbol);\n // verify required parameter 'workingType' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingType', workingType);\n // verify required parameter 'workingSide' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingSide', workingSide);\n // verify required parameter 'workingPrice' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingPrice', workingPrice);\n // verify required parameter 'workingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingQuantity', workingQuantity);\n // verify required parameter 'workingIcebergQty' is not null or undefined\n assertParamExists('marginAccountNewOto', 'workingIcebergQty', workingIcebergQty);\n // verify required parameter 'pendingType' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingType', pendingType);\n // verify required parameter 'pendingSide' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingSide', pendingSide);\n // verify required parameter 'pendingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOto', 'pendingQuantity', pendingQuantity);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\n }\n if (workingType !== undefined && workingType !== null) {\n localVarQueryParameter['workingType'] = workingType;\n }\n if (workingSide !== undefined && workingSide !== null) {\n localVarQueryParameter['workingSide'] = workingSide;\n }\n if (workingClientOrderId !== undefined && workingClientOrderId !== null) {\n localVarQueryParameter['workingClientOrderId'] = workingClientOrderId;\n }\n if (workingPrice !== undefined && workingPrice !== null) {\n localVarQueryParameter['workingPrice'] = workingPrice;\n }\n if (workingQuantity !== undefined && workingQuantity !== null) {\n localVarQueryParameter['workingQuantity'] = workingQuantity;\n }\n if (workingIcebergQty !== undefined && workingIcebergQty !== null) {\n localVarQueryParameter['workingIcebergQty'] = workingIcebergQty;\n }\n if (workingTimeInForce !== undefined && workingTimeInForce !== null) {\n localVarQueryParameter['workingTimeInForce'] = workingTimeInForce;\n }\n if (pendingType !== undefined && pendingType !== null) {\n localVarQueryParameter['pendingType'] = pendingType;\n }\n if (pendingSide !== undefined && pendingSide !== null) {\n localVarQueryParameter['pendingSide'] = pendingSide;\n }\n if (pendingClientOrderId !== undefined && pendingClientOrderId !== null) {\n localVarQueryParameter['pendingClientOrderId'] = pendingClientOrderId;\n }\n if (pendingPrice !== undefined && pendingPrice !== null) {\n localVarQueryParameter['pendingPrice'] = pendingPrice;\n }\n if (pendingStopPrice !== undefined && pendingStopPrice !== null) {\n localVarQueryParameter['pendingStopPrice'] = pendingStopPrice;\n }\n if (pendingTrailingDelta !== undefined && pendingTrailingDelta !== null) {\n localVarQueryParameter['pendingTrailingDelta'] = pendingTrailingDelta;\n }\n if (pendingQuantity !== undefined && pendingQuantity !== null) {\n localVarQueryParameter['pendingQuantity'] = pendingQuantity;\n }\n if (pendingIcebergQty !== undefined && pendingIcebergQty !== null) {\n localVarQueryParameter['pendingIcebergQty'] = pendingIcebergQty;\n }\n if (pendingTimeInForce !== undefined && pendingTimeInForce !== null) {\n localVarQueryParameter['pendingTimeInForce'] = pendingTimeInForce;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/order/oto',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {string} symbol\n * @param {string} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n * @param {string} workingSide BUY, SELL\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {string} pendingSide BUY, SELL\n * @param {number} pendingQuantity\n * @param {string} pendingAboveType Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [sideEffectType] NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {MarginAccountNewOtocoNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {string} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {number} [workingIcebergQty] This can only be used if `workingTimeInForce` is `GTC`.\n * @param {string} [workingTimeInForce] GTC,IOC,FOK\n * @param {string} [pendingAboveClientOrderId] Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n * @param {number} [pendingAbovePrice]\n * @param {number} [pendingAboveStopPrice]\n * @param {number} [pendingAboveTrailingDelta]\n * @param {number} [pendingAboveIcebergQty] This can only be used if `pendingAboveTimeInForce` is `GTC`.\n * @param {string} [pendingAboveTimeInForce]\n * @param {string} [pendingBelowType] Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @param {string} [pendingBelowClientOrderId] Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n * @param {number} [pendingBelowPrice]\n * @param {number} [pendingBelowStopPrice]\n * @param {number} [pendingBelowTrailingDelta]\n * @param {number} [pendingBelowIcebergQty] This can only be used if `pendingBelowTimeInForce` is `GTC`.\n * @param {string} [pendingBelowTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOtoco: async (\n symbol: string,\n workingType: string,\n workingSide: string,\n workingPrice: number,\n workingQuantity: number,\n pendingSide: string,\n pendingQuantity: number,\n pendingAboveType: string,\n isIsolated?: string,\n sideEffectType?: string,\n autoRepayAtCancel?: boolean,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum,\n selfTradePreventionMode?: string,\n workingClientOrderId?: string,\n workingIcebergQty?: number,\n workingTimeInForce?: string,\n pendingAboveClientOrderId?: string,\n pendingAbovePrice?: number,\n pendingAboveStopPrice?: number,\n pendingAboveTrailingDelta?: number,\n pendingAboveIcebergQty?: number,\n pendingAboveTimeInForce?: string,\n pendingBelowType?: string,\n pendingBelowClientOrderId?: string,\n pendingBelowPrice?: number,\n pendingBelowStopPrice?: number,\n pendingBelowTrailingDelta?: number,\n pendingBelowIcebergQty?: number,\n pendingBelowTimeInForce?: string\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'symbol', symbol);\n // verify required parameter 'workingType' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingType', workingType);\n // verify required parameter 'workingSide' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingSide', workingSide);\n // verify required parameter 'workingPrice' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingPrice', workingPrice);\n // verify required parameter 'workingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'workingQuantity', workingQuantity);\n // verify required parameter 'pendingSide' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingSide', pendingSide);\n // verify required parameter 'pendingQuantity' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingQuantity', pendingQuantity);\n // verify required parameter 'pendingAboveType' is not null or undefined\n assertParamExists('marginAccountNewOtoco', 'pendingAboveType', pendingAboveType);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (sideEffectType !== undefined && sideEffectType !== null) {\n localVarQueryParameter['sideEffectType'] = sideEffectType;\n }\n if (autoRepayAtCancel !== undefined && autoRepayAtCancel !== null) {\n localVarQueryParameter['autoRepayAtCancel'] = autoRepayAtCancel;\n }\n if (listClientOrderId !== undefined && listClientOrderId !== null) {\n localVarQueryParameter['listClientOrderId'] = listClientOrderId;\n }\n if (newOrderRespType !== undefined && newOrderRespType !== null) {\n localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n }\n if (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n }\n if (workingType !== undefined && workingType !== null) {\n localVarQueryParameter['workingType'] = workingType;\n }\n if (workingSide !== undefined && workingSide !== null) {\n localVarQueryParameter['workingSide'] = workingSide;\n }\n if (workingClientOrderId !== undefined && workingClientOrderId !== null) {\n localVarQueryParameter['workingClientOrderId'] = workingClientOrderId;\n }\n if (workingPrice !== undefined && workingPrice !== null) {\n localVarQueryParameter['workingPrice'] = workingPrice;\n }\n if (workingQuantity !== undefined && workingQuantity !== null) {\n localVarQueryParameter['workingQuantity'] = workingQuantity;\n }\n if (workingIcebergQty !== undefined && workingIcebergQty !== null) {\n localVarQueryParameter['workingIcebergQty'] = workingIcebergQty;\n }\n if (workingTimeInForce !== undefined && workingTimeInForce !== null) {\n localVarQueryParameter['workingTimeInForce'] = workingTimeInForce;\n }\n if (pendingSide !== undefined && pendingSide !== null) {\n localVarQueryParameter['pendingSide'] = pendingSide;\n }\n if (pendingQuantity !== undefined && pendingQuantity !== null) {\n localVarQueryParameter['pendingQuantity'] = pendingQuantity;\n }\n if (pendingAboveType !== undefined && pendingAboveType !== null) {\n localVarQueryParameter['pendingAboveType'] = pendingAboveType;\n }\n if (pendingAboveClientOrderId !== undefined && pendingAboveClientOrderId !== null) {\n localVarQueryParameter['pendingAboveClientOrderId'] = pendingAboveClientOrderId;\n }\n if (pendingAbovePrice !== undefined && pendingAbovePrice !== null) {\n localVarQueryParameter['pendingAbovePrice'] = pendingAbovePrice;\n }\n if (pendingAboveStopPrice !== undefined && pendingAboveStopPrice !== null) {\n localVarQueryParameter['pendingAboveStopPrice'] = pendingAboveStopPrice;\n }\n if (pendingAboveTrailingDelta !== undefined && pendingAboveTrailingDelta !== null) {\n localVarQueryParameter['pendingAboveTrailingDelta'] = pendingAboveTrailingDelta;\n }\n if (pendingAboveIcebergQty !== undefined && pendingAboveIcebergQty !== null) {\n localVarQueryParameter['pendingAboveIcebergQty'] = pendingAboveIcebergQty;\n }\n if (pendingAboveTimeInForce !== undefined && pendingAboveTimeInForce !== null) {\n localVarQueryParameter['pendingAboveTimeInForce'] = pendingAboveTimeInForce;\n }\n if (pendingBelowType !== undefined && pendingBelowType !== null) {\n localVarQueryParameter['pendingBelowType'] = pendingBelowType;\n }\n if (pendingBelowClientOrderId !== undefined && pendingBelowClientOrderId !== null) {\n localVarQueryParameter['pendingBelowClientOrderId'] = pendingBelowClientOrderId;\n }\n if (pendingBelowPrice !== undefined && pendingBelowPrice !== null) {\n localVarQueryParameter['pendingBelowPrice'] = pendingBelowPrice;\n }\n if (pendingBelowStopPrice !== undefined && pendingBelowStopPrice !== null) {\n localVarQueryParameter['pendingBelowStopPrice'] = pendingBelowStopPrice;\n }\n if (pendingBelowTrailingDelta !== undefined && pendingBelowTrailingDelta !== null) {\n localVarQueryParameter['pendingBelowTrailingDelta'] = pendingBelowTrailingDelta;\n }\n if (pendingBelowIcebergQty !== undefined && pendingBelowIcebergQty !== null) {\n localVarQueryParameter['pendingBelowIcebergQty'] = pendingBelowIcebergQty;\n }\n if (pendingBelowTimeInForce !== undefined && pendingBelowTimeInForce !== null) {\n localVarQueryParameter['pendingBelowTimeInForce'] = pendingBelowTimeInForce;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/order/otoco',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {string} type `MARGIN`,`ISOLATED`\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n marginManualLiquidation: async (\n type: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'type' is not null or undefined\n assertParamExists('marginManualLiquidation', 'type', type);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/manual-liquidation',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryCurrentMarginOrderCountUsage: async (\n isIsolated?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/rateLimit/order',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOco: async (\n isIsolated?: string,\n symbol?: string,\n fromId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/allOrderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOrders: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsAllOrders', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/allOrders',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [orderListId] Either `orderListId` or `listClientOrderId` must be provided\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOco: async (\n isIsolated?: string,\n symbol?: string,\n orderListId?: number | bigint,\n origClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (orderListId !== undefined && orderListId !== null) {\n localVarQueryParameter['orderListId'] = orderListId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\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: '/sapi/v1/margin/orderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOco: async (\n isIsolated?: string,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/openOrderList',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOrders: async (\n symbol?: string,\n isIsolated?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\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: '/sapi/v1/margin/openOrders',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOrder: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n origClientOrderId?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsOrder', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (origClientOrderId !== undefined && origClientOrderId !== null) {\n localVarQueryParameter['origClientOrderId'] = origClientOrderId;\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: '/sapi/v1/margin/order',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {string} symbol\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId] If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @param {number | bigint} [limit] Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsTradeList: async (\n symbol: string,\n isIsolated?: string,\n orderId?: number | bigint,\n startTime?: number | bigint,\n endTime?: number | bigint,\n fromId?: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryMarginAccountsTradeList', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (fromId !== undefined && fromId !== null) {\n localVarQueryParameter['fromId'] = fromId;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\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: '/sapi/v1/margin/myTrades',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n *\n * Weight: 10(IP)\n *\n * @summary Query Prevented Matches(USER_DATA)\n * @param {string} symbol\n * @param {number | bigint} [preventedMatchId]\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [fromPreventedMatchId]\n * @param {number | bigint} [recvWindow] No more than 60000\n * @param {string} [isIsolated] For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n *\n * @throws {RequiredError}\n */\n queryPreventedMatches: async (\n symbol: string,\n preventedMatchId?: number | bigint,\n orderId?: number | bigint,\n fromPreventedMatchId?: number | bigint,\n recvWindow?: number | bigint,\n isIsolated?: string\n ): Promise<RequestArgs> => {\n // verify required parameter 'symbol' is not null or undefined\n assertParamExists('queryPreventedMatches', 'symbol', symbol);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\n }\n if (preventedMatchId !== undefined && preventedMatchId !== null) {\n localVarQueryParameter['preventedMatchId'] = preventedMatchId;\n }\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (fromPreventedMatchId !== undefined && fromPreventedMatchId !== null) {\n localVarQueryParameter['fromPreventedMatchId'] = fromPreventedMatchId;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n if (isIsolated !== undefined && isIsolated !== null) {\n localVarQueryParameter['isIsolated'] = isIsolated;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/margin/myPreventedMatches',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n querySpecialKey: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/apiKey',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {string} [symbol] isolated margin pair\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n querySpecialKeyList: async (\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (symbol !== undefined && symbol !== null) {\n localVarQueryParameter['symbol'] = symbol;\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: '/sapi/v1/margin/api-key-list',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {Array<string>} assetNames The assets list of small liability exchange, Example: assetNames = BTC,ETH\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n smallLiabilityExchange: async (\n assetNames: Array<string>,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'assetNames' is not null or undefined\n assertParamExists('smallLiabilityExchange', 'assetNames', assetNames);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (assetNames) {\n localVarQueryParameter['assetNames'] = assetNames;\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: '/sapi/v1/margin/exchange-small-liability',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>>;\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n deleteSpecialKey(requestParameters?: DeleteSpecialKeyRequest): Promise<RestApiResponse<void>>;\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getForceLiquidationRecord(\n requestParameters?: GetForceLiquidationRecordRequest\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>>;\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getSmallLiabilityExchangeCoinList(\n requestParameters?: GetSmallLiabilityExchangeCoinListRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>;\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>;\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>;\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>>;\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>>;\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>>;\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>>;\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>>;\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>>;\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>>;\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryCurrentMarginOrderCountUsage(\n requestParameters?: QueryCurrentMarginOrderCountUsageRequest\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>;\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsAllOco(\n requestParameters?: QueryMarginAccountsAllOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>;\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>;\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOco(\n requestParameters?: QueryMarginAccountsOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>;\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOpenOco(\n requestParameters?: QueryMarginAccountsOpenOcoRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>;\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOpenOrders(\n requestParameters?: QueryMarginAccountsOpenOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>;\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>;\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>;\n /**\n *\n * Weight: 10(IP)\n *\n * @summary Query Prevented Matches(USER_DATA)\n * @param {QueryPreventedMatchesRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryPreventedMatches(\n requestParameters: QueryPreventedMatchesRequest\n ): Promise<RestApiResponse<QueryPreventedMatchesResponse>>;\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n querySpecialKey(\n requestParameters?: QuerySpecialKeyRequest\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>>;\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n querySpecialKeyList(\n requestParameters?: QuerySpecialKeyListRequest\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>>;\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>>;\n}\n\n/**\n * Request parameters for createSpecialKey operation in TradeApi.\n * @interface CreateSpecialKeyRequest\n */\nexport interface CreateSpecialKeyRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly apiName: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * Can be added in batches, separated by commas. Max 30 for an API key\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly ip?: string;\n\n /**\n * 1. If publicKey is inputted it will create an RSA or Ed25519 key. <br />2. Need to be encoded to URL-encoded format\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly publicKey?: string;\n\n /**\n * This parameter is only for the Ed25519 API key, and does not effact for other encryption methods. The value can be TRADE (TRADE for all permissions) or READ (READ for USER_DATA, FIX_API_READ_ONLY). The default value is TRADE.\n * @type {string}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly permissionMode?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for deleteSpecialKey operation in TradeApi.\n * @interface DeleteSpecialKeyRequest\n */\nexport interface DeleteSpecialKeyRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly apiName?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for editIpForSpecialKey operation in TradeApi.\n * @interface EditIpForSpecialKeyRequest\n */\nexport interface EditIpForSpecialKeyRequest {\n /**\n * Can be added in batches, separated by commas. Max 30 for an API key\n * @type {string}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly ip: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getForceLiquidationRecord operation in TradeApi.\n * @interface GetForceLiquidationRecordRequest\n */\nexport interface GetForceLiquidationRecordRequest {\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly endTime?: number | bigint;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly isolatedSymbol?: string;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly size?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSmallLiabilityExchangeCoinList operation in TradeApi.\n * @interface GetSmallLiabilityExchangeCoinListRequest\n */\nexport interface GetSmallLiabilityExchangeCoinListRequest {\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeCoinList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getSmallLiabilityExchangeHistory operation in TradeApi.\n * @interface GetSmallLiabilityExchangeHistoryRequest\n */\nexport interface GetSmallLiabilityExchangeHistoryRequest {\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly current: number | bigint;\n\n /**\n * Default:10, Max:100\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly size: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelAllOpenOrdersOnASymbol operation in TradeApi.\n * @interface MarginAccountCancelAllOpenOrdersOnASymbolRequest\n */\nexport interface MarginAccountCancelAllOpenOrdersOnASymbolRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly isIsolated?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelOco operation in TradeApi.\n * @interface MarginAccountCancelOcoRequest\n */\nexport interface MarginAccountCancelOcoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly listClientOrderId?: string;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly newClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountCancelOrder operation in TradeApi.\n * @interface MarginAccountCancelOrderRequest\n */\nexport interface MarginAccountCancelOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly orderId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly origClientOrderId?: string;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOco operation in TradeApi.\n * @interface MarginAccountNewOcoRequest\n */\nexport interface MarginAccountNewOcoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly symbol: string;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly side: MarginAccountNewOcoSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly quantity: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly price: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopPrice: number;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly listClientOrderId?: string;\n\n /**\n * A unique Id for the limit order\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly limitClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly limitIcebergQty?: number;\n\n /**\n * A unique Id for the stop loss/stop loss limit leg\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopClientOrderId?: string;\n\n /**\n * If provided, `stopLimitTimeInForce` is required.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopIcebergQty?: number;\n\n /**\n * Valid values are `GTC`/`FOK`/`IOC`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitTimeInForce?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly sideEffectType?: string;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOrder operation in TradeApi.\n * @interface MarginAccountNewOrderRequest\n */\nexport interface MarginAccountNewOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly symbol: string;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly side: MarginAccountNewOrderSideEnum;\n\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly type: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly quantity?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly quoteOrderQty?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly price?: number;\n\n /**\n * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly stopPrice?: number;\n\n /**\n * Used to uniquely identify this cancel. Automatically generated by default\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly icebergQty?: number;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly sideEffectType?: string;\n\n /**\n * GTC,IOC,FOK\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly timeInForce?: MarginAccountNewOrderTimeInForceEnum;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for marginAccountNewOto operation in TradeApi.\n * @interface MarginAccountNewOtoRequest\n */\nexport interface MarginAccountNewOtoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly symbol: string;\n\n /**\n * Supported values: `LIMIT`, `LIMIT_MAKER`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingPrice: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingQuantity: number;\n\n /**\n * This can only be used if `workingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingIcebergQty: number;\n\n /**\n * Supported values: [Order Types](https://developers.binance.com/docs/binance-spot-api-docs/enums#order-types-ordertypes-type) Note that `MARKET` orders using `quoteOrderQty` are not supported.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingQuantity: number;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly isIsolated?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly listClientOrderId?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly sideEffectType?: string;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingClientOrderId?: string;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingTimeInForce?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingIcebergQty?: number;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTimeInForce?: string;\n}\n\n/**\n * Request parameters for marginAccountNewOtoco operation in TradeApi.\n * @interface MarginAccountNewOtocoRequest\n */\nexport interface MarginAccountNewOtocoRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly symbol: string;\n\n /**\n * Supported values: `LIMIT`, `LIMIT_MAKER`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingType: string;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingPrice: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingQuantity: number;\n\n /**\n * BUY, SELL\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingSide: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingQuantity: number;\n\n /**\n * Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveType: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly isIsolated?: string;\n\n /**\n * NO_SIDE_EFFECT, MARGIN_BUY, AUTO_REPAY,AUTO_BORROW_REPAY; default NO_SIDE_EFFECT. More info in [FAQ](https://www.binance.com/en/support/faq/how-to-use-the-sideeffecttype-parameter-with-the-margin-order-endpoints-f9fc51cda1984bf08b95e0d96c4570bc)\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly sideEffectType?: string;\n\n /**\n * Only when MARGIN_BUY or AUTO_BORROW_REPAY order takes effect, true means that the debt generated by the order needs to be repay after the order is cancelled. The default is true\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly listClientOrderId?: string;\n\n /**\n * Set the response JSON. ACK, RESULT, or FULL; MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum;\n\n /**\n * The allowed enums is dependent on what is configured on the symbol. The possible supported values are EXPIRE_TAKER, EXPIRE_MAKER, EXPIRE_BOTH, NONE\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly selfTradePreventionMode?: string;\n\n /**\n * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingClientOrderId?: string;\n\n /**\n * This can only be used if `workingTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingIcebergQty?: number;\n\n /**\n * GTC,IOC,FOK\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingTimeInForce?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAbovePrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingAboveTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveIcebergQty?: number;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTimeInForce?: string;\n\n /**\n * Supported values: `LIMIT_MAKER`, `STOP_LOSS`, and `STOP_LOSS_LIMIT`\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowType?: string;\n\n /**\n * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowClientOrderId?: string;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowStopPrice?: number;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTrailingDelta?: number;\n\n /**\n * This can only be used if `pendingBelowTimeInForce` is `GTC`.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowIcebergQty?: number;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTimeInForce?: string;\n}\n\n/**\n * Request parameters for marginManualLiquidation operation in TradeApi.\n * @interface MarginManualLiquidationRequest\n */\nexport interface MarginManualLiquidationRequest {\n /**\n * `MARGIN`,`ISOLATED`\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly type: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryCurrentMarginOrderCountUsage operation in TradeApi.\n * @interface QueryCurrentMarginOrderCountUsageRequest\n */\nexport interface QueryCurrentMarginOrderCountUsageRequest {\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsAllOco operation in TradeApi.\n * @interface QueryMarginAccountsAllOcoRequest\n */\nexport interface QueryMarginAccountsAllOcoRequest {\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly symbol?: string;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly fromId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly endTime?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsAllOrders operation in TradeApi.\n * @interface QueryMarginAccountsAllOrdersRequest\n */\nexport interface QueryMarginAccountsAllOrdersRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly orderId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly endTime?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOco operation in TradeApi.\n * @interface QueryMarginAccountsOcoRequest\n */\nexport interface QueryMarginAccountsOcoRequest {\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly symbol?: string;\n\n /**\n * Either `orderListId` or `listClientOrderId` must be provided\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly origClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOpenOco operation in TradeApi.\n * @interface QueryMarginAccountsOpenOcoRequest\n */\nexport interface QueryMarginAccountsOpenOcoRequest {\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly isIsolated?: string;\n\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOpenOrders operation in TradeApi.\n * @interface QueryMarginAccountsOpenOrdersRequest\n */\nexport interface QueryMarginAccountsOpenOrdersRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly symbol?: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly isIsolated?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsOrder operation in TradeApi.\n * @interface QueryMarginAccountsOrderRequest\n */\nexport interface QueryMarginAccountsOrderRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly orderId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly origClientOrderId?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMarginAccountsTradeList operation in TradeApi.\n * @interface QueryMarginAccountsTradeListRequest\n */\nexport interface QueryMarginAccountsTradeListRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly symbol: string;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly isIsolated?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly orderId?: number | bigint;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly endTime?: number | bigint;\n\n /**\n * If `fromId` is set, data with `id` greater than `fromId` will be returned. Otherwise, the latest data will be returned.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly fromId?: number | bigint;\n\n /**\n * Limit on the number of data records returned per request. Default: 500; Maximum: 1000.\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly limit?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryPreventedMatches operation in TradeApi.\n * @interface QueryPreventedMatchesRequest\n */\nexport interface QueryPreventedMatchesRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly symbol: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly preventedMatchId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly orderId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly fromPreventedMatchId?: number | bigint;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly recvWindow?: number | bigint;\n\n /**\n * For isolated margin or not, \"TRUE\", \"FALSE\", default \"FALSE\"\n * @type {string}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly isIsolated?: string;\n}\n\n/**\n * Request parameters for querySpecialKey operation in TradeApi.\n * @interface QuerySpecialKeyRequest\n */\nexport interface QuerySpecialKeyRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for querySpecialKeyList operation in TradeApi.\n * @interface QuerySpecialKeyListRequest\n */\nexport interface QuerySpecialKeyListRequest {\n /**\n * isolated margin pair\n * @type {string}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly symbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for smallLiabilityExchange operation in TradeApi.\n * @interface SmallLiabilityExchangeRequest\n */\nexport interface SmallLiabilityExchangeRequest {\n /**\n * The assets list of small liability exchange, Example: assetNames = BTC,ETH\n * @type {Array<string>}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly assetNames: Array<string>;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly recvWindow?: number | bigint;\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 * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<CreateSpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Create-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.createSpecialKey(\n requestParameters?.apiName,\n requestParameters?.symbol,\n requestParameters?.ip,\n requestParameters?.publicKey,\n requestParameters?.permissionMode,\n requestParameters?.recvWindow\n );\n return sendRequest<CreateSpecialKeyResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} 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/margin_trading/trade/Delete-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async deleteSpecialKey(\n requestParameters: DeleteSpecialKeyRequest = {}\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.deleteSpecialKey(\n requestParameters?.apiName,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} 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/margin_trading/trade/Edit-ip-for-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.editIpForSpecialKey(\n requestParameters?.ip,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetForceLiquidationRecordResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Force-Liquidation-Record Binance API Documentation}\n */\n public async getForceLiquidationRecord(\n requestParameters: GetForceLiquidationRecordRequest = {}\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getForceLiquidationRecord(\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.isolatedSymbol,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<GetForceLiquidationRecordResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-Coin-List Binance API Documentation}\n */\n public async getSmallLiabilityExchangeCoinList(\n requestParameters: GetSmallLiabilityExchangeCoinListRequest = {}\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getSmallLiabilityExchangeCoinList(\n requestParameters?.recvWindow\n );\n return sendRequest<GetSmallLiabilityExchangeCoinListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-History Binance API Documentation}\n */\n public async getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getSmallLiabilityExchangeHistory(\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.recvWindow\n );\n return sendRequest<GetSmallLiabilityExchangeHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-All-Open-Orders Binance API Documentation}\n */\n public async marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelAllOpenOrdersOnASymbolResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-OCO Binance API Documentation}\n */\n public async marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountCancelOco(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderListId,\n requestParameters?.listClientOrderId,\n requestParameters?.newClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountCancelOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-Order Binance API Documentation}\n */\n public async marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountCancelOrder(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.origClientOrderId,\n requestParameters?.newClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountCancelOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO Binance API Documentation}\n */\n public async marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOco(\n requestParameters?.symbol,\n requestParameters?.side,\n requestParameters?.quantity,\n requestParameters?.price,\n requestParameters?.stopPrice,\n requestParameters?.isIsolated,\n requestParameters?.listClientOrderId,\n requestParameters?.limitClientOrderId,\n requestParameters?.limitIcebergQty,\n requestParameters?.stopClientOrderId,\n requestParameters?.stopLimitPrice,\n requestParameters?.stopIcebergQty,\n requestParameters?.stopLimitTimeInForce,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountNewOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-Order Binance API Documentation}\n */\n public async marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOrder(\n requestParameters?.symbol,\n requestParameters?.side,\n requestParameters?.type,\n requestParameters?.isIsolated,\n requestParameters?.quantity,\n requestParameters?.quoteOrderQty,\n requestParameters?.price,\n requestParameters?.stopPrice,\n requestParameters?.newClientOrderId,\n requestParameters?.icebergQty,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.timeInForce,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginAccountNewOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOtoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTO Binance API Documentation}\n */\n public async marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOto(\n requestParameters?.symbol,\n requestParameters?.workingType,\n requestParameters?.workingSide,\n requestParameters?.workingPrice,\n requestParameters?.workingQuantity,\n requestParameters?.workingIcebergQty,\n requestParameters?.pendingType,\n requestParameters?.pendingSide,\n requestParameters?.pendingQuantity,\n requestParameters?.isIsolated,\n requestParameters?.listClientOrderId,\n requestParameters?.newOrderRespType,\n requestParameters?.sideEffectType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.workingClientOrderId,\n requestParameters?.workingTimeInForce,\n requestParameters?.pendingClientOrderId,\n requestParameters?.pendingPrice,\n requestParameters?.pendingStopPrice,\n requestParameters?.pendingTrailingDelta,\n requestParameters?.pendingIcebergQty,\n requestParameters?.pendingTimeInForce\n );\n return sendRequest<MarginAccountNewOtoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginAccountNewOtocoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTOCO Binance API Documentation}\n */\n public async marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginAccountNewOtoco(\n requestParameters?.symbol,\n requestParameters?.workingType,\n requestParameters?.workingSide,\n requestParameters?.workingPrice,\n requestParameters?.workingQuantity,\n requestParameters?.pendingSide,\n requestParameters?.pendingQuantity,\n requestParameters?.pendingAboveType,\n requestParameters?.isIsolated,\n requestParameters?.sideEffectType,\n requestParameters?.autoRepayAtCancel,\n requestParameters?.listClientOrderId,\n requestParameters?.newOrderRespType,\n requestParameters?.selfTradePreventionMode,\n requestParameters?.workingClientOrderId,\n requestParameters?.workingIcebergQty,\n requestParameters?.workingTimeInForce,\n requestParameters?.pendingAboveClientOrderId,\n requestParameters?.pendingAbovePrice,\n requestParameters?.pendingAboveStopPrice,\n requestParameters?.pendingAboveTrailingDelta,\n requestParameters?.pendingAboveIcebergQty,\n requestParameters?.pendingAboveTimeInForce,\n requestParameters?.pendingBelowType,\n requestParameters?.pendingBelowClientOrderId,\n requestParameters?.pendingBelowPrice,\n requestParameters?.pendingBelowStopPrice,\n requestParameters?.pendingBelowTrailingDelta,\n requestParameters?.pendingBelowIcebergQty,\n requestParameters?.pendingBelowTimeInForce\n );\n return sendRequest<MarginAccountNewOtocoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<MarginManualLiquidationResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Manual-Liquidation Binance API Documentation}\n */\n public async marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.marginManualLiquidation(\n requestParameters?.type,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<MarginManualLiquidationResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Current-Margin-Order-Count-Usage Binance API Documentation}\n */\n public async queryCurrentMarginOrderCountUsage(\n requestParameters: QueryCurrentMarginOrderCountUsageRequest = {}\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryCurrentMarginOrderCountUsage(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryCurrentMarginOrderCountUsageResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-all-OCO Binance API Documentation}\n */\n public async queryMarginAccountsAllOco(\n requestParameters: QueryMarginAccountsAllOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsAllOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.fromId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsAllOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-All-Orders Binance API Documentation}\n */\n public async queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsAllOrders(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsAllOrdersResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-OCO Binance API Documentation}\n */\n public async queryMarginAccountsOco(\n requestParameters: QueryMarginAccountsOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.orderListId,\n requestParameters?.origClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-OCO Binance API Documentation}\n */\n public async queryMarginAccountsOpenOco(\n requestParameters: QueryMarginAccountsOpenOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOpenOco(\n requestParameters?.isIsolated,\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOpenOcoResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-Orders Binance API Documentation}\n */\n public async queryMarginAccountsOpenOrders(\n requestParameters: QueryMarginAccountsOpenOrdersRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryMarginAccountsOpenOrders(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOpenOrdersResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Order Binance API Documentation}\n */\n public async queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsOrder(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.origClientOrderId,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List Binance API Documentation}\n */\n public async queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMarginAccountsTradeList(\n requestParameters?.symbol,\n requestParameters?.isIsolated,\n requestParameters?.orderId,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.fromId,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMarginAccountsTradeListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n *\n * Weight: 10(IP)\n *\n * @summary Query Prevented Matches(USER_DATA)\n * @param {QueryPreventedMatchesRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryPreventedMatchesResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Prevented-Matches Binance API Documentation}\n */\n public async queryPreventedMatches(\n requestParameters: QueryPreventedMatchesRequest\n ): Promise<RestApiResponse<QueryPreventedMatchesResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryPreventedMatches(\n requestParameters?.symbol,\n requestParameters?.preventedMatchId,\n requestParameters?.orderId,\n requestParameters?.fromPreventedMatchId,\n requestParameters?.recvWindow,\n requestParameters?.isIsolated\n );\n return sendRequest<QueryPreventedMatchesResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QuerySpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n public async querySpecialKey(\n requestParameters: QuerySpecialKeyRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.querySpecialKey(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QuerySpecialKeyResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QuerySpecialKeyListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-List-of-Low-Latency-Trading Binance API Documentation}\n */\n public async querySpecialKeyList(\n requestParameters: QuerySpecialKeyListRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.querySpecialKeyList(\n requestParameters?.symbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QuerySpecialKeyListResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} 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/margin_trading/trade/Small-Liability-Exchange Binance API Documentation}\n */\n public async smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.smallLiabilityExchange(\n requestParameters?.assetNames,\n requestParameters?.recvWindow\n );\n return sendRequest<void>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum MarginAccountNewOcoSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOcoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOrderNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtocoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 GetCrossMarginTransferHistoryResponse,\n QueryMaxTransferOutAmountResponse,\n} from '../types';\n\n/**\n * TransferApi - axios parameter creator\n */\nconst TransferApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [type] Transfer Type: ROLL_IN, ROLL_OUT\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current] Currently querying page. Start from 1. Default:1\n * @param {number | bigint} [size] Default:10 Max:100\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n getCrossMarginTransferHistory: async (\n asset?: string,\n type?: string,\n startTime?: number | bigint,\n endTime?: number | bigint,\n current?: number | bigint,\n size?: number | bigint,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (type !== undefined && type !== null) {\n localVarQueryParameter['type'] = type;\n }\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (current !== undefined && current !== null) {\n localVarQueryParameter['current'] = current;\n }\n if (size !== undefined && size !== null) {\n localVarQueryParameter['size'] = size;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/transfer',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol] isolated symbol\n * @param {number | bigint} [recvWindow] No more than 60000\n *\n * @throws {RequiredError}\n */\n queryMaxTransferOutAmount: async (\n asset: string,\n isolatedSymbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('queryMaxTransferOutAmount', 'asset', asset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (isolatedSymbol !== undefined && isolatedSymbol !== null) {\n localVarQueryParameter['isolatedSymbol'] = isolatedSymbol;\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: '/sapi/v1/margin/maxTransferable',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TransferApi - interface\n * @interface TransferApi\n */\nexport interface TransferApiInterface {\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApiInterface\n */\n getCrossMarginTransferHistory(\n requestParameters?: GetCrossMarginTransferHistoryRequest\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>;\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApiInterface\n */\n queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>;\n}\n\n/**\n * Request parameters for getCrossMarginTransferHistory operation in TransferApi.\n * @interface GetCrossMarginTransferHistoryRequest\n */\nexport interface GetCrossMarginTransferHistoryRequest {\n /**\n *\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly asset?: string;\n\n /**\n * Transfer Type: ROLL_IN, ROLL_OUT\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly type?: string;\n\n /**\n * Only supports querying data from the past 90 days.\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Currently querying page. Start from 1. Default:1\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Default:10 Max:100\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly size?: number | bigint;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryMaxTransferOutAmount operation in TransferApi.\n * @interface QueryMaxTransferOutAmountRequest\n */\nexport interface QueryMaxTransferOutAmountRequest {\n /**\n *\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly asset: string;\n\n /**\n * isolated symbol\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly isolatedSymbol?: string;\n\n /**\n * No more than 60000\n * @type {number | bigint}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * TransferApi - object-oriented interface\n * @class TransferApi\n */\nexport class TransferApi implements TransferApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = TransferApiAxiosParamCreator(configuration);\n }\n\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApi\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Get-Cross-Margin-Transfer-History Binance API Documentation}\n */\n public async getCrossMarginTransferHistory(\n requestParameters: GetCrossMarginTransferHistoryRequest = {}\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.getCrossMarginTransferHistory(\n requestParameters?.asset,\n requestParameters?.type,\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<GetCrossMarginTransferHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TransferApi\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Query-Max-Transfer-Out-Amount Binance API Documentation}\n */\n public async queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryMaxTransferOutAmount(\n requestParameters?.asset,\n requestParameters?.isolatedSymbol,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryMaxTransferOutAmountResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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 { BorrowRepayApi } from './modules/borrow-repay-api';\nimport { MarketDataApi } from './modules/market-data-api';\nimport { RiskDataStreamApi } from './modules/risk-data-stream-api';\nimport { TradeApi } from './modules/trade-api';\nimport { TransferApi } from './modules/transfer-api';\n\nimport type {\n AdjustCrossMarginMaxLeverageRequest,\n DisableIsolatedMarginAccountRequest,\n EnableIsolatedMarginAccountRequest,\n GetBnbBurnStatusRequest,\n GetSummaryOfMarginAccountRequest,\n QueryCrossIsolatedMarginCapitalFlowRequest,\n QueryCrossMarginAccountDetailsRequest,\n QueryCrossMarginFeeDataRequest,\n QueryEnabledIsolatedMarginAccountLimitRequest,\n QueryIsolatedMarginAccountInfoRequest,\n QueryIsolatedMarginFeeDataRequest,\n} from './modules/account-api';\nimport type {\n GetFutureHourlyInterestRateRequest,\n GetInterestHistoryRequest,\n MarginAccountBorrowRepayRequest,\n QueryBorrowRepayRecordsInMarginAccountRequest,\n QueryMarginInterestRateHistoryRequest,\n QueryMaxBorrowRequest,\n} from './modules/borrow-repay-api';\nimport type {\n GetAllCrossMarginPairsRequest,\n GetAllIsolatedMarginSymbolRequest,\n GetAllMarginAssetsRequest,\n GetDelistScheduleRequest,\n GetListScheduleRequest,\n QueryIsolatedMarginTierDataRequest,\n QueryMarginAvailableInventoryRequest,\n QueryMarginPriceindexRequest,\n} from './modules/market-data-api';\nimport type { KeepaliveUserDataStreamRequest } from './modules/risk-data-stream-api';\nimport type {\n CreateSpecialKeyRequest,\n DeleteSpecialKeyRequest,\n EditIpForSpecialKeyRequest,\n GetForceLiquidationRecordRequest,\n GetSmallLiabilityExchangeCoinListRequest,\n GetSmallLiabilityExchangeHistoryRequest,\n MarginAccountCancelAllOpenOrdersOnASymbolRequest,\n MarginAccountCancelOcoRequest,\n MarginAccountCancelOrderRequest,\n MarginAccountNewOcoRequest,\n MarginAccountNewOrderRequest,\n MarginAccountNewOtoRequest,\n MarginAccountNewOtocoRequest,\n MarginManualLiquidationRequest,\n QueryCurrentMarginOrderCountUsageRequest,\n QueryMarginAccountsAllOcoRequest,\n QueryMarginAccountsAllOrdersRequest,\n QueryMarginAccountsOcoRequest,\n QueryMarginAccountsOpenOcoRequest,\n QueryMarginAccountsOpenOrdersRequest,\n QueryMarginAccountsOrderRequest,\n QueryMarginAccountsTradeListRequest,\n QueryPreventedMatchesRequest,\n QuerySpecialKeyRequest,\n QuerySpecialKeyListRequest,\n SmallLiabilityExchangeRequest,\n} from './modules/trade-api';\nimport type {\n GetCrossMarginTransferHistoryRequest,\n QueryMaxTransferOutAmountRequest,\n} from './modules/transfer-api';\n\nimport type {\n AdjustCrossMarginMaxLeverageResponse,\n DisableIsolatedMarginAccountResponse,\n EnableIsolatedMarginAccountResponse,\n GetBnbBurnStatusResponse,\n GetSummaryOfMarginAccountResponse,\n QueryCrossIsolatedMarginCapitalFlowResponse,\n QueryCrossMarginAccountDetailsResponse,\n QueryCrossMarginFeeDataResponse,\n QueryEnabledIsolatedMarginAccountLimitResponse,\n QueryIsolatedMarginAccountInfoResponse,\n QueryIsolatedMarginFeeDataResponse,\n} from './types';\nimport type {\n GetFutureHourlyInterestRateResponse,\n GetInterestHistoryResponse,\n MarginAccountBorrowRepayResponse,\n QueryBorrowRepayRecordsInMarginAccountResponse,\n QueryMarginInterestRateHistoryResponse,\n QueryMaxBorrowResponse,\n} from './types';\nimport type {\n CrossMarginCollateralRatioResponse,\n GetAllCrossMarginPairsResponse,\n GetAllIsolatedMarginSymbolResponse,\n GetAllMarginAssetsResponse,\n GetDelistScheduleResponse,\n GetLimitPricePairsResponse,\n GetListScheduleResponse,\n GetMarginAssetRiskBasedLiquidationRatioResponse,\n GetMarginRestrictedAssetsResponse,\n QueryIsolatedMarginTierDataResponse,\n QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse,\n QueryMarginAvailableInventoryResponse,\n QueryMarginPriceindexResponse,\n} from './types';\nimport type { StartUserDataStreamResponse } from './types';\nimport type {\n CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryMarginAccountsAllOcoResponse,\n QueryMarginAccountsAllOrdersResponse,\n QueryMarginAccountsOcoResponse,\n QueryMarginAccountsOpenOcoResponse,\n QueryMarginAccountsOpenOrdersResponse,\n QueryMarginAccountsOrderResponse,\n QueryMarginAccountsTradeListResponse,\n QueryPreventedMatchesResponse,\n QuerySpecialKeyResponse,\n QuerySpecialKeyListResponse,\n} from './types';\nimport type {\n GetCrossMarginTransferHistoryResponse,\n QueryMaxTransferOutAmountResponse,\n} from './types';\n\nexport class RestAPI {\n private configuration: ConfigurationRestAPI;\n private accountApi: AccountApi;\n private borrowRepayApi: BorrowRepayApi;\n private marketDataApi: MarketDataApi;\n private riskDataStreamApi: RiskDataStreamApi;\n private tradeApi: TradeApi;\n private transferApi: TransferApi;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.accountApi = new AccountApi(configuration);\n this.borrowRepayApi = new BorrowRepayApi(configuration);\n this.marketDataApi = new MarketDataApi(configuration);\n this.riskDataStreamApi = new RiskDataStreamApi(configuration);\n this.tradeApi = new TradeApi(configuration);\n this.transferApi = new TransferApi(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 queryParams - Query parameters for the request.\n * @param bodyParams - Body 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 queryParams: Record<string, unknown> = {},\n bodyParams: Record<string, unknown> = {}\n ): Promise<RestApiResponse<T>> {\n return sendRequest<T>(\n this.configuration,\n endpoint,\n method,\n queryParams,\n bodyParams,\n undefined\n );\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 queryParams - Query parameters for the request.\n * @param bodyParams - Body 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 queryParams: Record<string, unknown> = {},\n bodyParams: Record<string, unknown> = {}\n ): Promise<RestApiResponse<T>> {\n return sendRequest<T>(\n this.configuration,\n endpoint,\n method,\n queryParams,\n bodyParams,\n undefined,\n { isSigned: true }\n );\n }\n\n /**\n * Adjust cross margin max leverage\n *\n * The margin level need higher than the initial risk ratio of adjusted leverage, the initial risk ratio of 3x is 1.5 , the initial risk ratio of 5x is 1.25; The detail conditions on how to switch between Cross Margin Classic and Cross Margin Pro can refer to [the FAQ](https://www.binance.com/en/support/faq/how-to-activate-the-cross-margin-pro-mode-on-binance-e27786da05e743a694b8c625b3bc475d).\n *\n * Weight: 3000\n *\n * @summary Adjust cross margin max leverage (USER_DATA)\n * @param {AdjustCrossMarginMaxLeverageRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Adjust-cross-margin-max-leverage Binance API Documentation}\n */\n adjustCrossMarginMaxLeverage(\n requestParameters: AdjustCrossMarginMaxLeverageRequest\n ): Promise<RestApiResponse<AdjustCrossMarginMaxLeverageResponse>> {\n return this.accountApi.adjustCrossMarginMaxLeverage(requestParameters);\n }\n\n /**\n * Disable isolated margin account for a specific symbol. Each trading pair can only be deactivated once every 24\n * hours.\n *\n * Weight: 300(UID)\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {DisableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Disable-Isolated-Margin-Account Binance API Documentation}\n */\n disableIsolatedMarginAccount(\n requestParameters: DisableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<DisableIsolatedMarginAccountResponse>> {\n return this.accountApi.disableIsolatedMarginAccount(requestParameters);\n }\n\n /**\n * Enable isolated margin account for a specific symbol(Only supports activation of previously disabled accounts).\n *\n * Weight: 300(UID)\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {EnableIsolatedMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Enable-Isolated-Margin-Account Binance API Documentation}\n */\n enableIsolatedMarginAccount(\n requestParameters: EnableIsolatedMarginAccountRequest\n ): Promise<RestApiResponse<EnableIsolatedMarginAccountResponse>> {\n return this.accountApi.enableIsolatedMarginAccount(requestParameters);\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight: 1(IP)\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {GetBnbBurnStatusRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetBnbBurnStatusResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-BNB-Burn-Status Binance API Documentation}\n */\n getBnbBurnStatus(\n requestParameters: GetBnbBurnStatusRequest = {}\n ): Promise<RestApiResponse<GetBnbBurnStatusResponse>> {\n return this.accountApi.getBnbBurnStatus(requestParameters);\n }\n\n /**\n * Get personal margin level information\n *\n * Weight: 10(IP)\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {GetSummaryOfMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Get-Summary-of-Margin-account Binance API Documentation}\n */\n getSummaryOfMarginAccount(\n requestParameters: GetSummaryOfMarginAccountRequest = {}\n ): Promise<RestApiResponse<GetSummaryOfMarginAccountResponse>> {\n return this.accountApi.getSummaryOfMarginAccount(requestParameters);\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight: 100(IP)\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {QueryCrossIsolatedMarginCapitalFlowRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Isolated-Margin-Capital-Flow Binance API Documentation}\n */\n queryCrossIsolatedMarginCapitalFlow(\n requestParameters: QueryCrossIsolatedMarginCapitalFlowRequest = {}\n ): Promise<RestApiResponse<QueryCrossIsolatedMarginCapitalFlowResponse>> {\n return this.accountApi.queryCrossIsolatedMarginCapitalFlow(requestParameters);\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight: 10(IP)\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {QueryCrossMarginAccountDetailsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Account-Details Binance API Documentation}\n */\n queryCrossMarginAccountDetails(\n requestParameters: QueryCrossMarginAccountDetailsRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginAccountDetailsResponse>> {\n return this.accountApi.queryCrossMarginAccountDetails(requestParameters);\n }\n\n /**\n * Get cross margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when coin is specified;(IP)\n *\n * @summary Query Cross Margin Fee Data (USER_DATA)\n * @param {QueryCrossMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Fee-Data Binance API Documentation}\n */\n queryCrossMarginFeeData(\n requestParameters: QueryCrossMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryCrossMarginFeeDataResponse>> {\n return this.accountApi.queryCrossMarginFeeData(requestParameters);\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight: 1(IP)\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {QueryEnabledIsolatedMarginAccountLimitRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Enabled-Isolated-Margin-Account-Limit Binance API Documentation}\n */\n queryEnabledIsolatedMarginAccountLimit(\n requestParameters: QueryEnabledIsolatedMarginAccountLimitRequest = {}\n ): Promise<RestApiResponse<QueryEnabledIsolatedMarginAccountLimitResponse>> {\n return this.accountApi.queryEnabledIsolatedMarginAccountLimit(requestParameters);\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * If \"symbols\" is not sent, all isolated assets will be returned.\n * If \"symbols\" is sent, only the isolated assets of the sent symbols will be returned.\n *\n * Weight: 10(IP)\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {QueryIsolatedMarginAccountInfoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Account-Info Binance API Documentation}\n */\n queryIsolatedMarginAccountInfo(\n requestParameters: QueryIsolatedMarginAccountInfoRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginAccountInfoResponse>> {\n return this.accountApi.queryIsolatedMarginAccountInfo(requestParameters);\n }\n\n /**\n * Get isolated margin fee data collection with any vip level or user's current specific data as https://www.binance.com/en/margin-fee\n *\n * Weight: 1 when a single is specified;(IP)\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {QueryIsolatedMarginFeeDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Fee-Data Binance API Documentation}\n */\n queryIsolatedMarginFeeData(\n requestParameters: QueryIsolatedMarginFeeDataRequest = {}\n ): Promise<RestApiResponse<QueryIsolatedMarginFeeDataResponse>> {\n return this.accountApi.queryIsolatedMarginFeeData(requestParameters);\n }\n\n /**\n * Get future hourly interest rate\n *\n * Weight: 100\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {GetFutureHourlyInterestRateRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-a-future-hourly-interest-rate Binance API Documentation}\n */\n getFutureHourlyInterestRate(\n requestParameters: GetFutureHourlyInterestRateRequest\n ): Promise<RestApiResponse<GetFutureHourlyInterestRateResponse>> {\n return this.borrowRepayApi.getFutureHourlyInterestRate(requestParameters);\n }\n\n /**\n * Get Interest History\n *\n * Response in descending order\n * If isolatedSymbol is not sent, crossed margin data will be returned\n * The max interval between `startTime` and `endTime` is 30 days. It is a MUST to ensure data correctness.\n * If `startTime`and `endTime` not sent, return records of the last 7 days by default.\n * If `startTime` is sent and `endTime` is not sent, return records of [max(`startTime`, now-30d), now].\n * If `startTime` is not sent and `endTime` is sent, return records of [`endTime`-7, `endTime`]\n * `type` in response has 4 enums:\n * `PERIODIC` interest charged per hour\n * `ON_BORROW` first interest charged on borrow\n * `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n * `ON_BORROW_CONVERTED` first interest charged on borrow converted into BNB\n * `PORTFOLIO` interest charged daily on the portfolio margin negative balance\n *\n * Weight: 1(IP)\n *\n * @summary Get Interest History (USER_DATA)\n * @param {GetInterestHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetInterestHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Get-Interest-History Binance API Documentation}\n */\n getInterestHistory(\n requestParameters: GetInterestHistoryRequest = {}\n ): Promise<RestApiResponse<GetInterestHistoryResponse>> {\n return this.borrowRepayApi.getInterestHistory(requestParameters);\n }\n\n /**\n * Margin account borrow/repay(MARGIN)\n *\n * Weight: 1500\n *\n * @summary Margin account borrow/repay(MARGIN)\n * @param {MarginAccountBorrowRepayRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountBorrowRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Margin-account-borrow-repay Binance API Documentation}\n */\n marginAccountBorrowRepay(\n requestParameters: MarginAccountBorrowRepayRequest\n ): Promise<RestApiResponse<MarginAccountBorrowRepayResponse>> {\n return this.borrowRepayApi.marginAccountBorrowRepay(requestParameters);\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * `txId` or `startTime` must be sent. `txId` takes precedence.\n * If an asset is sent, data within 30 days before `endTime`; If an asset is not sent, data within 7 days before `endTime`\n * If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n * `startTime` set as `endTime` - 7days by default, `endTime` set as current time by default\n *\n * Weight: 10(IP)\n *\n * @summary Query borrow/repay records in Margin account(USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Borrow-Repay Binance API Documentation}\n */\n queryBorrowRepayRecordsInMarginAccount(\n requestParameters: QueryBorrowRepayRecordsInMarginAccountRequest\n ): Promise<RestApiResponse<QueryBorrowRepayRecordsInMarginAccountResponse>> {\n return this.borrowRepayApi.queryBorrowRepayRecordsInMarginAccount(requestParameters);\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight: 1(IP)\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {QueryMarginInterestRateHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Margin-Interest-Rate-History Binance API Documentation}\n */\n queryMarginInterestRateHistory(\n requestParameters: QueryMarginInterestRateHistoryRequest\n ): Promise<RestApiResponse<QueryMarginInterestRateHistoryResponse>> {\n return this.borrowRepayApi.queryMarginInterestRateHistory(requestParameters);\n }\n\n /**\n * Query Max Borrow\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n * `borrowLimit` is also available from [https://www.binance.com/en/margin-fee](https://www.binance.com/en/margin-fee)\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Borrow (USER_DATA)\n * @param {QueryMaxBorrowRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMaxBorrowResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/borrow-and-repay/Query-Max-Borrow Binance API Documentation}\n */\n queryMaxBorrow(\n requestParameters: QueryMaxBorrowRequest\n ): Promise<RestApiResponse<QueryMaxBorrowResponse>> {\n return this.borrowRepayApi.queryMaxBorrow(requestParameters);\n }\n\n /**\n * Cross margin collateral ratio\n *\n * Weight: 100(IP)\n *\n * @summary Cross margin collateral ratio (MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<CrossMarginCollateralRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Cross-margin-collateral-ratio Binance API Documentation}\n */\n crossMarginCollateralRatio(): Promise<RestApiResponse<CrossMarginCollateralRatioResponse>> {\n return this.marketDataApi.crossMarginCollateralRatio();\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight: 1(IP)\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {GetAllCrossMarginPairsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllCrossMarginPairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Cross-Margin-Pairs Binance API Documentation}\n */\n getAllCrossMarginPairs(\n requestParameters: GetAllCrossMarginPairsRequest = {}\n ): Promise<RestApiResponse<GetAllCrossMarginPairsResponse>> {\n return this.marketDataApi.getAllCrossMarginPairs(requestParameters);\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight: 10(IP)\n *\n * @summary Get All Isolated Margin Symbol(MARKET_DATA)\n * @param {GetAllIsolatedMarginSymbolRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Isolated-Margin-Symbol Binance API Documentation}\n */\n getAllIsolatedMarginSymbol(\n requestParameters: GetAllIsolatedMarginSymbolRequest = {}\n ): Promise<RestApiResponse<GetAllIsolatedMarginSymbolResponse>> {\n return this.marketDataApi.getAllIsolatedMarginSymbol(requestParameters);\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight: 1(IP)\n *\n * @summary Get All Margin Assets (MARKET_DATA)\n * @param {GetAllMarginAssetsRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetAllMarginAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-All-Margin-Assets Binance API Documentation}\n */\n getAllMarginAssets(\n requestParameters: GetAllMarginAssetsRequest = {}\n ): Promise<RestApiResponse<GetAllMarginAssetsResponse>> {\n return this.marketDataApi.getAllMarginAssets(requestParameters);\n }\n\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight: 100\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {GetDelistScheduleRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetDelistScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Delist-Schedule Binance API Documentation}\n */\n getDelistSchedule(\n requestParameters: GetDelistScheduleRequest = {}\n ): Promise<RestApiResponse<GetDelistScheduleResponse>> {\n return this.marketDataApi.getDelistSchedule(requestParameters);\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n * In margin trading, you can place orders with limit price. Limit price should be within (-15%, 15%) of current index price for a list of margin trading pairs. This rule only impacts limit sell orders with limit price that is lower than current index price and limit buy orders with limit price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message notification if the limit price is 15% above the index price.\n * - Sell order: Your order will be rejected with an error message notification if the limit price is 15% below the index price.\n * Please review the limit price order placing strategy, backtest and calibrate the planned order size with the trading volume and order book depth to prevent trading loss.\n *\n * Weight: 1\n *\n * @summary Get Limit Price Pairs(MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<GetLimitPricePairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Limit-Price-Pairs Binance API Documentation}\n */\n getLimitPricePairs(): Promise<RestApiResponse<GetLimitPricePairsResponse>> {\n return this.marketDataApi.getLimitPricePairs();\n }\n\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight: 100\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {GetListScheduleRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetListScheduleResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-list-Schedule Binance API Documentation}\n */\n getListSchedule(\n requestParameters: GetListScheduleRequest = {}\n ): Promise<RestApiResponse<GetListScheduleResponse>> {\n return this.marketDataApi.getListSchedule(requestParameters);\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight: 1\n *\n * @summary Get Margin Asset Risk-Based Liquidation Ratio (MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Asset-Risk-Based-Liquidation-Ratio Binance API Documentation}\n */\n getMarginAssetRiskBasedLiquidationRatio(): Promise<\n RestApiResponse<GetMarginAssetRiskBasedLiquidationRatioResponse>\n > {\n return this.marketDataApi.getMarginAssetRiskBasedLiquidationRatio();\n }\n\n /**\n * Get Margin Restricted Assets\n *\n * Weight: 1\n *\n * @summary Get Margin Restricted Assets (MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<GetMarginRestrictedAssetsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Get-Margin-Restricted-Assets Binance API Documentation}\n */\n getMarginRestrictedAssets(): Promise<RestApiResponse<GetMarginRestrictedAssetsResponse>> {\n return this.marketDataApi.getMarginRestrictedAssets();\n }\n\n /**\n * Get isolated margin tier data collection with any tier as https://www.binance.com/en/margin-data\n *\n * Weight: 1(IP)\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {QueryIsolatedMarginTierDataRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Isolated-Margin-Tier-Data Binance API Documentation}\n */\n queryIsolatedMarginTierData(\n requestParameters: QueryIsolatedMarginTierDataRequest\n ): Promise<RestApiResponse<QueryIsolatedMarginTierDataResponse>> {\n return this.marketDataApi.queryIsolatedMarginTierData(requestParameters);\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight: 1\n *\n * @summary Query Liability Coin Leverage Bracket in Cross Margin Pro Mode(MARKET_DATA)\n *\n * @returns {Promise<RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Liability-Coin-Leverage-Bracket-in-Cross-Margin-Pro-Mode Binance API Documentation}\n */\n queryLiabilityCoinLeverageBracketInCrossMarginProMode(): Promise<\n RestApiResponse<QueryLiabilityCoinLeverageBracketInCrossMarginProModeResponse>\n > {\n return this.marketDataApi.queryLiabilityCoinLeverageBracketInCrossMarginProMode();\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight: 50\n *\n * @summary Query Margin Available Inventory(USER_DATA)\n * @param {QueryMarginAvailableInventoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-margin-avaliable-inventory Binance API Documentation}\n */\n queryMarginAvailableInventory(\n requestParameters: QueryMarginAvailableInventoryRequest\n ): Promise<RestApiResponse<QueryMarginAvailableInventoryResponse>> {\n return this.marketDataApi.queryMarginAvailableInventory(requestParameters);\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin PriceIndex (MARKET_DATA)\n * @param {QueryMarginPriceindexRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginPriceindexResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/market-data/Query-Margin-PriceIndex Binance API Documentation}\n */\n queryMarginPriceindex(\n requestParameters: QueryMarginPriceindexRequest\n ): Promise<RestApiResponse<QueryMarginPriceindexResponse>> {\n return this.marketDataApi.queryMarginPriceindex(requestParameters);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight: 3000\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\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/margin_trading/risk-data-stream/Close-User-Data-Stream Binance API Documentation}\n */\n closeUserDataStream(): Promise<RestApiResponse<void>> {\n return this.riskDataStreamApi.closeUserDataStream();\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight: 1\n *\n * @summary Keepalive User Data Stream (USER_STREAM)\n * @param {KeepaliveUserDataStreamRequest} requestParameters Request parameters.\n *\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/margin_trading/risk-data-stream/Keepalive-User-Data-Stream Binance API Documentation}\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n return this.riskDataStreamApi.keepaliveUserDataStream(requestParameters);\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight: 1\n *\n * @summary Start User Data Stream (USER_STREAM)\n *\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/margin_trading/risk-data-stream/Start-User-Data-Stream Binance API Documentation}\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n return this.riskDataStreamApi.startUserDataStream();\n }\n\n /**\n * - Binance Margin offers low-latency trading through a [special key](https://www.binance.com/en/support/faq/frequently-asked-questions-on-margin-special-api-key-3208663e900d4d2e9fec4140e1832f4e), available exclusively to users with VIP level 4 or higher.\n * - If you are VIP level 3 or below, please contact your VIP manager for eligibility criterias.**\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\n * - Cross Margin Pro (Additional agreement required and subject to meeting eligibility criteria)\n *\n **Unsupported Products:**\n *\n * - Portfolio Margin\n *\n * We support several types of API keys:\n *\n * Ed25519 (recommended)\n * HMAC\n * RSA\n *\n * We recommend to **use Ed25519 API keys** as it should provide the best performance and security out of all supported key types. We accept PKCS#8 (BEGIN PUBLIC KEY). For how to generate an RSA key pair to send API requests on Binance. Please refer to the document below [FAQ](https://www.binance.com/en/support/faq/how-to-generate-an-rsa-key-pair-to-send-api-requests-on-binance-2b79728f331e43079b27440d9d15c5db) .\n *\n * Weight: 1(UID)\n *\n * @summary Create Special Key(Low-Latency Trading)(TRADE)\n * @param {CreateSpecialKeyRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<CreateSpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Create-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n return this.tradeApi.createSpecialKey(requestParameters);\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Delete Special Key(Low-Latency Trading)(TRADE)\n * @param {DeleteSpecialKeyRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Delete-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n deleteSpecialKey(\n requestParameters: DeleteSpecialKeyRequest = {}\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.deleteSpecialKey(requestParameters);\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency Trading.\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight: 1(UID)\n *\n * @summary Edit ip for Special Key(Low-Latency Trading)(TRADE)\n * @param {EditIpForSpecialKeyRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Edit-ip-for-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.editIpForSpecialKey(requestParameters);\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Response in descending order\n *\n * Weight: 1(IP)\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {GetForceLiquidationRecordRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetForceLiquidationRecordResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Force-Liquidation-Record Binance API Documentation}\n */\n getForceLiquidationRecord(\n requestParameters: GetForceLiquidationRecordRequest = {}\n ): Promise<RestApiResponse<GetForceLiquidationRecordResponse>> {\n return this.tradeApi.getForceLiquidationRecord(requestParameters);\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight: 100\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {GetSmallLiabilityExchangeCoinListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-Coin-List Binance API Documentation}\n */\n getSmallLiabilityExchangeCoinList(\n requestParameters: GetSmallLiabilityExchangeCoinListRequest = {}\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeCoinListResponse>> {\n return this.tradeApi.getSmallLiabilityExchangeCoinList(requestParameters);\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight: 100(UID)\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {GetSmallLiabilityExchangeHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Get-Small-Liability-Exchange-History Binance API Documentation}\n */\n getSmallLiabilityExchangeHistory(\n requestParameters: GetSmallLiabilityExchangeHistoryRequest\n ): Promise<RestApiResponse<GetSmallLiabilityExchangeHistoryResponse>> {\n return this.tradeApi.getSmallLiabilityExchangeHistory(requestParameters);\n }\n\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight: 1\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-All-Open-Orders Binance API Documentation}\n */\n marginAccountCancelAllOpenOrdersOnASymbol(\n requestParameters: MarginAccountCancelAllOpenOrdersOnASymbolRequest\n ): Promise<RestApiResponse<MarginAccountCancelAllOpenOrdersOnASymbolResponse>> {\n return this.tradeApi.marginAccountCancelAllOpenOrdersOnASymbol(requestParameters);\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Canceling an individual leg will cancel the entire OCO\n *\n * Weight: 1(UID)\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {MarginAccountCancelOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-OCO Binance API Documentation}\n */\n marginAccountCancelOco(\n requestParameters: MarginAccountCancelOcoRequest\n ): Promise<RestApiResponse<MarginAccountCancelOcoResponse>> {\n return this.tradeApi.marginAccountCancelOco(requestParameters);\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Either orderId or origClientOrderId must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {MarginAccountCancelOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountCancelOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-Order Binance API Documentation}\n */\n marginAccountCancelOrder(\n requestParameters: MarginAccountCancelOrderRequest\n ): Promise<RestApiResponse<MarginAccountCancelOrderResponse>> {\n return this.tradeApi.marginAccountCancelOrder(requestParameters);\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OCO (TRADE)\n * @param {MarginAccountNewOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO Binance API Documentation}\n */\n marginAccountNewOco(\n requestParameters: MarginAccountNewOcoRequest\n ): Promise<RestApiResponse<MarginAccountNewOcoResponse>> {\n return this.tradeApi.marginAccountNewOco(requestParameters);\n }\n\n /**\n * Post a new order for margin account.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New Order (TRADE)\n * @param {MarginAccountNewOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-Order Binance API Documentation}\n */\n marginAccountNewOrder(\n requestParameters: MarginAccountNewOrderRequest\n ): Promise<RestApiResponse<MarginAccountNewOrderResponse>> {\n return this.tradeApi.marginAccountNewOrder(requestParameters);\n }\n\n /**\n * Post a new OTO order for margin account:\n *\n * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n * - OTOs add **2 orders** to the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {MarginAccountNewOtoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOtoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTO Binance API Documentation}\n */\n marginAccountNewOto(\n requestParameters: MarginAccountNewOtoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtoResponse>> {\n return this.tradeApi.marginAccountNewOto(requestParameters);\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n * - The behavior of the working order is the same as the OTO.\n * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n * - The rules of the pending above and pending below follow the same rules as the [Order List OCO](https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OCO).\n * - OTOCOs add **3 orders** against the unfilled order count, `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory:\n *\n * Weight: 6(UID)\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {MarginAccountNewOtocoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginAccountNewOtocoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Account-New-OTOCO Binance API Documentation}\n */\n marginAccountNewOtoco(\n requestParameters: MarginAccountNewOtocoRequest\n ): Promise<RestApiResponse<MarginAccountNewOtocoResponse>> {\n return this.tradeApi.marginAccountNewOtoco(requestParameters);\n }\n\n /**\n * Margin Manual Liquidation\n *\n * This endpoint can support Cross Margin Classic Mode and Pro Mode.\n * And only support Isolated Margin for restricted region.\n *\n * Weight: 3000\n *\n * @summary Margin Manual Liquidation(MARGIN)\n * @param {MarginManualLiquidationRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<MarginManualLiquidationResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Margin-Manual-Liquidation Binance API Documentation}\n */\n marginManualLiquidation(\n requestParameters: MarginManualLiquidationRequest\n ): Promise<RestApiResponse<MarginManualLiquidationResponse>> {\n return this.tradeApi.marginManualLiquidation(requestParameters);\n }\n\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight: 20(IP)\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Current-Margin-Order-Count-Usage Binance API Documentation}\n */\n queryCurrentMarginOrderCountUsage(\n requestParameters: QueryCurrentMarginOrderCountUsageRequest = {}\n ): Promise<RestApiResponse<QueryCurrentMarginOrderCountUsageResponse>> {\n return this.tradeApi.queryCurrentMarginOrderCountUsage(requestParameters);\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-all-OCO Binance API Documentation}\n */\n queryMarginAccountsAllOco(\n requestParameters: QueryMarginAccountsAllOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsAllOcoResponse>> {\n return this.tradeApi.queryMarginAccountsAllOco(requestParameters);\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * If orderId is set, it will get orders >= that orderId. Otherwise the orders within 24 hours are returned.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 200(IP)\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {QueryMarginAccountsAllOrdersRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-All-Orders Binance API Documentation}\n */\n queryMarginAccountsAllOrders(\n requestParameters: QueryMarginAccountsAllOrdersRequest\n ): Promise<RestApiResponse<QueryMarginAccountsAllOrdersResponse>> {\n return this.tradeApi.queryMarginAccountsAllOrders(requestParameters);\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-OCO Binance API Documentation}\n */\n queryMarginAccountsOco(\n requestParameters: QueryMarginAccountsOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOcoResponse>> {\n return this.tradeApi.queryMarginAccountsOco(requestParameters);\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-OCO Binance API Documentation}\n */\n queryMarginAccountsOpenOco(\n requestParameters: QueryMarginAccountsOpenOcoRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOcoResponse>> {\n return this.tradeApi.queryMarginAccountsOpenOco(requestParameters);\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * If the symbol is not sent, orders for all symbols will be returned in an array.\n * When all symbols are returned, the number of requests counted against the rate limiter is equal to the number of symbols currently trading on the exchange.\n * If isIsolated =\"TRUE\", symbol must be sent.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {QueryMarginAccountsOpenOrdersRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Open-Orders Binance API Documentation}\n */\n queryMarginAccountsOpenOrders(\n requestParameters: QueryMarginAccountsOpenOrdersRequest = {}\n ): Promise<RestApiResponse<QueryMarginAccountsOpenOrdersResponse>> {\n return this.tradeApi.queryMarginAccountsOpenOrders(requestParameters);\n }\n\n /**\n * Query Margin Account's Order\n *\n * Either orderId or origClientOrderId must be sent.\n * For some historical orders cummulativeQuoteQty will be < 0, meaning the data is not available at this time.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {QueryMarginAccountsOrderRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Order Binance API Documentation}\n */\n queryMarginAccountsOrder(\n requestParameters: QueryMarginAccountsOrderRequest\n ): Promise<RestApiResponse<QueryMarginAccountsOrderResponse>> {\n return this.tradeApi.queryMarginAccountsOrder(requestParameters);\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * If fromId is set, it will get trades >= that fromId. Otherwise the trades within 24 hours are returned.\n * Less than 24 hours between startTime and endTime.\n *\n * Weight: 10(IP)\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {QueryMarginAccountsTradeListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List Binance API Documentation}\n */\n queryMarginAccountsTradeList(\n requestParameters: QueryMarginAccountsTradeListRequest\n ): Promise<RestApiResponse<QueryMarginAccountsTradeListResponse>> {\n return this.tradeApi.queryMarginAccountsTradeList(requestParameters);\n }\n\n /**\n *\n * Weight: 10(IP)\n *\n * @summary Query Prevented Matches(USER_DATA)\n * @param {QueryPreventedMatchesRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryPreventedMatchesResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Prevented-Matches Binance API Documentation}\n */\n queryPreventedMatches(\n requestParameters: QueryPreventedMatchesRequest\n ): Promise<RestApiResponse<QueryPreventedMatchesResponse>> {\n return this.tradeApi.queryPreventedMatches(requestParameters);\n }\n\n /**\n * Query Special Key Information.\n *\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QuerySpecialKeyResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-of-Low-Latency-Trading Binance API Documentation}\n */\n querySpecialKey(\n requestParameters: QuerySpecialKeyRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyResponse>> {\n return this.tradeApi.querySpecialKey(requestParameters);\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight: 1(UID)\n *\n * @summary Query Special key List(Low Latency Trading)(TRADE)\n * @param {QuerySpecialKeyListRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QuerySpecialKeyListResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/trade/Query-Special-Key-List-of-Low-Latency-Trading Binance API Documentation}\n */\n querySpecialKeyList(\n requestParameters: QuerySpecialKeyListRequest = {}\n ): Promise<RestApiResponse<QuerySpecialKeyListResponse>> {\n return this.tradeApi.querySpecialKeyList(requestParameters);\n }\n\n /**\n * Small Liability Exchange\n *\n * Only convert once within 6 hours\n * Only liability valuation less than 10 USDT are supported\n * The maximum number of coin is 10\n *\n * Weight: 3000(UID)\n *\n * @summary Small Liability Exchange (MARGIN)\n * @param {SmallLiabilityExchangeRequest} requestParameters Request parameters.\n *\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/margin_trading/trade/Small-Liability-Exchange Binance API Documentation}\n */\n smallLiabilityExchange(\n requestParameters: SmallLiabilityExchangeRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.smallLiabilityExchange(requestParameters);\n }\n\n /**\n * Get Cross Margin Transfer History\n *\n * Response in descending order\n * The max interval between `startTime` and `endTime` is 30 days.\n * Returns data for last 7 days by default\n *\n * Weight: 1(IP)\n *\n * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {GetCrossMarginTransferHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Get-Cross-Margin-Transfer-History Binance API Documentation}\n */\n getCrossMarginTransferHistory(\n requestParameters: GetCrossMarginTransferHistoryRequest = {}\n ): Promise<RestApiResponse<GetCrossMarginTransferHistoryResponse>> {\n return this.transferApi.getCrossMarginTransferHistory(requestParameters);\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * Weight: 50(IP)\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {QueryMaxTransferOutAmountRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/docs/margin_trading/transfer/Query-Max-Transfer-Out-Amount Binance API Documentation}\n */\n queryMaxTransferOutAmount(\n requestParameters: QueryMaxTransferOutAmountRequest\n ): Promise<RestApiResponse<QueryMaxTransferOutAmountResponse>> {\n return this.transferApi.queryMaxTransferOutAmount(requestParameters);\n }\n}\n","/**\n * Binance Margin Trading REST API\n *\n * OpenAPI Specification for the Binance Margin Trading 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","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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';\n\nimport type { RiskDataStreamEventsResponse } from './types';\nimport type { TradeDataStreamEventsResponse } from './types';\n\nexport class WebsocketStreamsConnection {\n private websocketBase: WebsocketStreamsBase;\n\n constructor(websocketBase: WebsocketStreamsBase) {\n this.websocketBase = 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 risk data WebSocket stream using the provided listen key.\n * @param listenKey - The listen key for the risk data WebSocket stream.\n * @param id - Optional risk data stream ID\n * @returns A WebSocket stream handler for the risk data stream.\n */\n riskData(listenKey: string, id?: string): WebsocketStream<RiskDataStreamEventsResponse> {\n return createStreamHandler<RiskDataStreamEventsResponse>(this.websocketBase, listenKey, id);\n }\n\n /**\n * Subscribes to the trade data WebSocket stream using the provided listen key.\n * @param listenKey - The listen key for the trade data WebSocket stream.\n * @param id - Optional trade data stream ID\n * @returns A WebSocket stream handler for the trade data stream.\n */\n tradeData(listenKey: string, id?: string): WebsocketStream<TradeDataStreamEventsResponse> {\n return createStreamHandler<TradeDataStreamEventsResponse>(\n this.websocketBase,\n listenKey,\n id\n );\n }\n}\n","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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\n const websocketStreamsConnection = new WebsocketStreamsConnection(websocketBase);\n await websocketBase.connect(stream);\n return websocketStreamsConnection;\n }\n}\n","/**\n * Binance Margin Trading WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Margin Trading 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';\n\nexport * from './websocket-streams';\nexport * from './websocket-streams-connection';\n","import {\n buildUserAgent,\n ConfigurationRestAPI,\n ConfigurationWebsocketStreams,\n MARGIN_TRADING_REST_API_PROD_URL,\n MARGIN_TRADING_WS_STREAMS_PROD_URL,\n} from '@binance/common';\nimport { name, version } from '../package.json';\nimport { RestAPI } from './rest-api';\n\nimport { WebsocketStreams } from './websocket-streams';\n\nexport interface ConfigurationMarginTrading {\n configurationRestAPI?: ConfigurationRestAPI;\n\n configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class MarginTrading {\n public restAPI!: RestAPI;\n\n public websocketStreams!: WebsocketStreams;\n\n constructor(config: ConfigurationMarginTrading) {\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 = configRestAPI.basePath || MARGIN_TRADING_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?.configurationWebsocketStreams) {\n const configWebsocketStreams = new ConfigurationWebsocketStreams(\n config.configurationWebsocketStreams\n ) as ConfigurationWebsocketStreams & {\n userAgent: string;\n };\n configWebsocketStreams.wsURL =\n configWebsocketStreams.wsURL || MARGIN_TRADING_WS_STREAMS_PROD_URL;\n configWebsocketStreams.userAgent = userAgent;\n this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n }\n }\n}\n"],"mappings":"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"}