@binance/margin-trading 13.0.0 → 13.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.
- package/README.md +13 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: 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/trade-api.ts","../src/rest-api/modules/transfer-api.ts","../src/rest-api/modules/user-data-stream-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\": \"13.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.5.8\",\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.4.3\",\n \"axios\": \"^1.7.4\"\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(UID): 300\n *\n * Security Type: TRADE\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get BNB Burn Status\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get personal margin level information\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {string} [asset]\n * @param {string} [symbol] Mandatory for Isolated data\n * @param {QueryCrossIsolatedMarginCapitalFlowTypeEnum} [type]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryCrossIsolatedMarginCapitalFlow: async (\n asset?: string,\n symbol?: string,\n type?: QueryCrossIsolatedMarginCapitalFlowTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Margin Account Details\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Isolated Margin Account Info\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {string} [symbols]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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(UID): 300\n *\n * Security Type: TRADE\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(IP): 1\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: USER_DATA\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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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(IP): 10\n *\n * Security Type: USER_DATA\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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(IP): 1\n *\n * Security Type: USER_DATA\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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 *\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 *\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 *\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 *\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 * Mandatory for Isolated data\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {'TRANSFER' | 'BORROW' | 'REPAY' | 'BUY_INCOME' | 'BUY_EXPENSE' | 'SELL_INCOME' | 'SELL_EXPENSE' | 'TRADING_COMMISSION' | 'BUY_LIQUIDATION' | 'SELL_LIQUIDATION' | 'REPAY_LIQUIDATION' | 'OTHER_LIQUIDATION' | 'LIQUIDATION_FEE' | 'SMALL_BALANCE_CONVERT' | 'COMMISSION_RETURN' | 'SMALL_CONVERT'}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly type?: QueryCrossIsolatedMarginCapitalFlowTypeEnum;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly fromId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\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 *\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 *\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 *\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly symbols?: string;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly symbol?: string;\n\n /**\n *\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get personal margin level information\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum QueryCrossIsolatedMarginCapitalFlowTypeEnum {\n TRANSFER = 'TRANSFER',\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n BUY_INCOME = 'BUY_INCOME',\n BUY_EXPENSE = 'BUY_EXPENSE',\n SELL_INCOME = 'SELL_INCOME',\n SELL_EXPENSE = 'SELL_EXPENSE',\n TRADING_COMMISSION = 'TRADING_COMMISSION',\n BUY_LIQUIDATION = 'BUY_LIQUIDATION',\n SELL_LIQUIDATION = 'SELL_LIQUIDATION',\n REPAY_LIQUIDATION = 'REPAY_LIQUIDATION',\n OTHER_LIQUIDATION = 'OTHER_LIQUIDATION',\n LIQUIDATION_FEE = 'LIQUIDATION_FEE',\n SMALL_BALANCE_CONVERT = 'SMALL_BALANCE_CONVERT',\n COMMISSION_RETURN = 'COMMISSION_RETURN',\n SMALL_CONVERT = 'SMALL_CONVERT',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {string} assets\n * @param {GetFutureHourlyInterestRateIsIsolatedEnum} isIsolated\n *\n * @throws {RequiredError}\n */\n getFutureHourlyInterestRate: async (\n assets: string,\n isIsolated: GetFutureHourlyInterestRateIsIsolatedEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Interest History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\n *\n * @summary Get Interest History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin account borrow/repay\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\n * @param {string} asset\n * @param {MarginAccountBorrowRepayIsIsolatedEnum} isIsolated `TRUE` for Isolated Margin, `FALSE` for Cross Margin\n * @param {string} amount\n * @param {MarginAccountBorrowRepayTypeEnum} type\n * @param {string} [symbol] Only for Isolated margin\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountBorrowRepay: async (\n asset: string,\n isIsolated: MarginAccountBorrowRepayIsIsolatedEnum,\n amount: string,\n type: MarginAccountBorrowRepayTypeEnum,\n symbol?: 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 '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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query borrow/repay records in Margin account\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\n *\n * @summary Query borrow/repay records in Margin account (USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountTypeEnum} type\n * @param {string} [asset]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [txId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryBorrowRepayRecordsInMarginAccount: async (\n type: QueryBorrowRepayRecordsInMarginAccountTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Interest Rate History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {string} asset\n * @param {number | bigint} [vipLevel]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Borrow\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @summary Query Max Borrow (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 100\n *\n * Security Type: USER_DATA\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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(IP): 1\n *\n * Security Type: USER_DATA\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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 *\n * @type {string}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly assets: string;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly isIsolated: GetFutureHourlyInterestRateIsIsolatedEnum;\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 *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\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\n * @type {'TRUE' | 'FALSE'}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly isIsolated: MarginAccountBorrowRepayIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly amount: string;\n\n /**\n *\n * @type {'BORROW' | 'REPAY'}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly type: MarginAccountBorrowRepayTypeEnum;\n\n /**\n * Only for Isolated margin\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'BORROW' | 'REPAY'}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly type: QueryBorrowRepayRecordsInMarginAccountTypeEnum;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly asset?: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly txId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly size?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\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 *\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 *\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#get-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Interest History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin account borrow/repay\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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?.amount,\n requestParameters?.type,\n requestParameters?.symbol,\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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#query-borrow-repay-records-in-margin-account 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Borrow\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum GetFutureHourlyInterestRateIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountBorrowRepayIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountBorrowRepayTypeEnum {\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n}\n\nexport enum QueryBorrowRepayRecordsInMarginAccountTypeEnum {\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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(IP): 100\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Cross Margin Pairs\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {string} [symbol]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get All Isolated Margin Symbol (MARKET_DATA)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Margin Assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight(IP): 100\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query trading pairs with restriction on limit price range.\n *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight(IP): 100\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {string} symbol\n * @param {number | bigint} [tier]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin available Inventory query\n *\n * Weight(UID): 50\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Available Inventory (USER_DATA)\n * @param {QueryMarginAvailableInventoryTypeEnum} type\n *\n * @throws {RequiredError}\n */\n queryMarginAvailableInventory: async (\n type: QueryMarginAvailableInventoryTypeEnum\n ): 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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin PriceIndex\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 10\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 100\n *\n * Security Type: MARKET_DATA\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 *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 100\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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 the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: USER_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(UID): 50\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: MARKET_DATA\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 *\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 *\n * @type {string}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly symbol?: string;\n\n /**\n *\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 *\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 *\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 *\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly tier?: number | bigint;\n\n /**\n *\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 *\n * @type {'MARGIN' | 'ISOLATED'}\n * @memberof MarketDataApiQueryMarginAvailableInventory\n */\n readonly type: QueryMarginAvailableInventoryTypeEnum;\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight(UID): 50\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/market-data#query-margin-available-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n\nexport enum QueryMarginAvailableInventoryTypeEnum {\n MARGIN = 'MARGIN',\n ISOLATED = 'ISOLATED',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 LiquidationLoanRepayResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryLiquidationLoanRepayHistoryResponse,\n QueryLiquidationLoanResponse,\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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\n *\n * @summary Create Special Key(Low-Latency Trading) (TRADE)\n * @param {string} apiName\n * @param {string} [symbol]\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\n * key.\n *\n * 2. Need to be encoded to URL-encoded format\n * @param {CreateSpecialKeyPermissionModeEnum} [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]\n *\n * @throws {RequiredError}\n */\n createSpecialKey: async (\n apiName: string,\n symbol?: string,\n ip?: string,\n publicKey?: string,\n permissionMode?: CreateSpecialKeyPermissionModeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Delete Special Key(Low-Latency Trading) (TRADE)\n * @param {string} [apiName]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {number | bigint} [recvWindow] The value cannot be greater than `60000`\n *\n * @throws {RequiredError}\n */\n exitSpecialKeyMode: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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/exit-special-key-mode',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Small liability Exchange History\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {number | bigint} current\n * @param {number | bigint} size\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {string} asset The asset to repay (e.g. USDT, USDC)\n * @param {number} amount Repayment amount, must be greater than 0\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n liquidationLoanRepay: async (\n asset: string,\n amount: number,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('liquidationLoanRepay', 'asset', asset);\n // verify required parameter 'amount' is not null or undefined\n assertParamExists('liquidationLoanRepay', 'amount', amount);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (amount !== undefined && amount !== null) {\n localVarQueryParameter['amount'] = amount;\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/liquidation-loan/repay',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\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(IP): 1\n *\n * Security Type: TRADE\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelAllOpenOrdersOnASymbol: async (\n symbol: string,\n isIsolated?: MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelOcoIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderListId]\n * @param {string} [listClientOrderId]\n * @param {string} [newClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOco: async (\n symbol: string,\n isIsolated?: MarginAccountCancelOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an active order for margin account.\n *\n * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelOrderIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {string} [newClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOrder: async (\n symbol: string,\n isIsolated?: MarginAccountCancelOrderIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Send in a new OCO for a margin account\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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 {MarginAccountNewOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [listClientOrderId] A unique Id for the entire orderList\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 {MarginAccountNewOcoStopLimitTimeInForceEnum} [stopLimitTimeInForce]\n * @param {MarginAccountNewOcoNewOrderRespTypeEnum} [newOrderRespType]\n * @param {MarginAccountNewOcoSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOcoSelfTradePreventionModeEnum} [selfTradePreventionMode]\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.\n * @param {number | bigint} [recvWindow]\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?: MarginAccountNewOcoIsIsolatedEnum,\n listClientOrderId?: string,\n limitClientOrderId?: string,\n limitIcebergQty?: number,\n stopClientOrderId?: string,\n stopLimitPrice?: number,\n stopIcebergQty?: number,\n stopLimitTimeInForce?: MarginAccountNewOcoStopLimitTimeInForceEnum,\n newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOcoSideEffectTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOcoSelfTradePreventionModeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new order for margin account.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * @summary Margin Account New Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOrderSideEnum} side\n * @param {MarginAccountNewOrderTypeEnum} type\n * @param {MarginAccountNewOrderIsIsolatedEnum} [isIsolated]\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] A unique id among open orders. Automatically generated if not sent.\n * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @param {MarginAccountNewOrderNewOrderRespTypeEnum} [newOrderRespType] MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {MarginAccountNewOrderSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOrderTimeInForceEnum} [timeInForce]\n * @param {MarginAccountNewOrderSelfTradePreventionModeEnum} [selfTradePreventionMode]\n * @param {number | bigint} [trailingDelta] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\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 repaid after the order is cancelled.\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOrder: async (\n symbol: string,\n side: MarginAccountNewOrderSideEnum,\n type: MarginAccountNewOrderTypeEnum,\n isIsolated?: MarginAccountNewOrderIsIsolatedEnum,\n quantity?: number,\n quoteOrderQty?: number,\n price?: number,\n stopPrice?: number,\n newClientOrderId?: string,\n icebergQty?: number,\n newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOrderSideEffectTypeEnum,\n timeInForce?: MarginAccountNewOrderTimeInForceEnum,\n selfTradePreventionMode?: MarginAccountNewOrderSelfTradePreventionModeEnum,\n trailingDelta?: number | bigint,\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 const localVarHeaderParameter: 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 (trailingDelta !== undefined && trailingDelta !== null) {\n localVarQueryParameter['trailingDelta'] = trailingDelta;\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 headerParams: localVarHeaderParameter,\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOtoWorkingTypeEnum} workingType\n * @param {MarginAccountNewOtoWorkingSideEnum} workingSide\n * @param {number} workingPrice\n * @param {number} workingQuantity Sets the quantity for the working order.\n * @param {number} workingIcebergQty This can only be used if `workingTimeInForce` is `GTC`.\n * @param {MarginAccountNewOtoPendingTypeEnum} pendingType\n * @param {MarginAccountNewOtoPendingSideEnum} pendingSide\n * @param {number} pendingQuantity Sets the quantity for the pending order.\n * @param {MarginAccountNewOtoIsIsolatedEnum} [isIsolated]\n * @param {string} [listClientOrderId] Arbitrary unique ID among open order lists. Automatically generated if not sent.<br/>A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired.<br/>`listClientOrderId` is distinct from the `workingClientOrderId` and the `pendingClientOrderId`.\n * @param {MarginAccountNewOtoNewOrderRespTypeEnum} [newOrderRespType] MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {MarginAccountNewOtoSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOtoSelfTradePreventionModeEnum} [selfTradePreventionMode]\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {MarginAccountNewOtoWorkingTimeInForceEnum} [workingTimeInForce]\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 {MarginAccountNewOtoPendingTimeInForceEnum} [pendingTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOto: async (\n symbol: string,\n workingType: MarginAccountNewOtoWorkingTypeEnum,\n workingSide: MarginAccountNewOtoWorkingSideEnum,\n workingPrice: number,\n workingQuantity: number,\n workingIcebergQty: number,\n pendingType: MarginAccountNewOtoPendingTypeEnum,\n pendingSide: MarginAccountNewOtoPendingSideEnum,\n pendingQuantity: number,\n isIsolated?: MarginAccountNewOtoIsIsolatedEnum,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOtoSideEffectTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOtoSelfTradePreventionModeEnum,\n autoRepayAtCancel?: boolean,\n workingClientOrderId?: string,\n workingTimeInForce?: MarginAccountNewOtoWorkingTimeInForceEnum,\n pendingClientOrderId?: string,\n pendingPrice?: number,\n pendingStopPrice?: number,\n pendingTrailingDelta?: number,\n pendingIcebergQty?: number,\n pendingTimeInForce?: MarginAccountNewOtoPendingTimeInForceEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTOCO order for margin account:\n *\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOtocoWorkingTypeEnum} workingType\n * @param {MarginAccountNewOtocoWorkingSideEnum} workingSide\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {MarginAccountNewOtocoPendingSideEnum} pendingSide\n * @param {number} pendingQuantity\n * @param {MarginAccountNewOtocoPendingAboveTypeEnum} pendingAboveType\n * @param {MarginAccountNewOtocoIsIsolatedEnum} [isIsolated]\n * @param {MarginAccountNewOtocoSideEffectTypeEnum} [sideEffectType]\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @param {string} [listClientOrderId] Arbitrary unique ID among open order lists. Automatically generated if not sent. A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired. `listClientOrderId` is distinct from the `workingClientOrderId`, `pendingAboveClientOrderId`, and the `pendingBelowClientOrderId`.\n * @param {MarginAccountNewOtocoNewOrderRespTypeEnum} [newOrderRespType]\n * @param {MarginAccountNewOtocoSelfTradePreventionModeEnum} [selfTradePreventionMode]\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 {MarginAccountNewOtocoWorkingTimeInForceEnum} [workingTimeInForce]\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 {MarginAccountNewOtocoPendingAboveTimeInForceEnum} [pendingAboveTimeInForce]\n * @param {MarginAccountNewOtocoPendingBelowTypeEnum} [pendingBelowType]\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 {MarginAccountNewOtocoPendingBelowTimeInForceEnum} [pendingBelowTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOtoco: async (\n symbol: string,\n workingType: MarginAccountNewOtocoWorkingTypeEnum,\n workingSide: MarginAccountNewOtocoWorkingSideEnum,\n workingPrice: number,\n workingQuantity: number,\n pendingSide: MarginAccountNewOtocoPendingSideEnum,\n pendingQuantity: number,\n pendingAboveType: MarginAccountNewOtocoPendingAboveTypeEnum,\n isIsolated?: MarginAccountNewOtocoIsIsolatedEnum,\n sideEffectType?: MarginAccountNewOtocoSideEffectTypeEnum,\n autoRepayAtCancel?: boolean,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOtocoSelfTradePreventionModeEnum,\n workingClientOrderId?: string,\n workingIcebergQty?: number,\n workingTimeInForce?: MarginAccountNewOtocoWorkingTimeInForceEnum,\n pendingAboveClientOrderId?: string,\n pendingAbovePrice?: number,\n pendingAboveStopPrice?: number,\n pendingAboveTrailingDelta?: number,\n pendingAboveIcebergQty?: number,\n pendingAboveTimeInForce?: MarginAccountNewOtocoPendingAboveTimeInForceEnum,\n pendingBelowType?: MarginAccountNewOtocoPendingBelowTypeEnum,\n pendingBelowClientOrderId?: string,\n pendingBelowPrice?: number,\n pendingBelowStopPrice?: number,\n pendingBelowTrailingDelta?: number,\n pendingBelowIcebergQty?: number,\n pendingBelowTimeInForce?: MarginAccountNewOtocoPendingBelowTimeInForceEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin Manual Liquidation\n *\n * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\n * @param {MarginManualLiquidationTypeEnum} type\n * @param {string} [symbol] When type selects `ISOLATED`, `symbol` must be filled in\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginManualLiquidation: async (\n type: MarginManualLiquidationTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight(IP): 20\n *\n * Security Type: TRADE\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryCurrentMarginOrderCountUsage: async (\n isIsolated?: QueryCurrentMarginOrderCountUsageIsIsolatedEnum,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryLiquidationLoan: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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/liquidation-loan',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {number | bigint} [startTime] Start time in Unix timestamp (milliseconds). Defaults to 7 days ago if not specified\n * @param {number | bigint} [endTime] End time in Unix timestamp (milliseconds). Defaults to now if not specified\n * @param {number | bigint} [current] Current page number, default `1`\n * @param {number | bigint} [size] Page size, default `50`\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryLiquidationLoanRepayHistory: async (\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 const localVarHeaderParameter: 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 (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/liquidation-loan/repay-history',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOco: async (\n isIsolated?: QueryMarginAccountsAllOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's All Orders\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsAllOrdersIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOrders: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsAllOrdersIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [orderListId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOco: async (\n isIsolated?: QueryMarginAccountsOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open OCO\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOco: async (\n isIsolated?: QueryMarginAccountsOpenOcoIsIsolatedEnum,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open Orders\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {QueryMarginAccountsOpenOrdersIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOrders: async (\n symbol?: string,\n isIsolated?: QueryMarginAccountsOpenOrdersIsIsolatedEnum,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Order\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsOrderIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOrder: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsOrderIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Trade List\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsTradeListIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsTradeList: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsTradeListIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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 {QueryPreventedMatchesIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryPreventedMatches: async (\n symbol: string,\n preventedMatchId?: number | bigint,\n orderId?: number | bigint,\n fromPreventedMatchId?: number | bigint,\n isIsolated?: QueryPreventedMatchesIsIsolatedEnum,\n recvWindow?: number | bigint\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 const localVarHeaderParameter: 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 (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/myPreventedMatches',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\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(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Query Special key(Low Latency Trading) (TRADE)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Query Special key List(Low Latency Trading) (TRADE)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Small Liability Exchange\n *\n * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @summary Small Liability Exchange (MARGIN)\n * @param {string} assetNames The assets list of small liability exchange\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n smallLiabilityExchange: async (\n assetNames: 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 const localVarHeaderParameter: Record<string, unknown> = {};\n\n if (assetNames !== undefined && assetNames !== null) {\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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n /**\n * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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 * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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 * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n exitSpecialKeyMode(\n requestParameters?: ExitSpecialKeyModeRequest\n ): Promise<RestApiResponse<object>>;\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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(IP): 100\n *\n * Security Type: USER_DATA\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(UID): 100\n *\n * Security Type: USER_DATA\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 * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>>;\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight(IP): 1\n *\n * Security Type: TRADE\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 * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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 * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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 *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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 * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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(IP): 20\n *\n * Security Type: TRADE\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 * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryLiquidationLoan(\n requestParameters?: QueryLiquidationLoanRequest\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>>;\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryLiquidationLoanRepayHistory(\n requestParameters?: QueryLiquidationLoanRepayHistoryRequest\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>;\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\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 * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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(IP): 10\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: USER_DATA\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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 * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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(UID): 1\n *\n * Security Type: TRADE\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(UID): 1\n *\n * Security Type: TRADE\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 * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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 *\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\n * key.\n *\n * 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 {'TRADE' | 'READ'}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly permissionMode?: CreateSpecialKeyPermissionModeEnum;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for exitSpecialKeyMode operation in TradeApi.\n * @interface ExitSpecialKeyModeRequest\n */\nexport interface ExitSpecialKeyModeRequest {\n /**\n * The value cannot be greater than `60000`\n * @type {number | bigint}\n * @memberof TradeApiExitSpecialKeyMode\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 *\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 *\n * @type {string}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly size?: number | bigint;\n\n /**\n *\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 *\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 *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly current: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly size: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for liquidationLoanRepay operation in TradeApi.\n * @interface LiquidationLoanRepayRequest\n */\nexport interface LiquidationLoanRepayRequest {\n /**\n * The asset to repay (e.g. USDT, USDC)\n * @type {string}\n * @memberof TradeApiLiquidationLoanRepay\n */\n readonly asset: string;\n\n /**\n * Repayment amount, must be greater than 0\n * @type {number}\n * @memberof TradeApiLiquidationLoanRepay\n */\n readonly amount: number;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiLiquidationLoanRepay\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly isIsolated?: MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly isIsolated?: MarginAccountCancelOcoIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly listClientOrderId?: string;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly newClientOrderId?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly isIsolated?: MarginAccountCancelOrderIsIsolatedEnum;\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 *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly isIsolated?: MarginAccountNewOcoIsIsolatedEnum;\n\n /**\n * A unique Id for the entire orderList\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 *\n * @type {'GTC' | 'FOK' | 'IOC'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitTimeInForce?: MarginAccountNewOcoStopLimitTimeInForceEnum;\n\n /**\n *\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum;\n\n /**\n *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY' | 'AUTO_REPAY' | 'AUTO_BORROW_REPAY'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly sideEffectType?: MarginAccountNewOcoSideEffectTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly selfTradePreventionMode?: MarginAccountNewOcoSelfTradePreventionModeEnum;\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.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n *\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 *\n * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly type: MarginAccountNewOrderTypeEnum;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly isIsolated?: MarginAccountNewOrderIsIsolatedEnum;\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 * A unique id among open orders. Automatically generated if not sent.\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 * 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 *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY' | 'AUTO_REPAY' | 'AUTO_BORROW_REPAY'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly sideEffectType?: MarginAccountNewOrderSideEffectTypeEnum;\n\n /**\n *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly timeInForce?: MarginAccountNewOrderTimeInForceEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly selfTradePreventionMode?: MarginAccountNewOrderSelfTradePreventionModeEnum;\n\n /**\n * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly trailingDelta?: number | bigint;\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 repaid after the order is cancelled.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n *\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 *\n * @type {'LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingType: MarginAccountNewOtoWorkingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingSide: MarginAccountNewOtoWorkingSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingPrice: number;\n\n /**\n * Sets the quantity for the working order.\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 *\n * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingType: MarginAccountNewOtoPendingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingSide: MarginAccountNewOtoPendingSideEnum;\n\n /**\n * Sets the quantity for the pending order.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingQuantity: number;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly isIsolated?: MarginAccountNewOtoIsIsolatedEnum;\n\n /**\n * Arbitrary unique ID among open order lists. Automatically generated if not sent.<br/>A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired.<br/>`listClientOrderId` is distinct from the `workingClientOrderId` and the `pendingClientOrderId`.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly listClientOrderId?: string;\n\n /**\n * 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 *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly sideEffectType?: MarginAccountNewOtoSideEffectTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly selfTradePreventionMode?: MarginAccountNewOtoSelfTradePreventionModeEnum;\n\n /**\n * Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingTimeInForce?: MarginAccountNewOtoWorkingTimeInForceEnum;\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTimeInForce?: MarginAccountNewOtoPendingTimeInForceEnum;\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 *\n * @type {'LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingType: MarginAccountNewOtocoWorkingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingSide: MarginAccountNewOtocoWorkingSideEnum;\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 *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingSide: MarginAccountNewOtocoPendingSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingQuantity: number;\n\n /**\n *\n * @type {'LIMIT_MAKER' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveType: MarginAccountNewOtocoPendingAboveTypeEnum;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly isIsolated?: MarginAccountNewOtocoIsIsolatedEnum;\n\n /**\n *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly sideEffectType?: MarginAccountNewOtocoSideEffectTypeEnum;\n\n /**\n * Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Arbitrary unique ID among open order lists. Automatically generated if not sent. A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired. `listClientOrderId` is distinct from the `workingClientOrderId`, `pendingAboveClientOrderId`, and the `pendingBelowClientOrderId`.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly listClientOrderId?: string;\n\n /**\n *\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly selfTradePreventionMode?: MarginAccountNewOtocoSelfTradePreventionModeEnum;\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingTimeInForce?: MarginAccountNewOtocoWorkingTimeInForceEnum;\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 {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTimeInForce?: MarginAccountNewOtocoPendingAboveTimeInForceEnum;\n\n /**\n *\n * @type {'LIMIT_MAKER' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowType?: MarginAccountNewOtocoPendingBelowTypeEnum;\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 {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTimeInForce?: MarginAccountNewOtocoPendingBelowTimeInForceEnum;\n}\n\n/**\n * Request parameters for marginManualLiquidation operation in TradeApi.\n * @interface MarginManualLiquidationRequest\n */\nexport interface MarginManualLiquidationRequest {\n /**\n *\n * @type {'MARGIN' | 'ISOLATED'}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly type: MarginManualLiquidationTypeEnum;\n\n /**\n * When type selects `ISOLATED`, `symbol` must be filled in\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly isIsolated?: QueryCurrentMarginOrderCountUsageIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryLiquidationLoan operation in TradeApi.\n * @interface QueryLiquidationLoanRequest\n */\nexport interface QueryLiquidationLoanRequest {\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoan\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryLiquidationLoanRepayHistory operation in TradeApi.\n * @interface QueryLiquidationLoanRepayHistoryRequest\n */\nexport interface QueryLiquidationLoanRepayHistoryRequest {\n /**\n * Start time in Unix timestamp (milliseconds). Defaults to 7 days ago if not specified\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n * End time in Unix timestamp (milliseconds). Defaults to now if not specified\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Current page number, default `1`\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Page size, default `50`\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly isIsolated?: QueryMarginAccountsAllOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly fromId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly isIsolated?: QueryMarginAccountsAllOrdersIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly orderId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly isIsolated?: QueryMarginAccountsOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly symbol?: string;\n\n /**\n *\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 *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly isIsolated?: QueryMarginAccountsOpenOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly isIsolated?: QueryMarginAccountsOpenOrdersIsIsolatedEnum;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly isIsolated?: QueryMarginAccountsOrderIsIsolatedEnum;\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 *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly isIsolated?: QueryMarginAccountsTradeListIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly orderId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly fromId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly isIsolated?: QueryPreventedMatchesIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\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 *\n * @type {string}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly symbol?: string;\n\n /**\n *\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\n * @type {string}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly assetNames: string;\n\n /**\n *\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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#create-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#delete-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#edit-ip-for-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<object>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#exit-special-key-mode Binance API Documentation}\n */\n public async exitSpecialKeyMode(\n requestParameters: ExitSpecialKeyModeRequest = {}\n ): Promise<RestApiResponse<object>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.exitSpecialKeyMode(\n requestParameters?.recvWindow\n );\n return sendRequest<object>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<LiquidationLoanRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#liquidation-loan-repay Binance API Documentation}\n */\n public async liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.liquidationLoanRepay(\n requestParameters?.asset,\n requestParameters?.amount,\n requestParameters?.recvWindow\n );\n return sendRequest<LiquidationLoanRepayResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(IP): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-cancel-all-open-orders-on-asymbol 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new order for margin account.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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?.trailingDelta,\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.headerParams,\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin Manual Liquidation\n *\n * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 20\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan Binance API Documentation}\n */\n public async queryLiquidationLoan(\n requestParameters: QueryLiquidationLoanRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryLiquidationLoan(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryLiquidationLoanResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan-repay-history Binance API Documentation}\n */\n public async queryLiquidationLoanRepayHistory(\n requestParameters: QueryLiquidationLoanRepayHistoryRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryLiquidationLoanRepayHistory(\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryLiquidationLoanRepayHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(IP): 200\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Order\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-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?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryPreventedMatchesResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key-list 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Small Liability Exchange\n *\n * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum CreateSpecialKeyPermissionModeEnum {\n TRADE = 'TRADE',\n READ = 'READ',\n}\n\nexport enum MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountCancelOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountCancelOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOcoSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOcoStopLimitTimeInForceEnum {\n GTC = 'GTC',\n FOK = 'FOK',\n IOC = 'IOC',\n}\n\nexport enum MarginAccountNewOcoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOcoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n AUTO_REPAY = 'AUTO_REPAY',\n AUTO_BORROW_REPAY = 'AUTO_BORROW_REPAY',\n}\n\nexport enum MarginAccountNewOcoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOrderSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOrderTypeEnum {\n LIMIT = 'LIMIT',\n MARKET = 'MARKET',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n TAKE_PROFIT = 'TAKE_PROFIT',\n TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOrderNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n AUTO_REPAY = 'AUTO_REPAY',\n AUTO_BORROW_REPAY = 'AUTO_BORROW_REPAY',\n}\n\nexport enum MarginAccountNewOrderTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOrderSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtoWorkingTypeEnum {\n LIMIT = 'LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtoWorkingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtoPendingTypeEnum {\n LIMIT = 'LIMIT',\n MARKET = 'MARKET',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n TAKE_PROFIT = 'TAKE_PROFIT',\n TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtoPendingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOtoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n}\n\nexport enum MarginAccountNewOtoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtoWorkingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtoPendingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoWorkingTypeEnum {\n LIMIT = 'LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtocoWorkingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtocoPendingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtocoPendingAboveTypeEnum {\n LIMIT_MAKER = 'LIMIT_MAKER',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n}\n\nexport enum MarginAccountNewOtocoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOtocoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n}\n\nexport enum MarginAccountNewOtocoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtocoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtocoWorkingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoPendingAboveTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoPendingBelowTypeEnum {\n LIMIT_MAKER = 'LIMIT_MAKER',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n}\n\nexport enum MarginAccountNewOtocoPendingBelowTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginManualLiquidationTypeEnum {\n MARGIN = 'MARGIN',\n ISOLATED = 'ISOLATED',\n}\n\nexport enum QueryCurrentMarginOrderCountUsageIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsAllOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsAllOrdersIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOpenOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOpenOrdersIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsTradeListIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryPreventedMatchesIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {string} [asset]\n * @param {GetCrossMarginTransferHistoryTypeEnum} [type]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n getCrossMarginTransferHistory: async (\n asset?: string,\n type?: GetCrossMarginTransferHistoryTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Transfer-Out Amount\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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 *\n * @type {'ROLL_IN' | 'ROLL_OUT'}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly type?: GetCrossMarginTransferHistoryTypeEnum;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum GetCrossMarginTransferHistoryTypeEnum {\n ROLL_IN = 'ROLL_IN',\n ROLL_OUT = 'ROLL_OUT',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * UserDataStreamApi - axios parameter creator\n */\nconst UserDataStreamApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * UserDataStreamApi - interface\n * @interface UserDataStreamApi\n */\nexport interface UserDataStreamApiInterface {\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof UserDataStreamApiInterface\n */\n closeUserDataStream(): Promise<RestApiResponse<void>>;\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApiInterface\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\n *\n * @summary Start User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof UserDataStreamApiInterface\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * Request parameters for keepaliveUserDataStream operation in UserDataStreamApi.\n * @interface KeepaliveUserDataStreamRequest\n */\nexport interface KeepaliveUserDataStreamRequest {\n /**\n *\n * @type {string}\n * @memberof UserDataStreamApiKeepaliveUserDataStream\n */\n readonly listenKey: string;\n}\n\n/**\n * UserDataStreamApi - object-oriented interface\n * @class UserDataStreamApi\n */\nexport class UserDataStreamApi implements UserDataStreamApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = UserDataStreamApiAxiosParamCreator(configuration);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 { TradeApi } from './modules/trade-api';\nimport { TransferApi } from './modules/transfer-api';\nimport { UserDataStreamApi } from './modules/user-data-stream-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 {\n CreateSpecialKeyRequest,\n DeleteSpecialKeyRequest,\n EditIpForSpecialKeyRequest,\n ExitSpecialKeyModeRequest,\n GetForceLiquidationRecordRequest,\n GetSmallLiabilityExchangeCoinListRequest,\n GetSmallLiabilityExchangeHistoryRequest,\n LiquidationLoanRepayRequest,\n MarginAccountCancelAllOpenOrdersOnASymbolRequest,\n MarginAccountCancelOcoRequest,\n MarginAccountCancelOrderRequest,\n MarginAccountNewOcoRequest,\n MarginAccountNewOrderRequest,\n MarginAccountNewOtoRequest,\n MarginAccountNewOtocoRequest,\n MarginManualLiquidationRequest,\n QueryCurrentMarginOrderCountUsageRequest,\n QueryLiquidationLoanRequest,\n QueryLiquidationLoanRepayHistoryRequest,\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';\nimport type { KeepaliveUserDataStreamRequest } from './modules/user-data-stream-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 {\n CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n LiquidationLoanRepayResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryLiquidationLoanResponse,\n QueryLiquidationLoanRepayHistoryResponse,\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';\nimport type { StartUserDataStreamResponse } from './types';\n\nexport class RestAPI {\n private configuration: ConfigurationRestAPI;\n private accountApi: AccountApi;\n private borrowRepayApi: BorrowRepayApi;\n private marketDataApi: MarketDataApi;\n private tradeApi: TradeApi;\n private transferApi: TransferApi;\n private userDataStreamApi: UserDataStreamApi;\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.tradeApi = new TradeApi(configuration);\n this.transferApi = new TransferApi(configuration);\n this.userDataStreamApi = new UserDataStreamApi(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 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 undefined,\n { isSigned: true }\n );\n }\n\n /**\n * Adjust cross margin max leverage\n *\n * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#get-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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#query-borrow-repay-records-in-margin-account 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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 50\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/market-data#query-margin-available-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(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#create-special-key Binance API Documentation}\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n return this.tradeApi.createSpecialKey(requestParameters);\n }\n\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#delete-special-key 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\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#edit-ip-for-special-key Binance API Documentation}\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.editIpForSpecialKey(requestParameters);\n }\n\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<object>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#exit-special-key-mode Binance API Documentation}\n */\n exitSpecialKeyMode(\n requestParameters: ExitSpecialKeyModeRequest = {}\n ): Promise<RestApiResponse<object>> {\n return this.tradeApi.exitSpecialKeyMode(requestParameters);\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<LiquidationLoanRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#liquidation-loan-repay Binance API Documentation}\n */\n liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>> {\n return this.tradeApi.liquidationLoanRepay(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(IP): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-cancel-all-open-orders-on-asymbol 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 * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 20\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan Binance API Documentation}\n */\n queryLiquidationLoan(\n requestParameters: QueryLiquidationLoanRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>> {\n return this.tradeApi.queryLiquidationLoan(requestParameters);\n }\n\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan-repay-history Binance API Documentation}\n */\n queryLiquidationLoanRepayHistory(\n requestParameters: QueryLiquidationLoanRepayHistoryRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>> {\n return this.tradeApi.queryLiquidationLoanRepayHistory(requestParameters);\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key 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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key-list 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 * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#close-user-data-stream Binance API Documentation}\n */\n closeUserDataStream(): Promise<RestApiResponse<void>> {\n return this.userDataStreamApi.closeUserDataStream();\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#keepalive-user-data-stream Binance API Documentation}\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n return this.userDataStreamApi.keepaliveUserDataStream(requestParameters);\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#start-user-data-stream Binance API Documentation}\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n return this.userDataStreamApi.startUserDataStream();\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: 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/trade-api.ts","../src/rest-api/modules/transfer-api.ts","../src/rest-api/modules/user-data-stream-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\": \"13.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.5.8\",\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.4.5\",\n \"axios\": \"^1.7.4\"\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\n *\n * @summary Disable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(UID): 300\n *\n * Security Type: TRADE\n *\n * @summary Enable Isolated Margin Account (TRADE)\n * @param {string} symbol\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get BNB Burn Status\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Get BNB Burn Status (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get personal margin level information\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Get Summary of Margin account (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\n *\n * @summary Query Cross Isolated Margin Capital Flow (USER_DATA)\n * @param {string} [asset]\n * @param {string} [symbol] Mandatory for Isolated data\n * @param {QueryCrossIsolatedMarginCapitalFlowTypeEnum} [type]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryCrossIsolatedMarginCapitalFlow: async (\n asset?: string,\n symbol?: string,\n type?: QueryCrossIsolatedMarginCapitalFlowTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Cross Margin Account Details\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Cross Margin Account Details (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Enabled Isolated Margin Account Limit (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Isolated Margin Account Info\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\n *\n * @summary Query Isolated Margin Account Info (USER_DATA)\n * @param {string} [symbols]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\n *\n * @summary Query Isolated Margin Fee Data (USER_DATA)\n * @param {number | bigint} [vipLevel]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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(UID): 300\n *\n * Security Type: TRADE\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(IP): 1\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: USER_DATA\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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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(IP): 10\n *\n * Security Type: USER_DATA\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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(IP): 1\n *\n * Security Type: USER_DATA\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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 *\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 *\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 *\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 *\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 * Mandatory for Isolated data\n * @type {string}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {'TRANSFER' | 'BORROW' | 'REPAY' | 'BUY_INCOME' | 'BUY_EXPENSE' | 'SELL_INCOME' | 'SELL_EXPENSE' | 'TRADING_COMMISSION' | 'BUY_LIQUIDATION' | 'SELL_LIQUIDATION' | 'REPAY_LIQUIDATION' | 'OTHER_LIQUIDATION' | 'LIQUIDATION_FEE' | 'SMALL_BALANCE_CONVERT' | 'COMMISSION_RETURN' | 'SMALL_CONVERT'}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly type?: QueryCrossIsolatedMarginCapitalFlowTypeEnum;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly fromId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof AccountApiQueryCrossIsolatedMarginCapitalFlow\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\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 *\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 *\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 *\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginAccountInfo\n */\n readonly symbols?: string;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof AccountApiQueryIsolatedMarginFeeData\n */\n readonly symbol?: string;\n\n /**\n *\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 * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get BNB Burn Status\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get personal margin level information\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Isolated Margin Capital Flow\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Cross Margin Account Details\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query enabled isolated margin account limit.\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Isolated Margin Account Info\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum QueryCrossIsolatedMarginCapitalFlowTypeEnum {\n TRANSFER = 'TRANSFER',\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n BUY_INCOME = 'BUY_INCOME',\n BUY_EXPENSE = 'BUY_EXPENSE',\n SELL_INCOME = 'SELL_INCOME',\n SELL_EXPENSE = 'SELL_EXPENSE',\n TRADING_COMMISSION = 'TRADING_COMMISSION',\n BUY_LIQUIDATION = 'BUY_LIQUIDATION',\n SELL_LIQUIDATION = 'SELL_LIQUIDATION',\n REPAY_LIQUIDATION = 'REPAY_LIQUIDATION',\n OTHER_LIQUIDATION = 'OTHER_LIQUIDATION',\n LIQUIDATION_FEE = 'LIQUIDATION_FEE',\n SMALL_BALANCE_CONVERT = 'SMALL_BALANCE_CONVERT',\n COMMISSION_RETURN = 'COMMISSION_RETURN',\n SMALL_CONVERT = 'SMALL_CONVERT',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get future hourly interest rate (USER_DATA)\n * @param {string} assets\n * @param {GetFutureHourlyInterestRateIsIsolatedEnum} isIsolated\n *\n * @throws {RequiredError}\n */\n getFutureHourlyInterestRate: async (\n assets: string,\n isIsolated: GetFutureHourlyInterestRateIsIsolatedEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Interest History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\n *\n * @summary Get Interest History (USER_DATA)\n * @param {string} [asset]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [startTime] Only supports querying data from the past 90 days.\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin account borrow/repay\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\n * @param {string} asset\n * @param {MarginAccountBorrowRepayIsIsolatedEnum} isIsolated `TRUE` for Isolated Margin, `FALSE` for Cross Margin\n * @param {string} amount\n * @param {MarginAccountBorrowRepayTypeEnum} type\n * @param {string} [symbol] Only for Isolated margin\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountBorrowRepay: async (\n asset: string,\n isIsolated: MarginAccountBorrowRepayIsIsolatedEnum,\n amount: string,\n type: MarginAccountBorrowRepayTypeEnum,\n symbol?: 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 '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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query borrow/repay records in Margin account\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\n *\n * @summary Query borrow/repay records in Margin account (USER_DATA)\n * @param {QueryBorrowRepayRecordsInMarginAccountTypeEnum} type\n * @param {string} [asset]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [txId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryBorrowRepayRecordsInMarginAccount: async (\n type: QueryBorrowRepayRecordsInMarginAccountTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Interest Rate History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Interest Rate History (USER_DATA)\n * @param {string} asset\n * @param {number | bigint} [vipLevel]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Borrow\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @summary Query Max Borrow (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 100\n *\n * Security Type: USER_DATA\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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(IP): 1\n *\n * Security Type: USER_DATA\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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 *\n * @type {string}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly assets: string;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof BorrowRepayApiGetFutureHourlyInterestRate\n */\n readonly isIsolated: GetFutureHourlyInterestRateIsIsolatedEnum;\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 *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiGetInterestHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\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\n * @type {'TRUE' | 'FALSE'}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly isIsolated: MarginAccountBorrowRepayIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly amount: string;\n\n /**\n *\n * @type {'BORROW' | 'REPAY'}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly type: MarginAccountBorrowRepayTypeEnum;\n\n /**\n * Only for Isolated margin\n * @type {string}\n * @memberof BorrowRepayApiMarginAccountBorrowRepay\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'BORROW' | 'REPAY'}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly type: QueryBorrowRepayRecordsInMarginAccountTypeEnum;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly asset?: string;\n\n /**\n *\n * @type {string}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly txId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryBorrowRepayRecordsInMarginAccount\n */\n readonly size?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof BorrowRepayApiQueryMarginInterestRateHistory\n */\n readonly vipLevel?: number | bigint;\n\n /**\n *\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 *\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 *\n * @type {string}\n * @memberof BorrowRepayApiQueryMaxBorrow\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#get-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Interest History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin account borrow/repay\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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?.amount,\n requestParameters?.type,\n requestParameters?.symbol,\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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query borrow/repay records in Margin account\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#query-borrow-repay-records-in-margin-account 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Interest Rate History\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Borrow\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum GetFutureHourlyInterestRateIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountBorrowRepayIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountBorrowRepayTypeEnum {\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n}\n\nexport enum QueryBorrowRepayRecordsInMarginAccountTypeEnum {\n BORROW = 'BORROW',\n REPAY = 'REPAY',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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(IP): 100\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Cross Margin Pairs\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get All Cross Margin Pairs (MARKET_DATA)\n * @param {string} [symbol]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get All Isolated Margin Symbol (MARKET_DATA)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get All Margin Assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get tokens or symbols delist schedule for cross margin and isolated margin\n *\n * Weight(IP): 100\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get Delist Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query trading pairs with restriction on limit price range.\n *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the upcoming tokens or symbols listing schedule for Cross Margin and Isolated Margin.\n *\n * Weight(IP): 100\n *\n * Security Type: MARKET_DATA\n *\n * @summary Get list Schedule (MARKET_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 1\n *\n * Security Type: USER_DATA\n *\n * @summary Query Isolated Margin Tier Data (USER_DATA)\n * @param {string} symbol\n * @param {number | bigint} [tier]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin available Inventory query\n *\n * Weight(UID): 50\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Available Inventory (USER_DATA)\n * @param {QueryMarginAvailableInventoryTypeEnum} type\n *\n * @throws {RequiredError}\n */\n queryMarginAvailableInventory: async (\n type: QueryMarginAvailableInventoryTypeEnum\n ): 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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin PriceIndex\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 10\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 100\n *\n * Security Type: MARKET_DATA\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 *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 100\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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 the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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(IP): 1\n *\n * Security Type: USER_DATA\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(IP): 1\n *\n * Security Type: MARKET_DATA\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(UID): 50\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: MARKET_DATA\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 *\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 *\n * @type {string}\n * @memberof MarketDataApiGetAllIsolatedMarginSymbol\n */\n readonly symbol?: string;\n\n /**\n *\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 *\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 *\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 *\n * @type {number | bigint}\n * @memberof MarketDataApiQueryIsolatedMarginTierData\n */\n readonly tier?: number | bigint;\n\n /**\n *\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 *\n * @type {'MARGIN' | 'ISOLATED'}\n * @memberof MarketDataApiQueryMarginAvailableInventory\n */\n readonly type: QueryMarginAvailableInventoryTypeEnum;\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Cross Margin Pairs\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Isolated Margin Symbol\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get All Margin Assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Query trading pairs with restriction on limit price range.\n *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get Margin Asset Risk-Based Liquidation Ratio\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Get the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Liability Coin Leverage Bracket in Cross Margin Pro Mode\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Margin available Inventory query\n *\n * Weight(UID): 50\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/market-data#query-margin-available-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin PriceIndex\n *\n * Weight(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n\nexport enum QueryMarginAvailableInventoryTypeEnum {\n MARGIN = 'MARGIN',\n ISOLATED = 'ISOLATED',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 LiquidationLoanRepayResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryLiquidationLoanRepayHistoryResponse,\n QueryLiquidationLoanResponse,\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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\n *\n * @summary Create Special Key(Low-Latency Trading) (TRADE)\n * @param {string} apiName\n * @param {string} [symbol]\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\n * key.\n *\n * 2. Need to be encoded to URL-encoded format\n * @param {CreateSpecialKeyPermissionModeEnum} [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]\n *\n * @throws {RequiredError}\n */\n createSpecialKey: async (\n apiName: string,\n symbol?: string,\n ip?: string,\n publicKey?: string,\n permissionMode?: CreateSpecialKeyPermissionModeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Delete Special Key(Low-Latency Trading) (TRADE)\n * @param {string} [apiName]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {number | bigint} [recvWindow] The value cannot be greater than `60000`\n *\n * @throws {RequiredError}\n */\n exitSpecialKeyMode: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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/exit-special-key-mode',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * @summary Get Force Liquidation Record (USER_DATA)\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get Small Liability Exchange Coin List (USER_DATA)\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Small liability Exchange History\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Get Small Liability Exchange History (USER_DATA)\n * @param {number | bigint} current\n * @param {number | bigint} size\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {string} asset The asset to repay (e.g. USDT, USDC)\n * @param {number} amount Repayment amount, must be greater than 0\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n liquidationLoanRepay: async (\n asset: string,\n amount: number,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'asset' is not null or undefined\n assertParamExists('liquidationLoanRepay', 'asset', asset);\n // verify required parameter 'amount' is not null or undefined\n assertParamExists('liquidationLoanRepay', 'amount', amount);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: Record<string, unknown> = {};\n\n if (asset !== undefined && asset !== null) {\n localVarQueryParameter['asset'] = asset;\n }\n if (amount !== undefined && amount !== null) {\n localVarQueryParameter['amount'] = amount;\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/liquidation-loan/repay',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\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(IP): 1\n *\n * Security Type: TRADE\n *\n * @summary Margin Account Cancel all Open Orders on a Symbol (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelAllOpenOrdersOnASymbol: async (\n symbol: string,\n isIsolated?: MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\n *\n * @summary Margin Account Cancel OCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelOcoIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderListId]\n * @param {string} [listClientOrderId]\n * @param {string} [newClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOco: async (\n symbol: string,\n isIsolated?: MarginAccountCancelOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Cancel an active order for margin account.\n *\n * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * @summary Margin Account Cancel Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountCancelOrderIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {string} [newClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountCancelOrder: async (\n symbol: string,\n isIsolated?: MarginAccountCancelOrderIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Send in a new OCO for a margin account\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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 {MarginAccountNewOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [listClientOrderId] A unique Id for the entire orderList\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 {MarginAccountNewOcoStopLimitTimeInForceEnum} [stopLimitTimeInForce]\n * @param {MarginAccountNewOcoNewOrderRespTypeEnum} [newOrderRespType]\n * @param {MarginAccountNewOcoSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOcoSelfTradePreventionModeEnum} [selfTradePreventionMode]\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.\n * @param {number | bigint} [recvWindow]\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?: MarginAccountNewOcoIsIsolatedEnum,\n listClientOrderId?: string,\n limitClientOrderId?: string,\n limitIcebergQty?: number,\n stopClientOrderId?: string,\n stopLimitPrice?: number,\n stopIcebergQty?: number,\n stopLimitTimeInForce?: MarginAccountNewOcoStopLimitTimeInForceEnum,\n newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOcoSideEffectTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOcoSelfTradePreventionModeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new order for margin account.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\n *\n * @summary Margin Account New Order (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOrderSideEnum} side\n * @param {MarginAccountNewOrderTypeEnum} type\n * @param {MarginAccountNewOrderIsIsolatedEnum} [isIsolated]\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] A unique id among open orders. Automatically generated if not sent.\n * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n * @param {MarginAccountNewOrderNewOrderRespTypeEnum} [newOrderRespType] MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {MarginAccountNewOrderSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOrderTimeInForceEnum} [timeInForce]\n * @param {MarginAccountNewOrderSelfTradePreventionModeEnum} [selfTradePreventionMode]\n * @param {number | bigint} [trailingDelta] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\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 repaid after the order is cancelled.\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOrder: async (\n symbol: string,\n side: MarginAccountNewOrderSideEnum,\n type: MarginAccountNewOrderTypeEnum,\n isIsolated?: MarginAccountNewOrderIsIsolatedEnum,\n quantity?: number,\n quoteOrderQty?: number,\n price?: number,\n stopPrice?: number,\n newClientOrderId?: string,\n icebergQty?: number,\n newOrderRespType?: MarginAccountNewOrderNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOrderSideEffectTypeEnum,\n timeInForce?: MarginAccountNewOrderTimeInForceEnum,\n selfTradePreventionMode?: MarginAccountNewOrderSelfTradePreventionModeEnum,\n trailingDelta?: number | bigint,\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 const localVarHeaderParameter: 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 (trailingDelta !== undefined && trailingDelta !== null) {\n localVarQueryParameter['trailingDelta'] = trailingDelta;\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 headerParams: localVarHeaderParameter,\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\n *\n * @summary Margin Account New OTO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOtoWorkingTypeEnum} workingType\n * @param {MarginAccountNewOtoWorkingSideEnum} workingSide\n * @param {number} workingPrice\n * @param {number} workingQuantity Sets the quantity for the working order.\n * @param {number} workingIcebergQty This can only be used if `workingTimeInForce` is `GTC`.\n * @param {MarginAccountNewOtoPendingTypeEnum} pendingType\n * @param {MarginAccountNewOtoPendingSideEnum} pendingSide\n * @param {number} pendingQuantity Sets the quantity for the pending order.\n * @param {MarginAccountNewOtoIsIsolatedEnum} [isIsolated]\n * @param {string} [listClientOrderId] Arbitrary unique ID among open order lists. Automatically generated if not sent.<br/>A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired.<br/>`listClientOrderId` is distinct from the `workingClientOrderId` and the `pendingClientOrderId`.\n * @param {MarginAccountNewOtoNewOrderRespTypeEnum} [newOrderRespType] MARKET and LIMIT order types default to FULL, all other orders default to ACK.\n * @param {MarginAccountNewOtoSideEffectTypeEnum} [sideEffectType]\n * @param {MarginAccountNewOtoSelfTradePreventionModeEnum} [selfTradePreventionMode]\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @param {string} [workingClientOrderId] Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n * @param {MarginAccountNewOtoWorkingTimeInForceEnum} [workingTimeInForce]\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 {MarginAccountNewOtoPendingTimeInForceEnum} [pendingTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOto: async (\n symbol: string,\n workingType: MarginAccountNewOtoWorkingTypeEnum,\n workingSide: MarginAccountNewOtoWorkingSideEnum,\n workingPrice: number,\n workingQuantity: number,\n workingIcebergQty: number,\n pendingType: MarginAccountNewOtoPendingTypeEnum,\n pendingSide: MarginAccountNewOtoPendingSideEnum,\n pendingQuantity: number,\n isIsolated?: MarginAccountNewOtoIsIsolatedEnum,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtoNewOrderRespTypeEnum,\n sideEffectType?: MarginAccountNewOtoSideEffectTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOtoSelfTradePreventionModeEnum,\n autoRepayAtCancel?: boolean,\n workingClientOrderId?: string,\n workingTimeInForce?: MarginAccountNewOtoWorkingTimeInForceEnum,\n pendingClientOrderId?: string,\n pendingPrice?: number,\n pendingStopPrice?: number,\n pendingTrailingDelta?: number,\n pendingIcebergQty?: number,\n pendingTimeInForce?: MarginAccountNewOtoPendingTimeInForceEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Post a new OTOCO order for margin account:\n *\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\n *\n * @summary Margin Account New OTOCO (TRADE)\n * @param {string} symbol\n * @param {MarginAccountNewOtocoWorkingTypeEnum} workingType\n * @param {MarginAccountNewOtocoWorkingSideEnum} workingSide\n * @param {number} workingPrice\n * @param {number} workingQuantity\n * @param {MarginAccountNewOtocoPendingSideEnum} pendingSide\n * @param {number} pendingQuantity\n * @param {MarginAccountNewOtocoPendingAboveTypeEnum} pendingAboveType\n * @param {MarginAccountNewOtocoIsIsolatedEnum} [isIsolated]\n * @param {MarginAccountNewOtocoSideEffectTypeEnum} [sideEffectType]\n * @param {boolean} [autoRepayAtCancel] Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @param {string} [listClientOrderId] Arbitrary unique ID among open order lists. Automatically generated if not sent. A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired. `listClientOrderId` is distinct from the `workingClientOrderId`, `pendingAboveClientOrderId`, and the `pendingBelowClientOrderId`.\n * @param {MarginAccountNewOtocoNewOrderRespTypeEnum} [newOrderRespType]\n * @param {MarginAccountNewOtocoSelfTradePreventionModeEnum} [selfTradePreventionMode]\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 {MarginAccountNewOtocoWorkingTimeInForceEnum} [workingTimeInForce]\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 {MarginAccountNewOtocoPendingAboveTimeInForceEnum} [pendingAboveTimeInForce]\n * @param {MarginAccountNewOtocoPendingBelowTypeEnum} [pendingBelowType]\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 {MarginAccountNewOtocoPendingBelowTimeInForceEnum} [pendingBelowTimeInForce]\n *\n * @throws {RequiredError}\n */\n marginAccountNewOtoco: async (\n symbol: string,\n workingType: MarginAccountNewOtocoWorkingTypeEnum,\n workingSide: MarginAccountNewOtocoWorkingSideEnum,\n workingPrice: number,\n workingQuantity: number,\n pendingSide: MarginAccountNewOtocoPendingSideEnum,\n pendingQuantity: number,\n pendingAboveType: MarginAccountNewOtocoPendingAboveTypeEnum,\n isIsolated?: MarginAccountNewOtocoIsIsolatedEnum,\n sideEffectType?: MarginAccountNewOtocoSideEffectTypeEnum,\n autoRepayAtCancel?: boolean,\n listClientOrderId?: string,\n newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum,\n selfTradePreventionMode?: MarginAccountNewOtocoSelfTradePreventionModeEnum,\n workingClientOrderId?: string,\n workingIcebergQty?: number,\n workingTimeInForce?: MarginAccountNewOtocoWorkingTimeInForceEnum,\n pendingAboveClientOrderId?: string,\n pendingAbovePrice?: number,\n pendingAboveStopPrice?: number,\n pendingAboveTrailingDelta?: number,\n pendingAboveIcebergQty?: number,\n pendingAboveTimeInForce?: MarginAccountNewOtocoPendingAboveTimeInForceEnum,\n pendingBelowType?: MarginAccountNewOtocoPendingBelowTypeEnum,\n pendingBelowClientOrderId?: string,\n pendingBelowPrice?: number,\n pendingBelowStopPrice?: number,\n pendingBelowTrailingDelta?: number,\n pendingBelowIcebergQty?: number,\n pendingBelowTimeInForce?: MarginAccountNewOtocoPendingBelowTimeInForceEnum\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Margin Manual Liquidation\n *\n * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\n * @param {MarginManualLiquidationTypeEnum} type\n * @param {string} [symbol] When type selects `ISOLATED`, `symbol` must be filled in\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n marginManualLiquidation: async (\n type: MarginManualLiquidationTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the user's current margin order count usage for all intervals.\n *\n * Weight(IP): 20\n *\n * Security Type: TRADE\n *\n * @summary Query Current Margin Order Count Usage (TRADE)\n * @param {QueryCurrentMarginOrderCountUsageIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryCurrentMarginOrderCountUsage: async (\n isIsolated?: QueryCurrentMarginOrderCountUsageIsIsolatedEnum,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryLiquidationLoan: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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/liquidation-loan',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {number | bigint} [startTime] Start time in Unix timestamp (milliseconds). Defaults to 7 days ago if not specified\n * @param {number | bigint} [endTime] End time in Unix timestamp (milliseconds). Defaults to now if not specified\n * @param {number | bigint} [current] Current page number, default `1`\n * @param {number | bigint} [size] Page size, default `50`\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryLiquidationLoanRepayHistory: async (\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 const localVarHeaderParameter: 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 (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/liquidation-loan/repay-history',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s all OCO (USER_DATA)\n * @param {QueryMarginAccountsAllOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOco: async (\n isIsolated?: QueryMarginAccountsAllOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's All Orders\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\n *\n * @summary Query Margin Account\\'s All Orders (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsAllOrdersIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsAllOrders: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsAllOrdersIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s OCO (USER_DATA)\n * @param {QueryMarginAccountsOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [orderListId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOco: async (\n isIsolated?: QueryMarginAccountsOcoIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open OCO\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * @summary Query Margin Account\\'s Open OCO (USER_DATA)\n * @param {QueryMarginAccountsOpenOcoIsIsolatedEnum} [isIsolated]\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOco: async (\n isIsolated?: QueryMarginAccountsOpenOcoIsIsolatedEnum,\n symbol?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Open Orders\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\n *\n * @summary Query Margin Account\\'s Open Orders (USER_DATA)\n * @param {string} [symbol] isolated margin pair\n * @param {QueryMarginAccountsOpenOrdersIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOpenOrders: async (\n symbol?: string,\n isIsolated?: QueryMarginAccountsOpenOrdersIsIsolatedEnum,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Order\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * @summary Query Margin Account\\'s Order (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsOrderIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {string} [origClientOrderId]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsOrder: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsOrderIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Margin Account's Trade List\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\n *\n * @summary Query Margin Account\\'s Trade List (USER_DATA)\n * @param {string} symbol\n * @param {QueryMarginAccountsTradeListIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [orderId]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [fromId]\n * @param {number | bigint} [limit]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryMarginAccountsTradeList: async (\n symbol: string,\n isIsolated?: QueryMarginAccountsTradeListIsIsolatedEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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 {QueryPreventedMatchesIsIsolatedEnum} [isIsolated]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n queryPreventedMatches: async (\n symbol: string,\n preventedMatchId?: number | bigint,\n orderId?: number | bigint,\n fromPreventedMatchId?: number | bigint,\n isIsolated?: QueryPreventedMatchesIsIsolatedEnum,\n recvWindow?: number | bigint\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 const localVarHeaderParameter: 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 (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/myPreventedMatches',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n headerParams: localVarHeaderParameter,\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(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Query Special key(Low Latency Trading) (TRADE)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * @summary Query Special key List(Low Latency Trading) (TRADE)\n * @param {string} [symbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Small Liability Exchange\n *\n * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @summary Small Liability Exchange (MARGIN)\n * @param {string} assetNames The assets list of small liability exchange\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n smallLiabilityExchange: async (\n assetNames: 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 const localVarHeaderParameter: Record<string, unknown> = {};\n\n if (assetNames !== undefined && assetNames !== null) {\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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n /**\n * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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 * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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 * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n exitSpecialKeyMode(\n requestParameters?: ExitSpecialKeyModeRequest\n ): Promise<RestApiResponse<object>>;\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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(IP): 100\n *\n * Security Type: USER_DATA\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(UID): 100\n *\n * Security Type: USER_DATA\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 * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>>;\n /**\n * Cancels all active orders on a symbol for margin account.<br></br>\n * This includes OCO orders.\n *\n * Weight(IP): 1\n *\n * Security Type: TRADE\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 * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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 * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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 *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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 * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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(IP): 20\n *\n * Security Type: TRADE\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 * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryLiquidationLoan(\n requestParameters?: QueryLiquidationLoanRequest\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>>;\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryLiquidationLoanRepayHistory(\n requestParameters?: QueryLiquidationLoanRepayHistoryRequest\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>;\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\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 * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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(IP): 10\n *\n * Security Type: USER_DATA\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(IP): 10\n *\n * Security Type: USER_DATA\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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 * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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(UID): 1\n *\n * Security Type: TRADE\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(UID): 1\n *\n * Security Type: TRADE\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 * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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 *\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\n * key.\n *\n * 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 {'TRADE' | 'READ'}\n * @memberof TradeApiCreateSpecialKey\n */\n readonly permissionMode?: CreateSpecialKeyPermissionModeEnum;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TradeApiDeleteSpecialKey\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiEditIpForSpecialKey\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for exitSpecialKeyMode operation in TradeApi.\n * @interface ExitSpecialKeyModeRequest\n */\nexport interface ExitSpecialKeyModeRequest {\n /**\n * The value cannot be greater than `60000`\n * @type {number | bigint}\n * @memberof TradeApiExitSpecialKeyMode\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 *\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 *\n * @type {string}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetForceLiquidationRecord\n */\n readonly size?: number | bigint;\n\n /**\n *\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 *\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 *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly current: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly size: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiGetSmallLiabilityExchangeHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for liquidationLoanRepay operation in TradeApi.\n * @interface LiquidationLoanRepayRequest\n */\nexport interface LiquidationLoanRepayRequest {\n /**\n * The asset to repay (e.g. USDT, USDC)\n * @type {string}\n * @memberof TradeApiLiquidationLoanRepay\n */\n readonly asset: string;\n\n /**\n * Repayment amount, must be greater than 0\n * @type {number}\n * @memberof TradeApiLiquidationLoanRepay\n */\n readonly amount: number;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiLiquidationLoanRepay\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelAllOpenOrdersOnASymbol\n */\n readonly isIsolated?: MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly isIsolated?: MarginAccountCancelOcoIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly orderListId?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly listClientOrderId?: string;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOco\n */\n readonly newClientOrderId?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly isIsolated?: MarginAccountCancelOrderIsIsolatedEnum;\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 *\n * @type {string}\n * @memberof TradeApiMarginAccountCancelOrder\n */\n readonly newClientOrderId?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly isIsolated?: MarginAccountNewOcoIsIsolatedEnum;\n\n /**\n * A unique Id for the entire orderList\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 *\n * @type {'GTC' | 'FOK' | 'IOC'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly stopLimitTimeInForce?: MarginAccountNewOcoStopLimitTimeInForceEnum;\n\n /**\n *\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly newOrderRespType?: MarginAccountNewOcoNewOrderRespTypeEnum;\n\n /**\n *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY' | 'AUTO_REPAY' | 'AUTO_BORROW_REPAY'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly sideEffectType?: MarginAccountNewOcoSideEffectTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly selfTradePreventionMode?: MarginAccountNewOcoSelfTradePreventionModeEnum;\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.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n *\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 *\n * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly type: MarginAccountNewOrderTypeEnum;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly isIsolated?: MarginAccountNewOrderIsIsolatedEnum;\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 * A unique id among open orders. Automatically generated if not sent.\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 * 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 *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY' | 'AUTO_REPAY' | 'AUTO_BORROW_REPAY'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly sideEffectType?: MarginAccountNewOrderSideEffectTypeEnum;\n\n /**\n *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly timeInForce?: MarginAccountNewOrderTimeInForceEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly selfTradePreventionMode?: MarginAccountNewOrderSelfTradePreventionModeEnum;\n\n /**\n * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n * @type {number | bigint}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly trailingDelta?: number | bigint;\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 repaid after the order is cancelled.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOrder\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n *\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 *\n * @type {'LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingType: MarginAccountNewOtoWorkingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingSide: MarginAccountNewOtoWorkingSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingPrice: number;\n\n /**\n * Sets the quantity for the working order.\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 *\n * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingType: MarginAccountNewOtoPendingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingSide: MarginAccountNewOtoPendingSideEnum;\n\n /**\n * Sets the quantity for the pending order.\n * @type {number}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingQuantity: number;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly isIsolated?: MarginAccountNewOtoIsIsolatedEnum;\n\n /**\n * Arbitrary unique ID among open order lists. Automatically generated if not sent.<br/>A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired.<br/>`listClientOrderId` is distinct from the `workingClientOrderId` and the `pendingClientOrderId`.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly listClientOrderId?: string;\n\n /**\n * 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 *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly sideEffectType?: MarginAccountNewOtoSideEffectTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly selfTradePreventionMode?: MarginAccountNewOtoSelfTradePreventionModeEnum;\n\n /**\n * Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly workingTimeInForce?: MarginAccountNewOtoWorkingTimeInForceEnum;\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOto\n */\n readonly pendingTimeInForce?: MarginAccountNewOtoPendingTimeInForceEnum;\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 *\n * @type {'LIMIT' | 'LIMIT_MAKER'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingType: MarginAccountNewOtocoWorkingTypeEnum;\n\n /**\n *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingSide: MarginAccountNewOtocoWorkingSideEnum;\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 *\n * @type {'BUY' | 'SELL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingSide: MarginAccountNewOtocoPendingSideEnum;\n\n /**\n *\n * @type {number}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingQuantity: number;\n\n /**\n *\n * @type {'LIMIT_MAKER' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveType: MarginAccountNewOtocoPendingAboveTypeEnum;\n\n /**\n *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly isIsolated?: MarginAccountNewOtocoIsIsolatedEnum;\n\n /**\n *\n * @type {'NO_SIDE_EFFECT' | 'MARGIN_BUY'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly sideEffectType?: MarginAccountNewOtocoSideEffectTypeEnum;\n\n /**\n * Only when MARGIN_BUY order takes effect, true means that the debt generated by the order needs to be repaid after the order is cancelled.\n * @type {boolean}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly autoRepayAtCancel?: boolean;\n\n /**\n * Arbitrary unique ID among open order lists. Automatically generated if not sent. A new order list with the same listClientOrderId is accepted only when the previous one is filled or completely expired. `listClientOrderId` is distinct from the `workingClientOrderId`, `pendingAboveClientOrderId`, and the `pendingBelowClientOrderId`.\n * @type {string}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly listClientOrderId?: string;\n\n /**\n *\n * @type {'ACK' | 'RESULT' | 'FULL'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly newOrderRespType?: MarginAccountNewOtocoNewOrderRespTypeEnum;\n\n /**\n *\n * @type {'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'NONE'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly selfTradePreventionMode?: MarginAccountNewOtocoSelfTradePreventionModeEnum;\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 *\n * @type {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly workingTimeInForce?: MarginAccountNewOtocoWorkingTimeInForceEnum;\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 {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingAboveTimeInForce?: MarginAccountNewOtocoPendingAboveTimeInForceEnum;\n\n /**\n *\n * @type {'LIMIT_MAKER' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowType?: MarginAccountNewOtocoPendingBelowTypeEnum;\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 {'GTC' | 'IOC' | 'FOK'}\n * @memberof TradeApiMarginAccountNewOtoco\n */\n readonly pendingBelowTimeInForce?: MarginAccountNewOtocoPendingBelowTimeInForceEnum;\n}\n\n/**\n * Request parameters for marginManualLiquidation operation in TradeApi.\n * @interface MarginManualLiquidationRequest\n */\nexport interface MarginManualLiquidationRequest {\n /**\n *\n * @type {'MARGIN' | 'ISOLATED'}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly type: MarginManualLiquidationTypeEnum;\n\n /**\n * When type selects `ISOLATED`, `symbol` must be filled in\n * @type {string}\n * @memberof TradeApiMarginManualLiquidation\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly isIsolated?: QueryCurrentMarginOrderCountUsageIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryCurrentMarginOrderCountUsage\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryLiquidationLoan operation in TradeApi.\n * @interface QueryLiquidationLoanRequest\n */\nexport interface QueryLiquidationLoanRequest {\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoan\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryLiquidationLoanRepayHistory operation in TradeApi.\n * @interface QueryLiquidationLoanRepayHistoryRequest\n */\nexport interface QueryLiquidationLoanRepayHistoryRequest {\n /**\n * Start time in Unix timestamp (milliseconds). Defaults to 7 days ago if not specified\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly startTime?: number | bigint;\n\n /**\n * End time in Unix timestamp (milliseconds). Defaults to now if not specified\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly endTime?: number | bigint;\n\n /**\n * Current page number, default `1`\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly current?: number | bigint;\n\n /**\n * Page size, default `50`\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryLiquidationLoanRepayHistory\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly isIsolated?: QueryMarginAccountsAllOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly symbol?: string;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly fromId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOco\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly isIsolated?: QueryMarginAccountsAllOrdersIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly orderId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsAllOrders\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly isIsolated?: QueryMarginAccountsOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOco\n */\n readonly symbol?: string;\n\n /**\n *\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 *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly isIsolated?: QueryMarginAccountsOpenOcoIsIsolatedEnum;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiQueryMarginAccountsOpenOco\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOpenOrders\n */\n readonly isIsolated?: QueryMarginAccountsOpenOrdersIsIsolatedEnum;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsOrder\n */\n readonly isIsolated?: QueryMarginAccountsOrderIsIsolatedEnum;\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 *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly isIsolated?: QueryMarginAccountsTradeListIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly orderId?: number | bigint;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly fromId?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryMarginAccountsTradeList\n */\n readonly limit?: number | bigint;\n\n /**\n *\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 *\n * @type {'TRUE' | 'FALSE'}\n * @memberof TradeApiQueryPreventedMatches\n */\n readonly isIsolated?: QueryPreventedMatchesIsIsolatedEnum;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiQueryPreventedMatches\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 *\n * @type {string}\n * @memberof TradeApiQuerySpecialKey\n */\n readonly symbol?: string;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TradeApiQuerySpecialKeyList\n */\n readonly symbol?: string;\n\n /**\n *\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\n * @type {string}\n * @memberof TradeApiSmallLiabilityExchange\n */\n readonly assetNames: string;\n\n /**\n *\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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#create-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#delete-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Edit ip restriction. This only applies to Special Key for Low Latency\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#edit-ip-for-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<object>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#exit-special-key-mode Binance API Documentation}\n */\n public async exitSpecialKeyMode(\n requestParameters: ExitSpecialKeyModeRequest = {}\n ): Promise<RestApiResponse<object>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.exitSpecialKeyMode(\n requestParameters?.recvWindow\n );\n return sendRequest<object>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the coins which can be small liability exchange\n *\n * Weight(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Small liability Exchange History\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<LiquidationLoanRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#liquidation-loan-repay Binance API Documentation}\n */\n public async liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.liquidationLoanRepay(\n requestParameters?.asset,\n requestParameters?.amount,\n requestParameters?.recvWindow\n );\n return sendRequest<LiquidationLoanRepayResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(IP): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-cancel-all-open-orders-on-asymbol 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an entire Order List for a margin account.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Cancel an active order for margin account.\n *\n * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Send in a new OCO for a margin account\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new order for margin account.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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?.trailingDelta,\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.headerParams,\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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Post a new OTOCO order for margin account:\n *\n *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Margin Manual Liquidation\n *\n * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\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(IP): 20\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan Binance API Documentation}\n */\n public async queryLiquidationLoan(\n requestParameters: QueryLiquidationLoanRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryLiquidationLoan(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryLiquidationLoanResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan-repay-history Binance API Documentation}\n */\n public async queryLiquidationLoanRepayHistory(\n requestParameters: QueryLiquidationLoanRepayHistoryRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryLiquidationLoanRepayHistory(\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.current,\n requestParameters?.size,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryLiquidationLoanRepayHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(IP): 200\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's All Orders\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Retrieves a specific OCO based on provided optional parameters\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open OCO\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Open Orders\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Order\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Margin Account's Trade List\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-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?.isIsolated,\n requestParameters?.recvWindow\n );\n return sendRequest<QueryPreventedMatchesResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs.headerParams,\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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * This only applies to Special Key for Low Latency Trading.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key-list 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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Small Liability Exchange\n *\n * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum CreateSpecialKeyPermissionModeEnum {\n TRADE = 'TRADE',\n READ = 'READ',\n}\n\nexport enum MarginAccountCancelAllOpenOrdersOnASymbolIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountCancelOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountCancelOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOcoSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOcoStopLimitTimeInForceEnum {\n GTC = 'GTC',\n FOK = 'FOK',\n IOC = 'IOC',\n}\n\nexport enum MarginAccountNewOcoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOcoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n AUTO_REPAY = 'AUTO_REPAY',\n AUTO_BORROW_REPAY = 'AUTO_BORROW_REPAY',\n}\n\nexport enum MarginAccountNewOcoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOrderSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOrderTypeEnum {\n LIMIT = 'LIMIT',\n MARKET = 'MARKET',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n TAKE_PROFIT = 'TAKE_PROFIT',\n TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOrderNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOrderSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n AUTO_REPAY = 'AUTO_REPAY',\n AUTO_BORROW_REPAY = 'AUTO_BORROW_REPAY',\n}\n\nexport enum MarginAccountNewOrderTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOrderSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtoWorkingTypeEnum {\n LIMIT = 'LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtoWorkingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtoPendingTypeEnum {\n LIMIT = 'LIMIT',\n MARKET = 'MARKET',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n TAKE_PROFIT = 'TAKE_PROFIT',\n TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtoPendingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOtoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n}\n\nexport enum MarginAccountNewOtoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtoWorkingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtoPendingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoWorkingTypeEnum {\n LIMIT = 'LIMIT',\n LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum MarginAccountNewOtocoWorkingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtocoPendingSideEnum {\n BUY = 'BUY',\n SELL = 'SELL',\n}\n\nexport enum MarginAccountNewOtocoPendingAboveTypeEnum {\n LIMIT_MAKER = 'LIMIT_MAKER',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n}\n\nexport enum MarginAccountNewOtocoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum MarginAccountNewOtocoSideEffectTypeEnum {\n NO_SIDE_EFFECT = 'NO_SIDE_EFFECT',\n MARGIN_BUY = 'MARGIN_BUY',\n}\n\nexport enum MarginAccountNewOtocoNewOrderRespTypeEnum {\n ACK = 'ACK',\n RESULT = 'RESULT',\n FULL = 'FULL',\n}\n\nexport enum MarginAccountNewOtocoSelfTradePreventionModeEnum {\n EXPIRE_TAKER = 'EXPIRE_TAKER',\n EXPIRE_MAKER = 'EXPIRE_MAKER',\n EXPIRE_BOTH = 'EXPIRE_BOTH',\n NONE = 'NONE',\n}\n\nexport enum MarginAccountNewOtocoWorkingTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoPendingAboveTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginAccountNewOtocoPendingBelowTypeEnum {\n LIMIT_MAKER = 'LIMIT_MAKER',\n STOP_LOSS = 'STOP_LOSS',\n STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n}\n\nexport enum MarginAccountNewOtocoPendingBelowTimeInForceEnum {\n GTC = 'GTC',\n IOC = 'IOC',\n FOK = 'FOK',\n}\n\nexport enum MarginManualLiquidationTypeEnum {\n MARGIN = 'MARGIN',\n ISOLATED = 'ISOLATED',\n}\n\nexport enum QueryCurrentMarginOrderCountUsageIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsAllOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsAllOrdersIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOpenOcoIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOpenOrdersIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsOrderIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryMarginAccountsTradeListIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n\nexport enum QueryPreventedMatchesIsIsolatedEnum {\n TRUE = 'TRUE',\n FALSE = 'FALSE',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @summary Get Cross Margin Transfer History (USER_DATA)\n * @param {string} [asset]\n * @param {GetCrossMarginTransferHistoryTypeEnum} [type]\n * @param {number | bigint} [startTime]\n * @param {number | bigint} [endTime]\n * @param {number | bigint} [current]\n * @param {number | bigint} [size]\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\n *\n * @throws {RequiredError}\n */\n getCrossMarginTransferHistory: async (\n asset?: string,\n type?: GetCrossMarginTransferHistoryTypeEnum,\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query Max Transfer-Out Amount\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\n *\n * @summary Query Max Transfer-Out Amount (USER_DATA)\n * @param {string} asset\n * @param {string} [isolatedSymbol]\n * @param {number | bigint} [recvWindow]\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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 *\n * @type {'ROLL_IN' | 'ROLL_OUT'}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly type?: GetCrossMarginTransferHistoryTypeEnum;\n\n /**\n *\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 *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly current?: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly size?: number | bigint;\n\n /**\n *\n * @type {string}\n * @memberof TransferApiGetCrossMarginTransferHistory\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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 *\n * @type {string}\n * @memberof TransferApiQueryMaxTransferOutAmount\n */\n readonly isolatedSymbol?: string;\n\n /**\n *\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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query Max Transfer-Out Amount\n *\n * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n\nexport enum GetCrossMarginTransferHistoryTypeEnum {\n ROLL_IN = 'ROLL_IN',\n ROLL_OUT = 'ROLL_OUT',\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 */\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 * UserDataStreamApi - axios parameter creator\n */\nconst UserDataStreamApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 const localVarHeaderParameter: 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 headerParams: localVarHeaderParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * UserDataStreamApi - interface\n * @interface UserDataStreamApi\n */\nexport interface UserDataStreamApiInterface {\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\n *\n * @summary Close User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof UserDataStreamApiInterface\n */\n closeUserDataStream(): Promise<RestApiResponse<void>>;\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApiInterface\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>>;\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\n *\n * @summary Start User Data Stream (USER_STREAM)\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof UserDataStreamApiInterface\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * Request parameters for keepaliveUserDataStream operation in UserDataStreamApi.\n * @interface KeepaliveUserDataStreamRequest\n */\nexport interface KeepaliveUserDataStreamRequest {\n /**\n *\n * @type {string}\n * @memberof UserDataStreamApiKeepaliveUserDataStream\n */\n readonly listenKey: string;\n}\n\n/**\n * UserDataStreamApi - object-oriented interface\n * @class UserDataStreamApi\n */\nexport class UserDataStreamApi implements UserDataStreamApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = UserDataStreamApiAxiosParamCreator(configuration);\n }\n\n /**\n * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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 UserDataStreamApi\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-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.headerParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 { TradeApi } from './modules/trade-api';\nimport { TransferApi } from './modules/transfer-api';\nimport { UserDataStreamApi } from './modules/user-data-stream-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 {\n CreateSpecialKeyRequest,\n DeleteSpecialKeyRequest,\n EditIpForSpecialKeyRequest,\n ExitSpecialKeyModeRequest,\n GetForceLiquidationRecordRequest,\n GetSmallLiabilityExchangeCoinListRequest,\n GetSmallLiabilityExchangeHistoryRequest,\n LiquidationLoanRepayRequest,\n MarginAccountCancelAllOpenOrdersOnASymbolRequest,\n MarginAccountCancelOcoRequest,\n MarginAccountCancelOrderRequest,\n MarginAccountNewOcoRequest,\n MarginAccountNewOrderRequest,\n MarginAccountNewOtoRequest,\n MarginAccountNewOtocoRequest,\n MarginManualLiquidationRequest,\n QueryCurrentMarginOrderCountUsageRequest,\n QueryLiquidationLoanRequest,\n QueryLiquidationLoanRepayHistoryRequest,\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';\nimport type { KeepaliveUserDataStreamRequest } from './modules/user-data-stream-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 {\n CreateSpecialKeyResponse,\n GetForceLiquidationRecordResponse,\n GetSmallLiabilityExchangeCoinListResponse,\n GetSmallLiabilityExchangeHistoryResponse,\n LiquidationLoanRepayResponse,\n MarginAccountCancelAllOpenOrdersOnASymbolResponse,\n MarginAccountCancelOcoResponse,\n MarginAccountCancelOrderResponse,\n MarginAccountNewOcoResponse,\n MarginAccountNewOrderResponse,\n MarginAccountNewOtoResponse,\n MarginAccountNewOtocoResponse,\n MarginManualLiquidationResponse,\n QueryCurrentMarginOrderCountUsageResponse,\n QueryLiquidationLoanResponse,\n QueryLiquidationLoanRepayHistoryResponse,\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';\nimport type { StartUserDataStreamResponse } from './types';\n\nexport class RestAPI {\n private configuration: ConfigurationRestAPI;\n private accountApi: AccountApi;\n private borrowRepayApi: BorrowRepayApi;\n private marketDataApi: MarketDataApi;\n private tradeApi: TradeApi;\n private transferApi: TransferApi;\n private userDataStreamApi: UserDataStreamApi;\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.tradeApi = new TradeApi(configuration);\n this.transferApi = new TransferApi(configuration);\n this.userDataStreamApi = new UserDataStreamApi(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 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 undefined,\n { isSigned: true }\n );\n }\n\n /**\n * Adjust cross margin max leverage\n *\n * Weight(UID): 3000, 1 times/min per IP\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 hours.\n *\n * Weight(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 300\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Only supports querying the data of the last 90 days\n *\n * - The time between startTime and endTime cannot be longer than 7 days.\n *\n * - If fromId is set, the data with id > fromId will be returned.\n * Otherwise the latest data will be returned\n *\n * - To query isolated data, Symbol needs to be entered.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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) 5 when the coin parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If \"symbols\" is not sent, all isolated assets will be returned.\n *\n * - If \"symbols\" is sent, only the isolated assets of the sent symbols\n * will be returned.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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) 10 when the symbol parameter is omitted(IP)\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#get-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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\n *\n * - If isolatedSymbol is not sent, crossed margin data will be returned\n *\n * - The max interval between `startTime` and `endTime` is 30 days. It is a\n * MUST to ensure data correctness.\n *\n * - If `startTime`and `endTime` not sent, return records of the last 7\n * days by default.\n *\n * - If `startTime` is sent and `endTime` is not sent, return records of\n * [max(`startTime`, now-30d), now].\n *\n * - If `startTime` is not sent and `endTime` is sent, return records of\n * [`endTime`-7, `endTime`]\n *\n * - `type` in response has 4 enums:\n *\n * - `PERIODIC` interest charged per hour\n *\n * - `ON_BORROW` first interest charged on borrow\n *\n * - `PERIODIC_CONVERTED` interest charged per hour converted into BNB\n *\n * - `ON_BORROW_CONVERTED` first interest charged on borrow converted into\n * BNB\n *\n * - `PORTFOLIO` interest charged daily on the portfolio margin negative\n * balance\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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\n *\n * Weight(UID): 1500\n *\n * Security Type: USER_DATA\n *\n * @summary Margin account borrow/repay (USER_DATA)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - `txId` or `startTime` must be sent. `txId` takes precedence.\n *\n * - Response in descending order\n *\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 *\n * - If neither `startTime` nor `endTime` is sent, the recent 7-day data will be returned.\n *\n * - `startTime` set as `endTime` - 7 days by default, `endTime` set as current time by default\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-repay#query-borrow-repay-records-in-margin-account 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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/borrow-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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 *\n * In margin trading, you can place orders with limit price. Limit price\n * should be within (-15%, 15%) of current index price for a list of margin\n * trading pairs. This rule only impacts limit sell orders with limit price\n * that is lower than current index price and limit buy orders with limit\n * price that is higher than current index price.\n *\n * - Buy order: Your order will be rejected with an error message\n * notification if the limit price is 15% above the index price.\n *\n * - Sell order: Your order will be rejected with an error message\n * notification if the limit price is 15% below the index price.\n *\n * Please review the limit price order placing strategy, backtest and\n * calibrate the planned order size with the trading volume and order book\n * depth to prevent trading loss.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 the list of margin-restricted assets.\n *\n * Weight(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 1\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 50\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/market-data#query-margin-available-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(IP): 10\n *\n * Security Type: MARKET_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * **Eligibility**\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 7 or higher.\n * - If you are VIP level 6 or below, please contact your VIP manager for eligibility criterias.\n * - All new Margin Special Key users are required to read, understand, and agree to the Margin Special Key Supplemental Product Terms at the master account level before creating a Margin Special Key.\n * - Once signed at the master account level, the agreement applies to all sub-accounts. The master account and all sub-accounts (Cross Margin Classic and Portfolio Margin Pro) are authorized to create a Margin Special Key and are subject to the LiquidationLoan policy.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Supported Products:**\n *\n * - Cross Margin\n * - Isolated Margin\n * - Portfolio Margin Pro\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 **How to use the Margin Special Key**\n * - Use the below `sapi` endpoint to create your margin special API Key.\n * - For accessing the Cross Margin account, do not send the `symbol` parameter.\n * - For accessing the Isolated Margin account(s), pass the relevant `symbol` parameter in the API Key creation request.\n * - Use the generated API Key (and Secret key, if applicable) to perform margin trading and listenKey generation via **Spot** REST API (`https://api.binance.com/api/v3/*`) endpoints.\n *\n * Read [REST API](/products/spot/rest-api#signed-trade-and-user_data-endpoint-security) or [WebSocket API](/products/spot/web-socket-api#request-security) documentation to learn how to use different API keys\n *\n * You need to enable Permits “Enable Spot & Margin Trading” option for the API Key which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Response Notes:\n * - Error Code Description\n *\n * - **UNSUPPORTED_OPERATION** : Portfolio Margin is an unsupported\n * product, please change the account type to a supported margin product.\n *\n * - **Forbidden**: Cross Margin Pro accounts require additional\n * agreements, please contact your relationship manager.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#create-special-key Binance API Documentation}\n */\n createSpecialKey(\n requestParameters: CreateSpecialKeyRequest\n ): Promise<RestApiResponse<CreateSpecialKeyResponse>> {\n return this.tradeApi.createSpecialKey(requestParameters);\n }\n\n /**\n * Deleting your Margin Special Key alone does not exit you from the Margin Special Key framework or discharge your obligations under the Margin Special Key Supplemental Product Terms. To fully exit, you must:\n *\n * 1. Delete your Margin Special Key.\n * 2. Ensure there are no outstanding liabilities on the account.\n * 3. Call the Exit Margin Special Key API endpoint.\n * 4. Confirm the exit status via the API response.\n *\n * Only after step 4 is completed and the exit status is confirmed by Binance will your account revert to standard liquidation logic and no longer be subject to the Margin Special Key Supplemental Product Terms.\n *\n * If apiKey is given, apiName will be ignored. If apiName is given with no\n * apiKey, all apikeys with given apiName will be deleted.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#delete-special-key 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\n * Trading.\n *\n * You need to enable Permits “Enable Spot & Margin” option for the API Key\n * which requests this endpoint.\n *\n * Weight(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#edit-ip-for-special-key Binance API Documentation}\n */\n editIpForSpecialKey(\n requestParameters: EditIpForSpecialKeyRequest\n ): Promise<RestApiResponse<void>> {\n return this.tradeApi.editIpForSpecialKey(requestParameters);\n }\n\n /**\n * Exit the Margin Special Key mode for Cross Margin Classic accounts.\n *\n **All outstanding liabilities under the Cross Margin Classic account must be fully repaid before calling this endpoint.** Deleting the Margin Special Key alone does not constitute a valid exit.\n *\n * When a user creates a Margin Special API Key, the account enters \"Special Key Mode\". Upon a successful request, the following actions will be performed atomically:\n *\n * 1. All existing Margin Special API Keys under the Cross Margin Classic mode account will be deleted.\n * 2. All pre-execution margin checks (including Open-order-loss calculation) will revert to standard mode.\n * 3. A cooldown period (default: 24 hours) will be enforced, during which the account will not be permitted to create new Margin Special API Keys.\n *\n * For more information, please refer to [FAQ](https://www.binance.com/en/support/faq/detail/3208663e900d4d2e9fec4140e1832f4e).\n *\n **Preconditions:**\n *\n * The following conditions must be met; otherwise the request will be rejected:\n *\n * - Account type must be **Cross Margin Classic**.\n * - Account must currently be in **Special Key Mode**. If not, the request silently succeeds.\n * - Account must **not be in liquidation**.\n * - Account must **have no liability**.\n *\n * You need to enable \"Permits Enable Spot & Margin Trading\" option for the API Key which requests this endpoint.\n *\n * Weight(UID): 10\n *\n * Security Type: TRADE\n *\n * @summary Exit Special Key Mode (TRADE)\n * @param {ExitSpecialKeyModeRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<object>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#exit-special-key-mode Binance API Documentation}\n */\n exitSpecialKeyMode(\n requestParameters: ExitSpecialKeyModeRequest = {}\n ): Promise<RestApiResponse<object>> {\n return this.tradeApi.exitSpecialKeyMode(requestParameters);\n }\n\n /**\n * Get Force Liquidation Record\n *\n * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Response in descending order\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(UID): 100\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Repays the outstanding cross-margin liquidation loan from the user's spot wallet. A liquidation loan represents the account deficit incurred when account equity turns negative during liquidation (bankruptcy). The repayment amount must be greater than 0 and cannot exceed the remaining loan balance. If the Spot Account has insufficient USDC balance, the repayment will fail.\n *\n * Weight(UID): 100\n *\n * Security Type: MARGIN\n *\n * @summary Liquidation Loan Repay (MARGIN)\n * @param {LiquidationLoanRepayRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<LiquidationLoanRepayResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#liquidation-loan-repay Binance API Documentation}\n */\n liquidationLoanRepay(\n requestParameters: LiquidationLoanRepayRequest\n ): Promise<RestApiResponse<LiquidationLoanRepayResponse>> {\n return this.tradeApi.liquidationLoanRepay(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(IP): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-cancel-all-open-orders-on-asymbol 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 * Weight(UID): 1\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Canceling an individual leg will cancel the entire OCO\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 10\n *\n * Security Type: TRADE\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\n * - autoRepayAtCancel is suggested to set as “FALSE” to keep liability unrepaid under high frequent new order/cancel order execution\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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\n * orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n *\n * - The second order is called the **pending order**. It can be any order\n * type except for `MARKET` orders using parameter `quoteOrderQty`. The\n * pending order is only placed on the order book when the working order\n * gets **fully filled**.\n *\n * - If either the working order or the pending order is cancelled\n * individually, the other order in the order list will also be canceled or\n * expired.\n *\n * - When the order list is placed, if the working order gets **immediately\n * fully filled**, the placement response will show the working order as\n * `FILLED` but the pending order will still appear as `PENDING_NEW`. You\n * need to query the status of the pending order again to see its updated\n * status.\n *\n * - OTOs add **2 orders** to the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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\n * - parameters will become mandatory: | Type | Additional mandatory parameters | Additional information | | -------------------------------------------------------- | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingType` = `LIMIT` | `pendingPrice`, `pendingTimeInForce` | | | `pendingType` = `STOP_LOSS` or `TAKE_PROFIT` | `pendingStopPrice` and/or `pendingTrailingDelta` | | | `pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` | `pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce` | | | `pendingTrailingDelta` is provided | `pendingPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 *\n * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list\n * comprised of 3 orders.\n *\n * - The first order is called the **working order** and must be `LIMIT` or\n * `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\n * an OCO pair. The pending orders are only placed on the order book when\n * 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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#margin-account-new-oco).\n * - OTOCOs add **3 orders** against the unfilled order count,\n * `EXCHANGE_MAX_NUM_ORDERS` filter, and `MAX_NUM_ORDERS` filter.\n *\n * Weight: 6(UID) or 1500(UID) when sideEffectType is MARGIN_BUY or AUTO_BORROW_REPAY\n *\n * Security Type: TRADE\n *\n * Notes:\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: | Type | Additional mandatory parameters | Additional information | | ------------------------------------ | ------------------------------------------------------------ | ---------------------- | | `workingType` = `LIMIT` | `workingTimeInForce` | | | `pendingAboveType`= `LIMIT_MAKER` | `pendingAbovePrice` | | | `pendingAboveType`= `STOP_LOSS` | `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta` | | | `pendingAboveType`=`STOP_LOSS_LIMIT` | `pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce` | | | `pendingBelowType`= `LIMIT_MAKER` | `pendingBelowPrice` | | | `pendingBelowType`= `STOP_LOSS` | `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta` | | | `pendingBelowType`=`STOP_LOSS_LIMIT` | `pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce` | | | `pendingAboveTrailingDelta` is provided | `pendingAbovePrice` | | | `pendingBelowTrailingDelta` is provided | `pendingBelowPrice` | |\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(UID): 3000\n *\n * Security Type: TRADE\n *\n * Notes:\n * - This endpoint supports Cross Margin Classic Mode and Pro Mode.\n * - Isolated Margin is only supported in restricted regions.\n *\n * @summary Margin Manual Liquidation (TRADE)\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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(IP): 20\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Query the current user's cross-margin liquidation loan information, including the original loan amount, repaid amount, and remaining amount. When a cross-margin account is liquidated and the account equity turns negative (bankruptcy), the system generates a liquidation loan record representing the deficit. This represents the shortfall amount denominated in USDC.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * @summary Query Liquidation Loan (USER_DATA)\n * @param {QueryLiquidationLoanRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan Binance API Documentation}\n */\n queryLiquidationLoan(\n requestParameters: QueryLiquidationLoanRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanResponse>> {\n return this.tradeApi.queryLiquidationLoan(requestParameters);\n }\n\n /**\n * Query the repayment history of cross-margin liquidation loans (deficit caused by bankruptcy during liquidation). Supports time-range filtering and pagination.\n *\n * Weight(UID): 100\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - The maximum query range is 90 days. If `startTime` is earlier than 90 days ago, it will be clamped to 90 days ago.\n * - Only records with status `SUCCESS` or `PENDING` are returned. Failed repayment records are excluded.\n *\n * @summary Query Liquidation Loan Repay History (USER_DATA)\n * @param {QueryLiquidationLoanRepayHistoryRequest} requestParameters Request parameters.\n *\n * @returns {Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-liquidation-loan-repay-history Binance API Documentation}\n */\n queryLiquidationLoanRepayHistory(\n requestParameters: QueryLiquidationLoanRepayHistoryRequest = {}\n ): Promise<RestApiResponse<QueryLiquidationLoanRepayHistoryResponse>> {\n return this.tradeApi.queryLiquidationLoanRepayHistory(requestParameters);\n }\n\n /**\n * Retrieves all OCO for a specific margin account based on provided optional parameters\n *\n * Weight(IP): 200\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 200\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If orderId is set, it will get orders >= that orderId. Otherwise the\n * orders within 24 hours are returned.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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(IP): 10\n *\n * Security Type: USER_DATA\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If the symbol is not sent, orders for all symbols will be returned in\n * an array.\n *\n * - When all symbols are returned, the number of requests counted against\n * the rate limiter is equal to the number of symbols currently trading on\n * the exchange.\n *\n * - If isIsolated =\"TRUE\", symbol must be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Either orderId or origClientOrderId must be sent.\n *\n * - For some historical orders cummulativeQuoteQty will be < 0, meaning\n * the data is not available at this time.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If fromId is set, it will get trades >= that fromId. Otherwise the\n * trades within 24 hours are returned.\n *\n * - Less than 24 hours between startTime and endTime.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-margin-accounts-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 * Displays the list of orders that were expired due to STP. (Self-Trade Prevention).\n *\n * Weight(IP): 10\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - Supported parameter combinations:\n *\n * - `symbol` + `preventedMatchId`\n *\n * - `symbol` + `orderId`\n *\n * - `symbol` + `orderId` + `fromPreventedMatchId`\n *\n * - If `orderId` is provided, all prevented matches for that order will be\n * returned.\n *\n * - If `preventedMatchId` is provided, the specific prevented match will\n * be returned.\n *\n * - A single request returns a maximum of 500 records. If there are more\n * than 500 records, use `symbol` + `orderId` + `fromPreventedMatchId`\n * combination for pagination.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key 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(UID): 1\n *\n * Security Type: TRADE\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/trade#query-special-key-list 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 * Weight(UID): 3000\n *\n * Security Type: MARGIN\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 1\n *\n * Security Type: USER_DATA\n *\n * Notes:\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 * @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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Weight(IP): 50\n *\n * Security Type: USER_DATA\n *\n * Notes:\n * - If isolatedSymbol is not sent, crossed margin data will be sent.\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/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 * Close out a user data stream.\n *\n * Weight(UID): 3000\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#close-user-data-stream Binance API Documentation}\n */\n closeUserDataStream(): Promise<RestApiResponse<void>> {\n return this.userDataStreamApi.closeUserDataStream();\n }\n\n /**\n * Keepalive a user data stream to prevent a time out.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#keepalive-user-data-stream Binance API Documentation}\n */\n keepaliveUserDataStream(\n requestParameters: KeepaliveUserDataStreamRequest\n ): Promise<RestApiResponse<void>> {\n return this.userDataStreamApi.keepaliveUserDataStream(requestParameters);\n }\n\n /**\n * Start a new user data stream.\n *\n * Weight(UID): 1\n *\n * Security Type: USER_STREAM\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/en/docs/catalog/core-trading-margin-trading/api/rest-api/user-data-stream#start-user-data-stream Binance API Documentation}\n */\n startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n return this.userDataStreamApi.startUserDataStream();\n }\n}\n","/**\n * Margin REST API\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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 * Margin WebSocket Market Streams\n *\n * Access account information, borrow and repay assets, and trade with Binance Margin.\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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"}
|