{"version":3,"file":"index.mjs","names":["localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","AccountApi","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","GeneralApi","ExchangeInfoSymbolStatusEnum","ExecutionRulesSymbolStatusEnum","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","MarketApi","DepthSymbolStatusEnum","KlinesIntervalEnum","ReferencePriceCalculationSymbolStatusEnum","TickerWindowSizeEnum","TickerTypeEnum","TickerSymbolStatusEnum","Ticker24hrTypeEnum","Ticker24hrSymbolStatusEnum","TickerPriceSymbolStatusEnum","TickerTradingDayTypeEnum","TickerTradingDaySymbolStatusEnum","UiKlinesIntervalEnum","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","localVarHeaderParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","TradeApi","OrderCancelReplaceSideEnum","OrderCancelReplaceTypeEnum","OrderCancelReplaceCancelReplaceModeEnum","OrderCancelReplaceTimeInForceEnum","OrderCancelReplaceNewOrderRespTypeEnum","OrderCancelReplaceSelfTradePreventionModeEnum","OrderCancelReplaceCancelRestrictionsEnum","OrderCancelReplaceOrderRateLimitExceededModeEnum","OrderCancelReplacePegPriceTypeEnum","OrderCancelReplacePegOffsetTypeEnum","OrderTestSideEnum","OrderTestTypeEnum","OrderTestTimeInForceEnum","OrderTestNewOrderRespTypeEnum","OrderTestSelfTradePreventionModeEnum","OrderTestPegPriceTypeEnum","OrderTestPegOffsetTypeEnum","SorOrderTestSideEnum","SorOrderTestTypeEnum","SorOrderTestTimeInForceEnum","SorOrderTestNewOrderRespTypeEnum","SorOrderTestSelfTradePreventionModeEnum","AccountApi","GeneralApi","MarketApi","TradeApi","SPOT_REST_API_PROD_URL","SPOT_WS_API_PROD_URL","SPOT_WS_STREAMS_PROD_URL"],"sources":["../package.json","../src/rest-api/modules/account-api.ts","../src/rest-api/modules/general-api.ts","../src/rest-api/modules/market-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/rest-api.ts","../src/rest-api/index.ts","../src/websocket-api/modules/account-api.ts","../src/websocket-api/modules/auth-api.ts","../src/websocket-api/modules/general-api.ts","../src/websocket-api/modules/market-api.ts","../src/websocket-api/modules/trade-api.ts","../src/websocket-api/modules/user-data-stream-api.ts","../src/websocket-api/websocket-api-connection.ts","../src/websocket-api/websocket-api.ts","../src/websocket-api/index.ts","../src/websocket-streams/modules/api.ts","../src/websocket-streams/websocket-streams-connection.ts","../src/websocket-streams/websocket-streams.ts","../src/websocket-streams/index.ts","../src/spot.ts"],"sourcesContent":["{\n    \"name\": \"@binance/spot\",\n    \"description\": \"Official Binance Spot Connector - A lightweight library that provides a convenient interface to Binance's Spot REST API, WebSocket API and WebSocket Streams.\",\n    \"version\": \"32.0.2\",\n    \"main\": \"./dist/index.js\",\n    \"module\": \"./dist/index.mjs\",\n    \"types\": \"./dist/index.d.ts\",\n    \"exports\": {\n        \".\": {\n            \"require\": \"./dist/index.js\",\n            \"import\": \"./dist/index.mjs\"\n        }\n    },\n    \"scripts\": {\n        \"prepublishOnly\": \"npm run build\",\n        \"build\": \"npm run clean && 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        \"Spot\",\n        \"Connector\",\n        \"REST\",\n        \"WebSocket\",\n        \"Trading\"\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.6\",\n        \"@types/ws\": \"^8.5.5\",\n        \"axios\": \"^1.7.4\",\n        \"ws\": \"^8.17.1\"\n    }\n}\n","/**\n * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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    AccountCommissionResponse,\n    AllOrderListResponse,\n    AllOrdersResponse,\n    GetAccountResponse,\n    GetOpenOrdersResponse,\n    GetOrderListResponse,\n    GetOrderResponse,\n    MyAllocationsResponse,\n    MyFiltersResponse,\n    MyPreventedMatchesResponse,\n    MyTradesResponse,\n    OpenOrderListResponse,\n    OrderAmendmentsResponse,\n    RateLimitOrderResponse,\n} from '../types';\n\n/**\n * AccountApi - axios parameter creator\n */\nconst AccountApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Get current account commission rates.\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Query Commission Rates (USER_DATA)\n         * @param {string} symbol\n         *\n         * @throws {RequiredError}\n         */\n        accountCommission: async (symbol: string): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('accountCommission', '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: '/api/v3/account/commission',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Retrieves all order lists based on provided optional parameters.\n         *\n         * Note that the time between `startTime` and `endTime` can't be longer\n         * than 24 hours.\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Query all Order lists (USER_DATA)\n         * @param {number | bigint} [fromId] If supplied, neither startTime or endTime can be provided\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {number} [limit]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        allOrderList: async (\n            fromId?: number | bigint,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n            const localVarBodyParameter: Record<string, unknown> = {};\n            const localVarHeaderParameter: Record<string, unknown> = {};\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: '/api/v3/allOrderList',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get all account orders; active, canceled, or filled.\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * - If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n         * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n         * - If `startTime` and/or `endTime` provided, `orderId` is not required.\n         * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n         *\n         * @summary All orders (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} [orderId]\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {number} [limit]\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        allOrders: async (\n            symbol: string,\n            orderId?: number | bigint,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('allOrders', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n            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 (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: '/api/v3/allOrders',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account information.\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory => Database\n         *\n         * @summary Account information (USER_DATA)\n         * @param {boolean} [omitZeroBalances] When set to `true`, emits only the non-zero balances of an account.\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        getAccount: async (\n            omitZeroBalances?: boolean,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n            const localVarBodyParameter: Record<string, unknown> = {};\n            const localVarHeaderParameter: Record<string, unknown> = {};\n\n            if (omitZeroBalances !== undefined && omitZeroBalances !== null) {\n                localVarQueryParameter['omitZeroBalances'] = omitZeroBalances;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/account',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get all open orders on a symbol. **Careful** when accessing this with no symbol.\n         *\n         * Weight: 6 for a single symbol; 80 when the symbol parameter is omitted\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory => Database\n         *\n         * - If the symbol is not sent, orders for all symbols will be returned in an array.\n         *\n         * @summary Current open orders (USER_DATA)\n         * @param {string} [symbol]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        getOpenOrders: async (symbol?: string, recvWindow?: number): 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: '/api/v3/openOrders',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check an order's status.\n         *\n         * Weight(IP): 4\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory => Database\n         *\n         * - Either `orderId` or `origClientOrderId` must be sent.\n         * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n         * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n         *\n         * @summary Query order (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        getOrder: async (\n            symbol: string,\n            orderId?: number | bigint,\n            origClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('getOrder', '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 (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: '/api/v3/order',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Retrieves a specific order list based on provided optional parameters.\n         *\n         * Weight(IP): 4\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Query Order list (USER_DATA)\n         * @param {number | bigint} [orderListId] Query order list by `orderListId`. `orderListId` or `origClientOrderId` must be provided.\n         * @param {string} [origClientOrderId] Query order list by `listClientOrderId`. `orderListId` or `origClientOrderId` must be provided.\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        getOrderList: async (\n            orderListId?: number | bigint,\n            origClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n            const localVarBodyParameter: Record<string, unknown> = {};\n            const localVarHeaderParameter: Record<string, unknown> = {};\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: '/api/v3/orderList',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Retrieves allocations resulting from SOR order placement.\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\"\n         *\n         * Supported parameter combinations:\n         *\n         * Parameters                                  | Response |\n         * ------------------------------------------- | -------- |\n         * `symbol`                                    | allocations from oldest to newest |\n         * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n         * `symbol` + `endTime`                        | newest allocations until `endTime` |\n         * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n         * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n         * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n         * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n         *\n         **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n         *\n         * @summary Query Allocations (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {number} [fromAllocationId]\n         * @param {number} [limit]\n         * @param {number | bigint} [orderId]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        myAllocations: async (\n            symbol: string,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            fromAllocationId?: number,\n            limit?: number,\n            orderId?: number | bigint,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('myAllocations', '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 (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n            if (fromAllocationId !== undefined && fromAllocationId !== null) {\n                localVarQueryParameter['fromAllocationId'] = fromAllocationId;\n            }\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/myAllocations',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Retrieves the list of filters relevant to an account on a given symbol. This is the only endpoint that shows if an account has `MAX_ASSET` filters applied to it.\n         *\n         * Weight(IP): 40\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Query relevant filters (USER_DATA)\n         * @param {string} symbol\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        myFilters: async (symbol: string, recvWindow?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('myFilters', '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: '/api/v3/myFilters',\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.\n         *\n         * These are the combinations supported:\n         * - `symbol` + `preventedMatchId`\n         * - `symbol` + `orderId`\n         * - `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n         * - `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n         *\n         * Weight: Case                            | Weight\n         * ----                            | -----\n         * If `symbol` is invalid          | 2\n         * Querying by `preventedMatchId`  | 2\n         * Querying by `orderId`           | 20\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Query Prevented Matches (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} [preventedMatchId]\n         * @param {number | bigint} [orderId]\n         * @param {number | bigint} [fromPreventedMatchId]\n         * @param {number} [limit]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        myPreventedMatches: async (\n            symbol: string,\n            preventedMatchId?: number | bigint,\n            orderId?: number | bigint,\n            fromPreventedMatchId?: number | bigint,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('myPreventedMatches', '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 (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: '/api/v3/myPreventedMatches',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get trades for a specific account and symbol.\n         *\n         * Weight: Condition| Weight|\n         * ---| ---\n         * |Without orderId|20|\n         * |With orderId|5|\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory => Database\n         *\n         **Notes:**:\n         * - If `fromId` is set, it will get trades >= that `fromId`. Otherwise most recent trades are returned.\n         * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n         * - These are the supported combinations of all parameters:\n         * - `symbol`\n         * - `symbol` + `orderId`\n         * - `symbol` + `startTime`\n         * - `symbol` + `endTime`\n         * - `symbol` + `fromId`\n         * - `symbol` + `startTime` + `endTime`\n         * - `symbol`+ `orderId` + `fromId`\n         *\n         * @summary Account trade list (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} [orderId] This can only be used in combination with `symbol`.\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {number | bigint} [fromId] TradeId to fetch from. Default gets most recent trades.\n         * @param {number} [limit]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        myTrades: async (\n            symbol: string,\n            orderId?: number | bigint,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            fromId?: number | bigint,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('myTrades', '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 (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: '/api/v3/myTrades',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query Open Order lists\n         *\n         * Weight(IP): 6\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory -> Database\n         *\n         * @summary Query Open Order lists (USER_DATA)\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        openOrderList: async (recvWindow?: number): 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: '/api/v3/openOrderList',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Queries all amendments of a single order.\n         *\n         * Weight(IP): 4\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Query Order Amendments (USER_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} orderId\n         * @param {number | bigint} [fromExecutionId]\n         * @param {number | bigint} [limit]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderAmendments: async (\n            symbol: string,\n            orderId: number | bigint,\n            fromExecutionId?: number | bigint,\n            limit?: number | bigint,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderAmendments', 'symbol', symbol);\n            // verify required parameter 'orderId' is not null or undefined\n            assertParamExists('orderAmendments', 'orderId', orderId);\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 (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n            if (fromExecutionId !== undefined && fromExecutionId !== null) {\n                localVarQueryParameter['fromExecutionId'] = fromExecutionId;\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: '/api/v3/order/amendments',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Displays the user's unfilled order count for all intervals.\n         *\n         * Weight(IP): 40\n         *\n         * Security Type: USER_DATA\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Query Unfilled Order Count (USER_DATA)\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        rateLimitOrder: async (recvWindow?: number): 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: '/api/v3/rateLimit/order',\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     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<RestApiResponse<AccountCommissionResponse>>;\n    /**\n     * Retrieves all order lists based on provided optional parameters.\n     *\n     * Note that the time between `startTime` and `endTime` can't be longer\n     * than 24 hours.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query all Order lists (USER_DATA)\n     * @param {AllOrderListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    allOrderList(\n        requestParameters?: AllOrderListRequest\n    ): Promise<RestApiResponse<AllOrderListResponse>>;\n    /**\n     * Get all account orders; active, canceled, or filled.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     * - If `startTime` and/or `endTime` provided, `orderId` is not required.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary All orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    allOrders(requestParameters: AllOrdersRequest): Promise<RestApiResponse<AllOrdersResponse>>;\n    /**\n     * Get current account information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {GetAccountRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getAccount(requestParameters?: GetAccountRequest): Promise<RestApiResponse<GetAccountResponse>>;\n    /**\n     * Get all open orders on a symbol. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 6 for a single symbol; 80 when the symbol parameter is omitted\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {GetOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getOpenOrders(\n        requestParameters?: GetOpenOrdersRequest\n    ): Promise<RestApiResponse<GetOpenOrdersResponse>>;\n    /**\n     * Check an order's status.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {GetOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getOrder(requestParameters: GetOrderRequest): Promise<RestApiResponse<GetOrderResponse>>;\n    /**\n     * Retrieves a specific order list based on provided optional parameters.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {GetOrderListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getOrderList(\n        requestParameters?: GetOrderListRequest\n    ): Promise<RestApiResponse<GetOrderListResponse>>;\n    /**\n     * Retrieves allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\"\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Query Allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<RestApiResponse<MyAllocationsResponse>>;\n    /**\n     * Retrieves the list of filters relevant to an account on a given symbol. This is the only endpoint that shows if an account has `MAX_ASSET` filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query relevant filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    myFilters(requestParameters: MyFiltersRequest): Promise<RestApiResponse<MyFiltersResponse>>;\n    /**\n     * Displays the list of orders that were expired due to STP.\n     *\n     * These are the combinations supported:\n     * - `symbol` + `preventedMatchId`\n     * - `symbol` + `orderId`\n     * - `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * - `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Prevented Matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<RestApiResponse<MyPreventedMatchesResponse>>;\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     **Notes:**:\n     * - If `fromId` is set, it will get trades >= that `fromId`. Otherwise most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     * - These are the supported combinations of all parameters:\n     * - `symbol`\n     * - `symbol` + `orderId`\n     * - `symbol` + `startTime`\n     * - `symbol` + `endTime`\n     * - `symbol` + `fromId`\n     * - `symbol` + `startTime` + `endTime`\n     * - `symbol`+ `orderId` + `fromId`\n     *\n     * @summary Account trade list (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    myTrades(requestParameters: MyTradesRequest): Promise<RestApiResponse<MyTradesResponse>>;\n    /**\n     * Query Open Order lists\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Query Open Order lists (USER_DATA)\n     * @param {OpenOrderListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    openOrderList(\n        requestParameters?: OpenOrderListRequest\n    ): Promise<RestApiResponse<OpenOrderListResponse>>;\n    /**\n     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<RestApiResponse<OrderAmendmentsResponse>>;\n    /**\n     * Displays the user's unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Unfilled Order Count (USER_DATA)\n     * @param {RateLimitOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    rateLimitOrder(\n        requestParameters?: RateLimitOrderRequest\n    ): Promise<RestApiResponse<RateLimitOrderResponse>>;\n}\n\n/**\n * Request parameters for accountCommission operation in AccountApi.\n * @interface AccountCommissionRequest\n */\nexport interface AccountCommissionRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiAccountCommission\n     */\n    readonly symbol: string;\n}\n\n/**\n * Request parameters for allOrderList operation in AccountApi.\n * @interface AllOrderListRequest\n */\nexport interface AllOrderListRequest {\n    /**\n     * If supplied, neither startTime or endTime can be provided\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrderList\n     */\n    readonly fromId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrderList\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrderList\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAllOrderList\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAllOrderList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for allOrders operation in AccountApi.\n * @interface AllOrdersRequest\n */\nexport interface AllOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiAllOrders\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAllOrders\n     */\n    readonly limit?: number;\n\n    /**\n     * The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAllOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getAccount operation in AccountApi.\n * @interface GetAccountRequest\n */\nexport interface GetAccountRequest {\n    /**\n     * When set to `true`, emits only the non-zero balances of an account.\n     * @type {boolean}\n     * @memberof AccountApiGetAccount\n     */\n    readonly omitZeroBalances?: boolean;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiGetAccount\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getOpenOrders operation in AccountApi.\n * @interface GetOpenOrdersRequest\n */\nexport interface GetOpenOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiGetOpenOrders\n     */\n    readonly symbol?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiGetOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getOrder operation in AccountApi.\n * @interface GetOrderRequest\n */\nexport interface GetOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiGetOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiGetOrder\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiGetOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiGetOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getOrderList operation in AccountApi.\n * @interface GetOrderListRequest\n */\nexport interface GetOrderListRequest {\n    /**\n     * Query order list by `orderListId`. `orderListId` or `origClientOrderId` must be provided.\n     * @type {number | bigint}\n     * @memberof AccountApiGetOrderList\n     */\n    readonly orderListId?: number | bigint;\n\n    /**\n     * Query order list by `listClientOrderId`. `orderListId` or `origClientOrderId` must be provided.\n     * @type {string}\n     * @memberof AccountApiGetOrderList\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiGetOrderList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myAllocations operation in AccountApi.\n * @interface MyAllocationsRequest\n */\nexport interface MyAllocationsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly fromAllocationId?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myFilters operation in AccountApi.\n * @interface MyFiltersRequest\n */\nexport interface MyFiltersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyFilters\n     */\n    readonly symbol: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyFilters\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myPreventedMatches operation in AccountApi.\n * @interface MyPreventedMatchesRequest\n */\nexport interface MyPreventedMatchesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly preventedMatchId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly fromPreventedMatchId?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myTrades operation in AccountApi.\n * @interface MyTradesRequest\n */\nexport interface MyTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyTrades\n     */\n    readonly symbol: string;\n\n    /**\n     * This can only be used in combination with `symbol`.\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * TradeId to fetch from. Default gets most recent trades.\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly fromId?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiMyTrades\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyTrades\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for openOrderList operation in AccountApi.\n * @interface OpenOrderListRequest\n */\nexport interface OpenOrderListRequest {\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOpenOrderList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderAmendments operation in AccountApi.\n * @interface OrderAmendmentsRequest\n */\nexport interface OrderAmendmentsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly orderId: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly fromExecutionId?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly limit?: number | bigint;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for rateLimitOrder operation in AccountApi.\n * @interface RateLimitOrderRequest\n */\nexport interface RateLimitOrderRequest {\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiRateLimitOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * AccountApi - object-oriented interface\n * @class AccountApi\n */\nexport class AccountApi implements AccountApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = AccountApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountCommissionResponse>>}\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-spot-trading/api/rest-api/account#account-commission Binance API Documentation}\n     */\n    public async accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<RestApiResponse<AccountCommissionResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountCommission(\n            requestParameters?.symbol\n        );\n        return sendRequest<AccountCommissionResponse>(\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 order lists based on provided optional parameters.\n     *\n     * Note that the time between `startTime` and `endTime` can't be longer\n     * than 24 hours.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query all Order lists (USER_DATA)\n     * @param {AllOrderListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AllOrderListResponse>>}\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-spot-trading/api/rest-api/account#all-order-list Binance API Documentation}\n     */\n    public async allOrderList(\n        requestParameters: AllOrderListRequest = {}\n    ): Promise<RestApiResponse<AllOrderListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.allOrderList(\n            requestParameters?.fromId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AllOrderListResponse>(\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 all account orders; active, canceled, or filled.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     * - If `startTime` and/or `endTime` provided, `orderId` is not required.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary All orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AllOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#all-orders Binance API Documentation}\n     */\n    public async allOrders(\n        requestParameters: AllOrdersRequest\n    ): Promise<RestApiResponse<AllOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.allOrders(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AllOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.queryParams,\n            localVarAxiosArgs.bodyParams,\n            localVarAxiosArgs.headerParams,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {GetAccountRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetAccountResponse>>}\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-spot-trading/api/rest-api/account#get-account Binance API Documentation}\n     */\n    public async getAccount(\n        requestParameters: GetAccountRequest = {}\n    ): Promise<RestApiResponse<GetAccountResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAccount(\n            requestParameters?.omitZeroBalances,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetAccountResponse>(\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 all open orders on a symbol. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 6 for a single symbol; 80 when the symbol parameter is omitted\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {GetOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOpenOrdersResponse>>}\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-spot-trading/api/rest-api/account#get-open-orders Binance API Documentation}\n     */\n    public async getOpenOrders(\n        requestParameters: GetOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<GetOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetOpenOrdersResponse>(\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     * Check an order's status.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {GetOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOrderResponse>>}\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-spot-trading/api/rest-api/account#get-order Binance API Documentation}\n     */\n    public async getOrder(\n        requestParameters: GetOrderRequest\n    ): Promise<RestApiResponse<GetOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetOrderResponse>(\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 order list based on provided optional parameters.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {GetOrderListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOrderListResponse>>}\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-spot-trading/api/rest-api/account#get-order-list Binance API Documentation}\n     */\n    public async getOrderList(\n        requestParameters: GetOrderListRequest = {}\n    ): Promise<RestApiResponse<GetOrderListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getOrderList(\n            requestParameters?.orderListId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetOrderListResponse>(\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 allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\"\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Query Allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MyAllocationsResponse>>}\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-spot-trading/api/rest-api/account#my-allocations Binance API Documentation}\n     */\n    public async myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<RestApiResponse<MyAllocationsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.myAllocations(\n            requestParameters?.symbol,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.fromAllocationId,\n            requestParameters?.limit,\n            requestParameters?.orderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<MyAllocationsResponse>(\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 the list of filters relevant to an account on a given symbol. This is the only endpoint that shows if an account has `MAX_ASSET` filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query relevant filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MyFiltersResponse>>}\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-spot-trading/api/rest-api/account#my-filters Binance API Documentation}\n     */\n    public async myFilters(\n        requestParameters: MyFiltersRequest\n    ): Promise<RestApiResponse<MyFiltersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.myFilters(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<MyFiltersResponse>(\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.\n     *\n     * These are the combinations supported:\n     * - `symbol` + `preventedMatchId`\n     * - `symbol` + `orderId`\n     * - `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * - `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Prevented Matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MyPreventedMatchesResponse>>}\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-spot-trading/api/rest-api/account#my-prevented-matches Binance API Documentation}\n     */\n    public async myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<RestApiResponse<MyPreventedMatchesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.myPreventedMatches(\n            requestParameters?.symbol,\n            requestParameters?.preventedMatchId,\n            requestParameters?.orderId,\n            requestParameters?.fromPreventedMatchId,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<MyPreventedMatchesResponse>(\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 trades for a specific account and symbol.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     **Notes:**:\n     * - If `fromId` is set, it will get trades >= that `fromId`. Otherwise most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     * - These are the supported combinations of all parameters:\n     * - `symbol`\n     * - `symbol` + `orderId`\n     * - `symbol` + `startTime`\n     * - `symbol` + `endTime`\n     * - `symbol` + `fromId`\n     * - `symbol` + `startTime` + `endTime`\n     * - `symbol`+ `orderId` + `fromId`\n     *\n     * @summary Account trade list (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<MyTradesResponse>>}\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-spot-trading/api/rest-api/account#my-trades Binance API Documentation}\n     */\n    public async myTrades(\n        requestParameters: MyTradesRequest\n    ): Promise<RestApiResponse<MyTradesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.myTrades(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.fromId,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<MyTradesResponse>(\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 Open Order lists\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Query Open Order lists (USER_DATA)\n     * @param {OpenOrderListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenOrderListResponse>>}\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-spot-trading/api/rest-api/account#open-order-list Binance API Documentation}\n     */\n    public async openOrderList(\n        requestParameters: OpenOrderListRequest = {}\n    ): Promise<RestApiResponse<OpenOrderListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.openOrderList(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OpenOrderListResponse>(\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     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderAmendmentsResponse>>}\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-spot-trading/api/rest-api/account#order-amendments Binance API Documentation}\n     */\n    public async orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<RestApiResponse<OrderAmendmentsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderAmendments(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.fromExecutionId,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderAmendmentsResponse>(\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 unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Unfilled Order Count (USER_DATA)\n     * @param {RateLimitOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RateLimitOrderResponse>>}\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-spot-trading/api/rest-api/account#rate-limit-order Binance API Documentation}\n     */\n    public async rateLimitOrder(\n        requestParameters: RateLimitOrderRequest = {}\n    ): Promise<RestApiResponse<RateLimitOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.rateLimitOrder(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<RateLimitOrderResponse>(\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 * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type { ExchangeInfoResponse, ExecutionRulesResponse, TimeResponse } from '../types';\n\n/**\n * GeneralApi - axios parameter creator\n */\nconst GeneralApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Current exchange trading rules and symbol information\n         *\n         * Weight(IP): 20\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         **Notes:**\n         * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n         * All parameters are optional.\n         * `permissions` can support single or multiple values (e.g. `SPOT`, `[\"MARGIN\",\"LEVERAGED\"]`). This cannot be used in combination with `symbol` or `symbols`.\n         * If `permissions` parameter not provided, all symbols that have either `SPOT`, `MARGIN`, or `LEVERAGED` permission will be exposed.\n         * To display symbols with any permission you need to specify them explicitly in `permissions`: (e.g. `[\"SPOT\",\"MARGIN\",...]`.). See Account and Symbol Permissions for the full list.\n         *\n         **Examples of Symbol Permissions Interpretation from the Response:**\n         *\n         * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n         * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n         * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n         *\n         * @summary Exchange information\n         * @param {string} [symbol] Example: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC\"\n         * @param {Array<string>} [symbols] Examples: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?symbols=%5B%22BNBBTC%22,%22BTCUSDT%22%5D\" or curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?symbols=[\"BTCUSDT\",\"BNBBTC\"]'\n         * @param {Array<ExchangeInfoPermissionsEnum>} [permissions] Examples: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?permissions=SPOT\"\n         *\n         * curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?permissions=%5B%22MARGIN%22%2C%22LEVERAGED%22%5D\"\n         * or\n         * curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?permissions=[\"MARGIN\",\"LEVERAGED\"]'\n         * @param {boolean} [showPermissionSets] Controls whether the content of the `permissionSets` field is populated or not.\n         * @param {ExchangeInfoSymbolStatusEnum} [symbolStatus] Filters for symbols that have this `tradingStatus`. Cannot be used in combination with `symbols` or `symbol`.\n         *\n         * @throws {RequiredError}\n         */\n        exchangeInfo: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            permissions?: Array<ExchangeInfoPermissionsEnum>,\n            showPermissionSets?: boolean,\n            symbolStatus?: ExchangeInfoSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (permissions) {\n                localVarQueryParameter['permissions'] = permissions;\n            }\n            if (showPermissionSets !== undefined && showPermissionSets !== null) {\n                localVarQueryParameter['showPermissionSets'] = showPermissionSets;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/exchangeInfo',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query execution rules for symbols.\n         *\n         * Weight: Parameter | Weight\n         * --- | ---\n         * `symbol` | 2\n         * `symbols` | 2 for each `symbol`, capped at a max of 40\n         * `symbolStatus` | 40\n         * None | 40\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         **Note:**: No combination of multiple parameters is allowed.\n         *\n         * @summary Query Execution Rules\n         * @param {string} [symbol] Query for specified symbol.\n         * @param {Array<string>} [symbols] Query for multiple symbols.\n         * @param {ExecutionRulesSymbolStatusEnum} [symbolStatus] Query for all symbols with the specified status.\n         *\n         * @throws {RequiredError}\n         */\n        executionRules: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            symbolStatus?: ExecutionRulesSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/executionRules',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test connectivity to the Rest API.\n         *\n         * Weight(IP): 1\n         *\n         * Security Type: NONE\n         *\n         * @summary Test connectivity\n         *\n         * @throws {RequiredError}\n         */\n        ping: 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: '/api/v3/ping',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test connectivity to the Rest API and get the current server time.\n         *\n         * Weight(IP): 1\n         *\n         * Security Type: NONE\n         *\n         * @summary Check server time\n         *\n         * @throws {RequiredError}\n         */\n        time: 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: '/api/v3/time',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * GeneralApi - interface\n * @interface GeneralApi\n */\nexport interface GeneralApiInterface {\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * `permissions` can support single or multiple values (e.g. `SPOT`, `[\"MARGIN\",\"LEVERAGED\"]`). This cannot be used in combination with `symbol` or `symbols`.\n     * If `permissions` parameter not provided, all symbols that have either `SPOT`, `MARGIN`, or `LEVERAGED` permission will be exposed.\n     * To display symbols with any permission you need to specify them explicitly in `permissions`: (e.g. `[\"SPOT\",\"MARGIN\",...]`.). See Account and Symbol Permissions for the full list.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApiInterface\n     */\n    exchangeInfo(\n        requestParameters?: ExchangeInfoRequest\n    ): Promise<RestApiResponse<ExchangeInfoResponse>>;\n    /**\n     * Query execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:**: No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApiInterface\n     */\n    executionRules(\n        requestParameters?: ExecutionRulesRequest\n    ): Promise<RestApiResponse<ExecutionRulesResponse>>;\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Test connectivity\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApiInterface\n     */\n    ping(): Promise<RestApiResponse<void>>;\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Check server time\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApiInterface\n     */\n    time(): Promise<RestApiResponse<TimeResponse>>;\n}\n\n/**\n * Request parameters for exchangeInfo operation in GeneralApi.\n * @interface ExchangeInfoRequest\n */\nexport interface ExchangeInfoRequest {\n    /**\n     * Example: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC\"\n     * @type {string}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbol?: string;\n\n    /**\n     * Examples: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?symbols=%5B%22BNBBTC%22,%22BTCUSDT%22%5D\" or curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?symbols=[\"BTCUSDT\",\"BNBBTC\"]'\n     * @type {Array<string>}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Examples: curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?permissions=SPOT\"\n     *\n     * curl -X GET \"https://api.binance.com/api/v3/exchangeInfo?permissions=%5B%22MARGIN%22%2C%22LEVERAGED%22%5D\"\n     * or\n     * curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?permissions=[\"MARGIN\",\"LEVERAGED\"]'\n     * @type {Array<'SPOT' | 'MARGIN' | 'LEVERAGED' | 'TRD_GRP_002' | 'TRD_GRP_003' | 'TRD_GRP_004' | 'TRD_GRP_005' | 'TRD_GRP_006' | 'TRD_GRP_007' | 'TRD_GRP_008' | 'TRD_GRP_009' | 'TRD_GRP_010' | 'TRD_GRP_011' | 'TRD_GRP_012' | 'TRD_GRP_013' | 'TRD_GRP_014' | 'TRD_GRP_015' | 'TRD_GRP_016' | 'TRD_GRP_017' | 'TRD_GRP_018' | 'TRD_GRP_019' | 'TRD_GRP_020' | 'TRD_GRP_021' | 'TRD_GRP_022' | 'TRD_GRP_023' | 'TRD_GRP_024' | 'TRD_GRP_025'>}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly permissions?: Array<ExchangeInfoPermissionsEnum>;\n\n    /**\n     * Controls whether the content of the `permissionSets` field is populated or not.\n     * @type {boolean}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly showPermissionSets?: boolean;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. Cannot be used in combination with `symbols` or `symbol`.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbolStatus?: ExchangeInfoSymbolStatusEnum;\n}\n\n/**\n * Request parameters for executionRules operation in GeneralApi.\n * @interface ExecutionRulesRequest\n */\nexport interface ExecutionRulesRequest {\n    /**\n     * Query for specified symbol.\n     * @type {string}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbol?: string;\n\n    /**\n     * Query for multiple symbols.\n     * @type {Array<string>}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Query for all symbols with the specified status.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbolStatus?: ExecutionRulesSymbolStatusEnum;\n}\n\n/**\n * GeneralApi - object-oriented interface\n * @class GeneralApi\n */\nexport class GeneralApi implements GeneralApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = GeneralApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * `permissions` can support single or multiple values (e.g. `SPOT`, `[\"MARGIN\",\"LEVERAGED\"]`). This cannot be used in combination with `symbol` or `symbols`.\n     * If `permissions` parameter not provided, all symbols that have either `SPOT`, `MARGIN`, or `LEVERAGED` permission will be exposed.\n     * To display symbols with any permission you need to specify them explicitly in `permissions`: (e.g. `[\"SPOT\",\"MARGIN\",...]`.). See Account and Symbol Permissions for the full list.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ExchangeInfoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#exchange-info Binance API Documentation}\n     */\n    public async exchangeInfo(\n        requestParameters: ExchangeInfoRequest = {}\n    ): Promise<RestApiResponse<ExchangeInfoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.exchangeInfo(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.permissions,\n            requestParameters?.showPermissionSets,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<ExchangeInfoResponse>(\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 execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:**: No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ExecutionRulesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#execution-rules Binance API Documentation}\n     */\n    public async executionRules(\n        requestParameters: ExecutionRulesRequest = {}\n    ): Promise<RestApiResponse<ExecutionRulesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.executionRules(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<ExecutionRulesResponse>(\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     * Test connectivity to the Rest API.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Test connectivity\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#ping Binance API Documentation}\n     */\n    public async ping(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.ping();\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     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Check server time\n     * @returns {Promise<RestApiResponse<TimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#time Binance API Documentation}\n     */\n    public async time(): Promise<RestApiResponse<TimeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.time();\n        return sendRequest<TimeResponse>(\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 ExchangeInfoPermissionsEnum {\n    SPOT = 'SPOT',\n    MARGIN = 'MARGIN',\n    LEVERAGED = 'LEVERAGED',\n    TRD_GRP_002 = 'TRD_GRP_002',\n    TRD_GRP_003 = 'TRD_GRP_003',\n    TRD_GRP_004 = 'TRD_GRP_004',\n    TRD_GRP_005 = 'TRD_GRP_005',\n    TRD_GRP_006 = 'TRD_GRP_006',\n    TRD_GRP_007 = 'TRD_GRP_007',\n    TRD_GRP_008 = 'TRD_GRP_008',\n    TRD_GRP_009 = 'TRD_GRP_009',\n    TRD_GRP_010 = 'TRD_GRP_010',\n    TRD_GRP_011 = 'TRD_GRP_011',\n    TRD_GRP_012 = 'TRD_GRP_012',\n    TRD_GRP_013 = 'TRD_GRP_013',\n    TRD_GRP_014 = 'TRD_GRP_014',\n    TRD_GRP_015 = 'TRD_GRP_015',\n    TRD_GRP_016 = 'TRD_GRP_016',\n    TRD_GRP_017 = 'TRD_GRP_017',\n    TRD_GRP_018 = 'TRD_GRP_018',\n    TRD_GRP_019 = 'TRD_GRP_019',\n    TRD_GRP_020 = 'TRD_GRP_020',\n    TRD_GRP_021 = 'TRD_GRP_021',\n    TRD_GRP_022 = 'TRD_GRP_022',\n    TRD_GRP_023 = 'TRD_GRP_023',\n    TRD_GRP_024 = 'TRD_GRP_024',\n    TRD_GRP_025 = 'TRD_GRP_025',\n}\n\nexport enum ExchangeInfoSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum ExecutionRulesSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n","/**\n * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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    AggTradesResponse,\n    AvgPriceResponse,\n    DepthResponse,\n    GetTradesResponse,\n    HistoricalBlockTradesResponse,\n    HistoricalTradesResponse,\n    KlinesResponse,\n    ReferencePriceCalculationResponse,\n    ReferencePriceResponse,\n    Ticker24hrResponse,\n    TickerBookTickerResponse,\n    TickerPriceResponse,\n    TickerResponse,\n    TickerTradingDayResponse,\n    UiKlinesResponse,\n} from '../types';\n\n/**\n * MarketApi - axios parameter creator\n */\nconst MarketApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Get compressed, aggregate trades. Trades that fill at the time, from the same taker order, with the same price will have the quantity aggregated.\n         *\n         * Weight(IP): 4\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * - If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.\n         *\n         * @summary Compressed/Aggregate trades list\n         * @param {string} symbol\n         * @param {number | bigint} [fromId] ID to get aggregate trades from INCLUSIVE.\n         * @param {number | bigint} [startTime] Timestamp in ms to get aggregate trades from INCLUSIVE.\n         * @param {number | bigint} [endTime] Timestamp in ms to get aggregate trades until INCLUSIVE.\n         * @param {number} [limit]\n         *\n         * @throws {RequiredError}\n         */\n        aggTrades: async (\n            symbol: string,\n            fromId?: number | bigint,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('aggTrades', '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 (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\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/aggTrades',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Current average price for a symbol.\n         *\n         * Weight(IP): 2\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Current average price\n         * @param {string} symbol\n         *\n         * @throws {RequiredError}\n         */\n        avgPrice: async (symbol: string): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('avgPrice', '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: '/api/v3/avgPrice',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Order book\n         *\n         * Weight: Adjusted based on the limit:\n         *\n         * |Limit|Request Weight\n         * ------|-------\n         * 1-100|  5\n         * 101-500| 25\n         * 501-1000| 50\n         * 1001-5000| 250\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Order book\n         * @param {string} symbol\n         * @param {number} [limit] If limit > 5000, only 5000 entries will be returned.\n         * @param {DepthSymbolStatusEnum} [symbolStatus] Filters for symbols that have this `tradingStatus`.\n         * A status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n         *\n         * @throws {RequiredError}\n         */\n        depth: async (\n            symbol: string,\n            limit?: number,\n            symbolStatus?: DepthSymbolStatusEnum\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('depth', '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 (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/depth',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get recent trades.\n         *\n         * Weight(IP): 25\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Recent trades list\n         * @param {string} symbol\n         * @param {number} [limit]\n         *\n         * @throws {RequiredError}\n         */\n        getTrades: async (symbol: string, limit?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('getTrades', '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 (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/trades',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get block trades.\n         *\n         * Weight(IP): 25\n         *\n         * Security Type: MARKET_DATA\n         *\n         * Notes:\n         * - Data Source: Database\n         *\n         * @summary Historical Block Trades (MARKET_DATA)\n         * @param {string} symbol\n         * @param {number | bigint} fromId Block trade ID to fetch from\n         * @param {number | bigint} [limit] Default: 500; Maximum: 1000\n         *\n         * @throws {RequiredError}\n         */\n        historicalBlockTrades: async (\n            symbol: string,\n            fromId: number | bigint,\n            limit?: number | bigint\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('historicalBlockTrades', 'symbol', symbol);\n            // verify required parameter 'fromId' is not null or undefined\n            assertParamExists('historicalBlockTrades', 'fromId', fromId);\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 (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/historicalBlockTrades',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get older trades.\n         *\n         * Weight(IP): 25\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Old trade lookup\n         * @param {string} symbol\n         * @param {number} [limit]\n         * @param {number | bigint} [fromId] TradeId to fetch from. Default gets most recent trades.\n         *\n         * @throws {RequiredError}\n         */\n        historicalTrades: async (\n            symbol: string,\n            limit?: number,\n            fromId?: number | bigint\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('historicalTrades', '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 (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/historicalTrades',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for a symbol.\n         * Klines are uniquely identified by their open time.\n         *\n         * Weight(IP): 2\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * Supported kline intervals (case-sensitive):\n         *\n         * Interval  | `interval` value\n         * --------- | ----------------\n         * seconds   | `1s`\n         * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n         * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n         * days      | `1d`, `3d`\n         * weeks     | `1w`\n         * months    | `1M`\n         *\n         **Notes:**\n         *\n         * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n         * Supported values for `timeZone`:\n         * Hours and minutes (e.g. `-1:00`, `05:45`)\n         * Only hours (e.g. `0`, `8`, `4`)\n         * Accepted range is strictly [-12:00 to +14:00] inclusive\n         * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n         * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n         *\n         * @summary Kline/Candlestick data\n         * @param {string} symbol\n         * @param {KlinesIntervalEnum} interval\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {string} [timeZone] Default: 0 (UTC)\n         * @param {number} [limit]\n         *\n         * @throws {RequiredError}\n         */\n        klines: async (\n            symbol: string,\n            interval: KlinesIntervalEnum,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            timeZone?: string,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klines', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klines', 'interval', interval);\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 (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\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 (timeZone !== undefined && timeZone !== null) {\n                localVarQueryParameter['timeZone'] = timeZone;\n            }\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/klines',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query the reference price for a symbol.\n         *\n         * Weight(IP): 2\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Query Reference Price\n         * @param {string} symbol\n         *\n         * @throws {RequiredError}\n         */\n        referencePrice: async (symbol: string): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('referencePrice', '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: '/api/v3/referencePrice',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Describes how reference price is calculated for a given symbol.\n         *\n         * Weight(IP): 2\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Query Reference Price Calculation\n         * @param {string} symbol\n         * @param {ReferencePriceCalculationSymbolStatusEnum} [symbolStatus] Supported values: `TRADING`, `HALT`, `BREAK`\n         *\n         * @throws {RequiredError}\n         */\n        referencePriceCalculation: async (\n            symbol: string,\n            symbolStatus?: ReferencePriceCalculationSymbolStatusEnum\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('referencePriceCalculation', '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 (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/referencePrice/calculation',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * **Note:** This endpoint differs from `GET /api/v3/ticker/24hr`.\n         *\n         * The statistical time range of this endpoint can be up to 59999ms longer\n         * than the requested `windowSize`.\n         *\n         * `openTime` starts at the beginning of a minute, while the end time is\n         * the current time. Therefore, the actual interval can be up to 59999ms\n         * longer than the requested window.\n         *\n         * For example, if `closeTime` is 1641287867099 (January 04, 2022\n         * 09:17:47:099 UTC) and `windowSize` is `1d`, then `openTime` is\n         * 1641201420000 (January 3, 2022, 09:17:00 UTC).\n         *\n         * Weight: 4 for each requested symbol regardless of windowSize.\n         *\n         * The weight for this request will cap at 200 once the number of `symbols` in the request is more than 50.\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * @summary Rolling window price change statistics\n         * @param {string} [symbol] Either `symbol` or `symbols` must be provided\n         * @param {Array<string>} [symbols] Either `symbol` or `symbols` must be provided\n         *\n         * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n         *\n         * The maximum number of symbols allowed in a request is 100.\n         * @param {TickerWindowSizeEnum} [windowSize] Units cannot be combined (e.g. `1d2h` is not allowed).\n         * @param {TickerTypeEnum} [type]\n         * @param {TickerSymbolStatusEnum} [symbolStatus]\n         *\n         * @throws {RequiredError}\n         */\n        ticker: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            windowSize?: TickerWindowSizeEnum,\n            type?: TickerTypeEnum,\n            symbolStatus?: TickerSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (windowSize !== undefined && windowSize !== null) {\n                localVarQueryParameter['windowSize'] = windowSize;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/ticker',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * 24 hour rolling window price change statistics. **Careful** when accessing this with no symbol.\n         *\n         * Weight: <table>\n         * <thead>\n         * <tr>\n         * <th>Parameter</th>\n         * <th>Symbols Provided</th>\n         * <th>Weight</th>\n         * </tr>\n         * </thead>\n         * <tbody>\n         * <tr>\n         * <td rowspan=\"2\">symbol</td>\n         * <td>1</td>\n         * <td>2</td>\n         * </tr>\n         * <tr>\n         * <td>symbol parameter is omitted</td>\n         * <td>80</td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"4\">symbols</td>\n         * <td>1-20</td>\n         * <td>2</td>\n         * </tr>\n         * <tr>\n         * <td>21-100</td>\n         * <td>40</td>\n         * </tr>\n         * <tr>\n         * <td>101 or more</td>\n         * <td>80</td>\n         * </tr>\n         * <tr>\n         * <td>symbols parameter is omitted</td>\n         * <td>80</td>\n         * </tr>\n         * </tbody>\n         * </table>\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary 24hr ticker price change statistics\n         * @param {string} [symbol] Either `symbol` or `symbols` must be provided\n         * @param {Array<string>} [symbols] Either `symbol` or `symbols` must be provided\n         *\n         * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n         *\n         * The maximum number of symbols allowed in a request is 100.\n         * @param {Ticker24hrTypeEnum} [type]\n         * @param {Ticker24hrSymbolStatusEnum} [symbolStatus]\n         *\n         * @throws {RequiredError}\n         */\n        ticker24hr: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            type?: Ticker24hrTypeEnum,\n            symbolStatus?: Ticker24hrSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/ticker/24hr',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Best price/qty on the order book for a symbol or symbols.\n         *\n         * Weight: |Parameter|Symbols Provided|Weight|\n         * |---|---|---|\n         * |symbol| 1 |2|\n         * | |omitted| 4|\n         * |symbols| Any |4|\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Symbol order book ticker\n         * @param {string} [symbol] Parameter symbol and symbols cannot be used in combination.\n         * If neither parameter is sent, `bookTickers` for all symbols will be returned in an array.\n         * @param {Array<string>} [symbols] Parameter symbol and symbols cannot be used in combination.\n         * If neither parameter is sent, `bookTickers` for all symbols will be returned in an array.\n         * Examples of accepted format for the symbols parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n         * @param {TickerBookTickerSymbolStatusEnum} [symbolStatus] Filters for symbols that have this `tradingStatus`.\n         * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n         * For multiple or all symbols, non-matching ones are simply excluded from the response.\n         *\n         * @throws {RequiredError}\n         */\n        tickerBookTicker: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            symbolStatus?: TickerBookTickerSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/ticker/bookTicker',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Latest price for a symbol or symbols.\n         *\n         * Weight: |Parameter|Symbols Provided|Weight|\n         * |---|---|---|\n         * |symbol| 1 |2|\n         * | |omitted| 4|\n         * |symbols| Any |4|\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Symbol price ticker\n         * @param {string} [symbol] Parameter symbol and symbols cannot be used in combination.\n         * If neither parameter is sent, prices for all symbols will be returned in an array.\n         * @param {Array<string>} [symbols] Parameter symbol and symbols cannot be used in combination.\n         * If neither parameter is sent, prices for all symbols will be returned in an array.\n         * Examples of accepted format for the symbols parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n         * @param {TickerPriceSymbolStatusEnum} [symbolStatus] Filters for symbols that have this `tradingStatus`.\n         * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n         * For multiple or all symbols, non-matching ones are simply excluded from the response.\n         *\n         * @throws {RequiredError}\n         */\n        tickerPrice: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            symbolStatus?: TickerPriceSymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/ticker/price',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Price change statistics for a trading day.\n         *\n         * Weight: 4 for each requested symbol. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         **Notes:**:\n         * - Supported values for `timeZone`:\n         * - Hours and minutes (e.g. `-1:00`, `05:45`)\n         * - Only hours (e.g. `0`, `8`, `4`)\n         *\n         * @summary Trading Day Ticker\n         * @param {string} [symbol] Either `symbol` or `symbols` must be provided.\n         * @param {Array<string>} [symbols] Either `symbol` or `symbols` must be provided.\n         * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D.\n         * The maximum number of `symbols` allowed in a request is 100.\n         * @param {string} [timeZone] Default: 0 (UTC)\n         * @param {TickerTradingDayTypeEnum} [type]\n         * @param {TickerTradingDaySymbolStatusEnum} [symbolStatus] Filters for symbols that have this `tradingStatus`.\n         * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n         * For multiple symbols, non-matching ones are simply excluded from the response.\n         *\n         * @throws {RequiredError}\n         */\n        tickerTradingDay: async (\n            symbol?: string,\n            symbols?: Array<string>,\n            timeZone?: string,\n            type?: TickerTradingDayTypeEnum,\n            symbolStatus?: TickerTradingDaySymbolStatusEnum\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 (symbols) {\n                localVarQueryParameter['symbols'] = symbols;\n            }\n            if (timeZone !== undefined && timeZone !== null) {\n                localVarQueryParameter['timeZone'] = timeZone;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (symbolStatus !== undefined && symbolStatus !== null) {\n                localVarQueryParameter['symbolStatus'] = symbolStatus;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/ticker/tradingDay',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * The request is similar to klines having the same parameters and\n         * response.\n         *\n         * `uiKlines` return modified kline data, optimized for presentation of\n         * candlestick charts.\n         *\n         * Weight(IP): 2\n         *\n         * Security Type: NONE\n         *\n         * Notes:\n         **Data Source:** Database\n         *\n         * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n         * - Supported values for `timeZone`:\n         * - Hours and minutes (e.g. `-1:00`, `05:45`)\n         * - Only hours (e.g. `0`, `8`, `4`)\n         * - Accepted range is strictly [-12:00 to +14:00] inclusive\n         * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n         * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n         *\n         * @summary UIKlines\n         * @param {string} symbol\n         * @param {UiKlinesIntervalEnum} interval\n         * @param {number | bigint} [startTime]\n         * @param {number | bigint} [endTime]\n         * @param {string} [timeZone] Default: 0 (UTC)\n         * @param {number} [limit]\n         *\n         * @throws {RequiredError}\n         */\n        uiKlines: async (\n            symbol: string,\n            interval: UiKlinesIntervalEnum,\n            startTime?: number | bigint,\n            endTime?: number | bigint,\n            timeZone?: string,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('uiKlines', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('uiKlines', 'interval', interval);\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 (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\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 (timeZone !== undefined && timeZone !== null) {\n                localVarQueryParameter['timeZone'] = timeZone;\n            }\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/uiKlines',\n                method: 'GET',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * MarketApi - interface\n * @interface MarketApi\n */\nexport interface MarketApiInterface {\n    /**\n     * Get compressed, aggregate trades. Trades that fill at the time, from the same taker order, with the same price will have the quantity aggregated.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.\n     *\n     * @summary Compressed/Aggregate trades list\n     * @param {AggTradesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    aggTrades(requestParameters: AggTradesRequest): Promise<RestApiResponse<AggTradesResponse>>;\n    /**\n     * Current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    avgPrice(requestParameters: AvgPriceRequest): Promise<RestApiResponse<AvgPriceResponse>>;\n    /**\n     * Order book\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    depth(requestParameters: DepthRequest): Promise<RestApiResponse<DepthResponse>>;\n    /**\n     * Get recent trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades list\n     * @param {GetTradesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    getTrades(requestParameters: GetTradesRequest): Promise<RestApiResponse<GetTradesResponse>>;\n    /**\n     * Get block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: MARKET_DATA\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades (MARKET_DATA)\n     * @param {HistoricalBlockTradesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    historicalBlockTrades(\n        requestParameters: HistoricalBlockTradesRequest\n    ): Promise<RestApiResponse<HistoricalBlockTradesResponse>>;\n    /**\n     * Get older trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Old trade lookup\n     * @param {HistoricalTradesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    historicalTrades(\n        requestParameters: HistoricalTradesRequest\n    ): Promise<RestApiResponse<HistoricalTradesResponse>>;\n    /**\n     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Kline/Candlestick data\n     * @param {KlinesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    klines(requestParameters: KlinesRequest): Promise<RestApiResponse<KlinesResponse>>;\n    /**\n     * Query the reference price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<RestApiResponse<ReferencePriceResponse>>;\n    /**\n     * Describes how reference price is calculated for a given symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<RestApiResponse<ReferencePriceCalculationResponse>>;\n    /**\n     * **Note:** This endpoint differs from `GET /api/v3/ticker/24hr`.\n     *\n     * The statistical time range of this endpoint can be up to 59999ms longer\n     * than the requested `windowSize`.\n     *\n     * `openTime` starts at the beginning of a minute, while the end time is\n     * the current time. Therefore, the actual interval can be up to 59999ms\n     * longer than the requested window.\n     *\n     * For example, if `closeTime` is 1641287867099 (January 04, 2022\n     * 09:17:47:099 UTC) and `windowSize` is `1d`, then `openTime` is\n     * 1641201420000 (January 3, 2022, 09:17:00 UTC).\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize.\n     *\n     * The weight for this request will cap at 200 once the number of `symbols` in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    ticker(requestParameters?: TickerRequest): Promise<RestApiResponse<TickerResponse>>;\n    /**\n     * 24 hour rolling window price change statistics. **Careful** when accessing this with no symbol.\n     *\n     * Weight: <table>\n     * <thead>\n     * <tr>\n     * <th>Parameter</th>\n     * <th>Symbols Provided</th>\n     * <th>Weight</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"2\">symbol</td>\n     * <td>1</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>symbol parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">symbols</td>\n     * <td>1-20</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>21-100</td>\n     * <td>40</td>\n     * </tr>\n     * <tr>\n     * <td>101 or more</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td>symbols parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    ticker24hr(requestParameters?: Ticker24hrRequest): Promise<RestApiResponse<Ticker24hrResponse>>;\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookTickerRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    tickerBookTicker(\n        requestParameters?: TickerBookTickerRequest\n    ): Promise<RestApiResponse<TickerBookTickerResponse>>;\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    tickerPrice(\n        requestParameters?: TickerPriceRequest\n    ): Promise<RestApiResponse<TickerPriceResponse>>;\n    /**\n     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**:\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    tickerTradingDay(\n        requestParameters?: TickerTradingDayRequest\n    ): Promise<RestApiResponse<TickerTradingDayResponse>>;\n    /**\n     * The request is similar to klines having the same parameters and\n     * response.\n     *\n     * `uiKlines` return modified kline data, optimized for presentation of\n     * candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UIKlines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApiInterface\n     */\n    uiKlines(requestParameters: UiKlinesRequest): Promise<RestApiResponse<UiKlinesResponse>>;\n}\n\n/**\n * Request parameters for aggTrades operation in MarketApi.\n * @interface AggTradesRequest\n */\nexport interface AggTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiAggTrades\n     */\n    readonly symbol: string;\n\n    /**\n     * ID to get aggregate trades from INCLUSIVE.\n     * @type {number | bigint}\n     * @memberof MarketApiAggTrades\n     */\n    readonly fromId?: number | bigint;\n\n    /**\n     * Timestamp in ms to get aggregate trades from INCLUSIVE.\n     * @type {number | bigint}\n     * @memberof MarketApiAggTrades\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms to get aggregate trades until INCLUSIVE.\n     * @type {number | bigint}\n     * @memberof MarketApiAggTrades\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiAggTrades\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for avgPrice operation in MarketApi.\n * @interface AvgPriceRequest\n */\nexport interface AvgPriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiAvgPrice\n     */\n    readonly symbol: string;\n}\n\n/**\n * Request parameters for depth operation in MarketApi.\n * @interface DepthRequest\n */\nexport interface DepthRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiDepth\n     */\n    readonly symbol: string;\n\n    /**\n     * If limit > 5000, only 5000 entries will be returned.\n     * @type {number}\n     * @memberof MarketApiDepth\n     */\n    readonly limit?: number;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`.\n     * A status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiDepth\n     */\n    readonly symbolStatus?: DepthSymbolStatusEnum;\n}\n\n/**\n * Request parameters for getTrades operation in MarketApi.\n * @interface GetTradesRequest\n */\nexport interface GetTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiGetTrades\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiGetTrades\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for historicalBlockTrades operation in MarketApi.\n * @interface HistoricalBlockTradesRequest\n */\nexport interface HistoricalBlockTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiHistoricalBlockTrades\n     */\n    readonly symbol: string;\n\n    /**\n     * Block trade ID to fetch from\n     * @type {number | bigint}\n     * @memberof MarketApiHistoricalBlockTrades\n     */\n    readonly fromId: number | bigint;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number | bigint}\n     * @memberof MarketApiHistoricalBlockTrades\n     */\n    readonly limit?: number | bigint;\n}\n\n/**\n * Request parameters for historicalTrades operation in MarketApi.\n * @interface HistoricalTradesRequest\n */\nexport interface HistoricalTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiHistoricalTrades\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiHistoricalTrades\n     */\n    readonly limit?: number;\n\n    /**\n     * TradeId to fetch from. Default gets most recent trades.\n     * @type {number | bigint}\n     * @memberof MarketApiHistoricalTrades\n     */\n    readonly fromId?: number | bigint;\n}\n\n/**\n * Request parameters for klines operation in MarketApi.\n * @interface KlinesRequest\n */\nexport interface KlinesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiKlines\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketApiKlines\n     */\n    readonly interval: KlinesIntervalEnum;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiKlines\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiKlines\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiKlines\n     */\n    readonly timeZone?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiKlines\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for referencePrice operation in MarketApi.\n * @interface ReferencePriceRequest\n */\nexport interface ReferencePriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiReferencePrice\n     */\n    readonly symbol: string;\n}\n\n/**\n * Request parameters for referencePriceCalculation operation in MarketApi.\n * @interface ReferencePriceCalculationRequest\n */\nexport interface ReferencePriceCalculationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiReferencePriceCalculation\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiReferencePriceCalculation\n     */\n    readonly symbolStatus?: ReferencePriceCalculationSymbolStatusEnum;\n}\n\n/**\n * Request parameters for ticker operation in MarketApi.\n * @interface TickerRequest\n */\nexport interface TickerRequest {\n    /**\n     * Either `symbol` or `symbols` must be provided\n     * @type {string}\n     * @memberof MarketApiTicker\n     */\n    readonly symbol?: string;\n\n    /**\n     * Either `symbol` or `symbols` must be provided\n     *\n     * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n     *\n     * The maximum number of symbols allowed in a request is 100.\n     * @type {Array<string>}\n     * @memberof MarketApiTicker\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Units cannot be combined (e.g. `1d2h` is not allowed).\n     * @type {'1m' | '2m' | '3m' | '4m' | '5m' | '6m' | '7m' | '8m' | '9m' | '10m' | '11m' | '12m' | '13m' | '14m' | '15m' | '16m' | '17m' | '18m' | '19m' | '20m' | '21m' | '22m' | '23m' | '24m' | '25m' | '26m' | '27m' | '28m' | '29m' | '30m' | '31m' | '32m' | '33m' | '34m' | '35m' | '36m' | '37m' | '38m' | '39m' | '40m' | '41m' | '42m' | '43m' | '44m' | '45m' | '46m' | '47m' | '48m' | '49m' | '50m' | '51m' | '52m' | '53m' | '54m' | '55m' | '56m' | '57m' | '58m' | '59m' | '1h' | '2h' | '3h' | '4h' | '5h' | '6h' | '7h' | '8h' | '9h' | '10h' | '11h' | '12h' | '13h' | '14h' | '15h' | '16h' | '17h' | '18h' | '19h' | '20h' | '21h' | '22h' | '23h' | '1d' | '2d' | '3d' | '4d' | '5d' | '6d' | '7d'}\n     * @memberof MarketApiTicker\n     */\n    readonly windowSize?: TickerWindowSizeEnum;\n\n    /**\n     *\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTicker\n     */\n    readonly type?: TickerTypeEnum;\n\n    /**\n     *\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTicker\n     */\n    readonly symbolStatus?: TickerSymbolStatusEnum;\n}\n\n/**\n * Request parameters for ticker24hr operation in MarketApi.\n * @interface Ticker24hrRequest\n */\nexport interface Ticker24hrRequest {\n    /**\n     * Either `symbol` or `symbols` must be provided\n     * @type {string}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbol?: string;\n\n    /**\n     * Either `symbol` or `symbols` must be provided\n     *\n     * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n     *\n     * The maximum number of symbols allowed in a request is 100.\n     * @type {Array<string>}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     *\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly type?: Ticker24hrTypeEnum;\n\n    /**\n     *\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbolStatus?: Ticker24hrSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerBookTicker operation in MarketApi.\n * @interface TickerBookTickerRequest\n */\nexport interface TickerBookTickerRequest {\n    /**\n     * Parameter symbol and symbols cannot be used in combination.\n     * If neither parameter is sent, `bookTickers` for all symbols will be returned in an array.\n     * @type {string}\n     * @memberof MarketApiTickerBookTicker\n     */\n    readonly symbol?: string;\n\n    /**\n     * Parameter symbol and symbols cannot be used in combination.\n     * If neither parameter is sent, `bookTickers` for all symbols will be returned in an array.\n     * Examples of accepted format for the symbols parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n     * @type {Array<string>}\n     * @memberof MarketApiTickerBookTicker\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`.\n     * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n     * For multiple or all symbols, non-matching ones are simply excluded from the response.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerBookTicker\n     */\n    readonly symbolStatus?: TickerBookTickerSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerPrice operation in MarketApi.\n * @interface TickerPriceRequest\n */\nexport interface TickerPriceRequest {\n    /**\n     * Parameter symbol and symbols cannot be used in combination.\n     * If neither parameter is sent, prices for all symbols will be returned in an array.\n     * @type {string}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbol?: string;\n\n    /**\n     * Parameter symbol and symbols cannot be used in combination.\n     * If neither parameter is sent, prices for all symbols will be returned in an array.\n     * Examples of accepted format for the symbols parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D\n     * @type {Array<string>}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`.\n     * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n     * For multiple or all symbols, non-matching ones are simply excluded from the response.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbolStatus?: TickerPriceSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerTradingDay operation in MarketApi.\n * @interface TickerTradingDayRequest\n */\nexport interface TickerTradingDayRequest {\n    /**\n     * Either `symbol` or `symbols` must be provided.\n     * @type {string}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbol?: string;\n\n    /**\n     * Either `symbol` or `symbols` must be provided.\n     * Examples of accepted format for the `symbols` parameter: [\"BTCUSDT\",\"BNBUSDT\"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D.\n     * The maximum number of `symbols` allowed in a request is 100.\n     * @type {Array<string>}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly timeZone?: string;\n\n    /**\n     *\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly type?: TickerTradingDayTypeEnum;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`.\n     * For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n     * For multiple symbols, non-matching ones are simply excluded from the response.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbolStatus?: TickerTradingDaySymbolStatusEnum;\n}\n\n/**\n * Request parameters for uiKlines operation in MarketApi.\n * @interface UiKlinesRequest\n */\nexport interface UiKlinesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiUiKlines\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketApiUiKlines\n     */\n    readonly interval: UiKlinesIntervalEnum;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiUiKlines\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiUiKlines\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiUiKlines\n     */\n    readonly timeZone?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiUiKlines\n     */\n    readonly limit?: number;\n}\n\n/**\n * MarketApi - object-oriented interface\n * @class MarketApi\n */\nexport class MarketApi implements MarketApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = MarketApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get compressed, aggregate trades. Trades that fill at the time, from the same taker order, with the same price will have the quantity aggregated.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.\n     *\n     * @summary Compressed/Aggregate trades list\n     * @param {AggTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AggTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#agg-trades Binance API Documentation}\n     */\n    public async aggTrades(\n        requestParameters: AggTradesRequest\n    ): Promise<RestApiResponse<AggTradesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.aggTrades(\n            requestParameters?.symbol,\n            requestParameters?.fromId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<AggTradesResponse>(\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     * Current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AvgPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#avg-price Binance API Documentation}\n     */\n    public async avgPrice(\n        requestParameters: AvgPriceRequest\n    ): Promise<RestApiResponse<AvgPriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.avgPrice(\n            requestParameters?.symbol\n        );\n        return sendRequest<AvgPriceResponse>(\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     * Order book\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<DepthResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#depth Binance API Documentation}\n     */\n    public async depth(requestParameters: DepthRequest): Promise<RestApiResponse<DepthResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.depth(\n            requestParameters?.symbol,\n            requestParameters?.limit,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<DepthResponse>(\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 recent trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades list\n     * @param {GetTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#get-trades Binance API Documentation}\n     */\n    public async getTrades(\n        requestParameters: GetTradesRequest\n    ): Promise<RestApiResponse<GetTradesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getTrades(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<GetTradesResponse>(\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 block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: MARKET_DATA\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades (MARKET_DATA)\n     * @param {HistoricalBlockTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<HistoricalBlockTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#historical-block-trades Binance API Documentation}\n     */\n    public async historicalBlockTrades(\n        requestParameters: HistoricalBlockTradesRequest\n    ): Promise<RestApiResponse<HistoricalBlockTradesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.historicalBlockTrades(\n            requestParameters?.symbol,\n            requestParameters?.fromId,\n            requestParameters?.limit\n        );\n        return sendRequest<HistoricalBlockTradesResponse>(\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 older trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Old trade lookup\n     * @param {HistoricalTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<HistoricalTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#historical-trades Binance API Documentation}\n     */\n    public async historicalTrades(\n        requestParameters: HistoricalTradesRequest\n    ): Promise<RestApiResponse<HistoricalTradesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.historicalTrades(\n            requestParameters?.symbol,\n            requestParameters?.limit,\n            requestParameters?.fromId\n        );\n        return sendRequest<HistoricalTradesResponse>(\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     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Kline/Candlestick data\n     * @param {KlinesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<KlinesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#klines Binance API Documentation}\n     */\n    public async klines(\n        requestParameters: KlinesRequest\n    ): Promise<RestApiResponse<KlinesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.klines(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.timeZone,\n            requestParameters?.limit\n        );\n        return sendRequest<KlinesResponse>(\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 the reference price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ReferencePriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#reference-price Binance API Documentation}\n     */\n    public async referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<RestApiResponse<ReferencePriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.referencePrice(\n            requestParameters?.symbol\n        );\n        return sendRequest<ReferencePriceResponse>(\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     * Describes how reference price is calculated for a given symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ReferencePriceCalculationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#reference-price-calculation Binance API Documentation}\n     */\n    public async referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<RestApiResponse<ReferencePriceCalculationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.referencePriceCalculation(\n            requestParameters?.symbol,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<ReferencePriceCalculationResponse>(\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     * **Note:** This endpoint differs from `GET /api/v3/ticker/24hr`.\n     *\n     * The statistical time range of this endpoint can be up to 59999ms longer\n     * than the requested `windowSize`.\n     *\n     * `openTime` starts at the beginning of a minute, while the end time is\n     * the current time. Therefore, the actual interval can be up to 59999ms\n     * longer than the requested window.\n     *\n     * For example, if `closeTime` is 1641287867099 (January 04, 2022\n     * 09:17:47:099 UTC) and `windowSize` is `1d`, then `openTime` is\n     * 1641201420000 (January 3, 2022, 09:17:00 UTC).\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize.\n     *\n     * The weight for this request will cap at 200 once the number of `symbols` in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker Binance API Documentation}\n     */\n    public async ticker(\n        requestParameters: TickerRequest = {}\n    ): Promise<RestApiResponse<TickerResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.ticker(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.windowSize,\n            requestParameters?.type,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<TickerResponse>(\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     * 24 hour rolling window price change statistics. **Careful** when accessing this with no symbol.\n     *\n     * Weight: <table>\n     * <thead>\n     * <tr>\n     * <th>Parameter</th>\n     * <th>Symbols Provided</th>\n     * <th>Weight</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"2\">symbol</td>\n     * <td>1</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>symbol parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">symbols</td>\n     * <td>1-20</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>21-100</td>\n     * <td>40</td>\n     * </tr>\n     * <tr>\n     * <td>101 or more</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td>symbols parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<Ticker24hrResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker24hr Binance API Documentation}\n     */\n    public async ticker24hr(\n        requestParameters: Ticker24hrRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.ticker24hr(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.type,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<Ticker24hrResponse>(\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     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TickerBookTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-book-ticker Binance API Documentation}\n     */\n    public async tickerBookTicker(\n        requestParameters: TickerBookTickerRequest = {}\n    ): Promise<RestApiResponse<TickerBookTickerResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.tickerBookTicker(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<TickerBookTickerResponse>(\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     * Latest price for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TickerPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-price Binance API Documentation}\n     */\n    public async tickerPrice(\n        requestParameters: TickerPriceRequest = {}\n    ): Promise<RestApiResponse<TickerPriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.tickerPrice(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<TickerPriceResponse>(\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     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**:\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<TickerTradingDayResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-trading-day Binance API Documentation}\n     */\n    public async tickerTradingDay(\n        requestParameters: TickerTradingDayRequest = {}\n    ): Promise<RestApiResponse<TickerTradingDayResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.tickerTradingDay(\n            requestParameters?.symbol,\n            requestParameters?.symbols,\n            requestParameters?.timeZone,\n            requestParameters?.type,\n            requestParameters?.symbolStatus\n        );\n        return sendRequest<TickerTradingDayResponse>(\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     * The request is similar to klines having the same parameters and\n     * response.\n     *\n     * `uiKlines` return modified kline data, optimized for presentation of\n     * candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UIKlines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UiKlinesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ui-klines Binance API Documentation}\n     */\n    public async uiKlines(\n        requestParameters: UiKlinesRequest\n    ): Promise<RestApiResponse<UiKlinesResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.uiKlines(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.timeZone,\n            requestParameters?.limit\n        );\n        return sendRequest<UiKlinesResponse>(\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 DepthSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum KlinesIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum ReferencePriceCalculationSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerWindowSizeEnum {\n    WINDOW_SIZE_1m = '1m',\n    WINDOW_SIZE_2m = '2m',\n    WINDOW_SIZE_3m = '3m',\n    WINDOW_SIZE_4m = '4m',\n    WINDOW_SIZE_5m = '5m',\n    WINDOW_SIZE_6m = '6m',\n    WINDOW_SIZE_7m = '7m',\n    WINDOW_SIZE_8m = '8m',\n    WINDOW_SIZE_9m = '9m',\n    WINDOW_SIZE_10m = '10m',\n    WINDOW_SIZE_11m = '11m',\n    WINDOW_SIZE_12m = '12m',\n    WINDOW_SIZE_13m = '13m',\n    WINDOW_SIZE_14m = '14m',\n    WINDOW_SIZE_15m = '15m',\n    WINDOW_SIZE_16m = '16m',\n    WINDOW_SIZE_17m = '17m',\n    WINDOW_SIZE_18m = '18m',\n    WINDOW_SIZE_19m = '19m',\n    WINDOW_SIZE_20m = '20m',\n    WINDOW_SIZE_21m = '21m',\n    WINDOW_SIZE_22m = '22m',\n    WINDOW_SIZE_23m = '23m',\n    WINDOW_SIZE_24m = '24m',\n    WINDOW_SIZE_25m = '25m',\n    WINDOW_SIZE_26m = '26m',\n    WINDOW_SIZE_27m = '27m',\n    WINDOW_SIZE_28m = '28m',\n    WINDOW_SIZE_29m = '29m',\n    WINDOW_SIZE_30m = '30m',\n    WINDOW_SIZE_31m = '31m',\n    WINDOW_SIZE_32m = '32m',\n    WINDOW_SIZE_33m = '33m',\n    WINDOW_SIZE_34m = '34m',\n    WINDOW_SIZE_35m = '35m',\n    WINDOW_SIZE_36m = '36m',\n    WINDOW_SIZE_37m = '37m',\n    WINDOW_SIZE_38m = '38m',\n    WINDOW_SIZE_39m = '39m',\n    WINDOW_SIZE_40m = '40m',\n    WINDOW_SIZE_41m = '41m',\n    WINDOW_SIZE_42m = '42m',\n    WINDOW_SIZE_43m = '43m',\n    WINDOW_SIZE_44m = '44m',\n    WINDOW_SIZE_45m = '45m',\n    WINDOW_SIZE_46m = '46m',\n    WINDOW_SIZE_47m = '47m',\n    WINDOW_SIZE_48m = '48m',\n    WINDOW_SIZE_49m = '49m',\n    WINDOW_SIZE_50m = '50m',\n    WINDOW_SIZE_51m = '51m',\n    WINDOW_SIZE_52m = '52m',\n    WINDOW_SIZE_53m = '53m',\n    WINDOW_SIZE_54m = '54m',\n    WINDOW_SIZE_55m = '55m',\n    WINDOW_SIZE_56m = '56m',\n    WINDOW_SIZE_57m = '57m',\n    WINDOW_SIZE_58m = '58m',\n    WINDOW_SIZE_59m = '59m',\n    WINDOW_SIZE_1h = '1h',\n    WINDOW_SIZE_2h = '2h',\n    WINDOW_SIZE_3h = '3h',\n    WINDOW_SIZE_4h = '4h',\n    WINDOW_SIZE_5h = '5h',\n    WINDOW_SIZE_6h = '6h',\n    WINDOW_SIZE_7h = '7h',\n    WINDOW_SIZE_8h = '8h',\n    WINDOW_SIZE_9h = '9h',\n    WINDOW_SIZE_10h = '10h',\n    WINDOW_SIZE_11h = '11h',\n    WINDOW_SIZE_12h = '12h',\n    WINDOW_SIZE_13h = '13h',\n    WINDOW_SIZE_14h = '14h',\n    WINDOW_SIZE_15h = '15h',\n    WINDOW_SIZE_16h = '16h',\n    WINDOW_SIZE_17h = '17h',\n    WINDOW_SIZE_18h = '18h',\n    WINDOW_SIZE_19h = '19h',\n    WINDOW_SIZE_20h = '20h',\n    WINDOW_SIZE_21h = '21h',\n    WINDOW_SIZE_22h = '22h',\n    WINDOW_SIZE_23h = '23h',\n    WINDOW_SIZE_1d = '1d',\n    WINDOW_SIZE_2d = '2d',\n    WINDOW_SIZE_3d = '3d',\n    WINDOW_SIZE_4d = '4d',\n    WINDOW_SIZE_5d = '5d',\n    WINDOW_SIZE_6d = '6d',\n    WINDOW_SIZE_7d = '7d',\n}\n\nexport enum TickerTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum TickerSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum Ticker24hrTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum Ticker24hrSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerBookTickerSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerPriceSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerTradingDayTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum TickerTradingDaySymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum UiKlinesIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n","/**\n * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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    DeleteOpenOrdersResponse,\n    DeleteOrderListResponse,\n    DeleteOrderResponse,\n    NewOrderResponse,\n    OrderAmendKeepPriorityResponse,\n    OrderCancelReplaceResponse,\n    OrderListOcoResponse,\n    OrderListOpoResponse,\n    OrderListOpocoResponse,\n    OrderListOtoResponse,\n    OrderListOtocoResponse,\n    OrderOcoResponse,\n    OrderTestResponse,\n    SorOrderResponse,\n    SorOrderTestResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Cancels all active orders on a symbol.\n         * This includes orders that are part of an order list.\n         *\n         * Weight(IP): 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary Cancel All Open Orders on a Symbol (TRADE)\n         * @param {string} symbol\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        deleteOpenOrders: async (symbol: string, recvWindow?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('deleteOpenOrders', '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: '/api/v3/openOrders',\n                method: 'DELETE',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel an active order.\n         *\n         * Weight(IP): 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * - Either `orderId` or `origClientOrderId` must be sent.\n         * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n         * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n         *\n         * @summary Cancel order (TRADE)\n         * @param {string} symbol\n         * @param {number | bigint} [orderId]\n         * @param {string} [origClientOrderId]\n         * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default.\n         * @param {DeleteOrderCancelRestrictionsEnum} [cancelRestrictions] Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        deleteOrder: async (\n            symbol: string,\n            orderId?: number | bigint,\n            origClientOrderId?: string,\n            newClientOrderId?: string,\n            cancelRestrictions?: DeleteOrderCancelRestrictionsEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('deleteOrder', '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 (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 (cancelRestrictions !== undefined && cancelRestrictions !== null) {\n                localVarQueryParameter['cancelRestrictions'] = cancelRestrictions;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order',\n                method: 'DELETE',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel an entire Order list\n         *\n         * Weight(IP): 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         **Notes:**\n         * - Canceling an individual order from an order list will cancel the entire order list.\n         * - If both orderListId and listClientOrderId parameters are provided, the orderListId is searched first, then the listClientOrderId from that result is checked against that order. If both conditions are not met the request will be rejected.\n         *\n         * @summary Cancel Order list (TRADE)\n         * @param {string} symbol\n         * @param {number | bigint} [orderListId] Either `orderListId` or `listClientOrderId` must be provided\n         * @param {string} [listClientOrderId] Either `orderListId` or `listClientOrderId` must be provided\n         * @param {string} [newClientOrderId] Used to uniquely identify this cancel. Automatically generated by default.\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        deleteOrderList: async (\n            symbol: string,\n            orderListId?: number | bigint,\n            listClientOrderId?: string,\n            newClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('deleteOrderList', '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 (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: '/api/v3/orderList',\n                method: 'DELETE',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in a new order.\n         *\n         * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * Some additional mandatory parameters based on order `type`:\n         *\n         * Type | Additional mandatory parameters | Additional Information\n         * ------------ | ------------| ------\n         * `LIMIT` | `timeInForce`, `quantity`, `price`|\n         * `MARKET` | `quantity` or `quoteOrderQty`| `MARKET` orders using the `quantity` field specifies the amount of the `base asset` the user wants to buy or sell at the market price. <br/> E.g. MARKET order on BTCUSDT will specify how much BTC the user is buying or selling. <br/><br/> `MARKET` orders using `quoteOrderQty` specifies the amount the user wants to spend (when buying) or receive (when selling) the `quote` asset; the correct `quantity` will be determined based on the market liquidity and `quoteOrderQty`. <br/> E.g. Using the symbol BTCUSDT: <br/> `BUY` side, the order will buy as many BTC as `quoteOrderQty` USDT can. <br/> `SELL` side, the order will sell as much BTC needed to receive `quoteOrderQty` USDT.\n         * `STOP_LOSS` | `quantity`, `stopPrice` or `trailingDelta`| This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n         * `STOP_LOSS_LIMIT` | `timeInForce`, `quantity`,  `price`, `stopPrice` or `trailingDelta`\n         * `TAKE_PROFIT` | `quantity`, `stopPrice` or `trailingDelta` | This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n         * `TAKE_PROFIT_LIMIT` | `timeInForce`, `quantity`, `price`, `stopPrice` or `trailingDelta` |\n         * `LIMIT_MAKER` | `quantity`, `price`| This is a `LIMIT` order that will be rejected if the order immediately matches and trades as a taker. <br/> This is also known as a POST-ONLY order.\n         *\n         *\n         * Notes on using parameters for Pegged Orders:\n         * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n         * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n         * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n         * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n         * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n         *\n         * Other info:\n         * Any `LIMIT` or `LIMIT_MAKER` type order can be made an iceberg order by sending an `icebergQty`.\n         * Any order with an `icebergQty` MUST have `timeInForce` set to `GTC`.\n         * For `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` and `TAKE_PROFIT` orders, `trailingDelta` can be combined with `stopPrice`.\n         * `MARKET` orders using `quoteOrderQty` will not break `LOT_SIZE` filter rules; the order will execute a `quantity` that will have the notional value as close as possible to `quoteOrderQty`. Trigger order price rules against market price for both MARKET and LIMIT versions:\n         * Price above market price: `STOP_LOSS` `BUY`, `TAKE_PROFIT` `SELL`\n         * Price below market price: `STOP_LOSS` `SELL`, `TAKE_PROFIT` `BUY`\n         *\n         * @summary New order (TRADE)\n         * @param {string} symbol\n         * @param {NewOrderSideEnum} side Please see [Enums](/products/spot/enums#side) for supported values.\n         * @param {NewOrderTypeEnum} type Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n         * @param {NewOrderTimeInForceEnum} [timeInForce] Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n         * @param {number} [quantity]\n         * @param {number} [quoteOrderQty]\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n         * @param {number | bigint} [strategyId]\n         * @param {number} [strategyType] The value cannot be less than `1000000`.\n         * @param {number} [stopPrice] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n         * @param {number | bigint} [trailingDelta] See Trailing Stop order FAQ\n         * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n         * @param {NewOrderNewOrderRespTypeEnum} [newOrderRespType] `MARKET` and `LIMIT` order types default to `FULL`, all other orders default to `ACK`.\n         * @param {NewOrderSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol.\n         * @param {NewOrderPegPriceTypeEnum} [pegPriceType] See Pegged Orders Info\n         * @param {number} [pegOffsetValue] Price level to peg the price to (max: 100). See Pegged Orders Info\n         * @param {NewOrderPegOffsetTypeEnum} [pegOffsetType] Only `PRICE_LEVEL` is supported. See Pegged Orders Info\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        newOrder: async (\n            symbol: string,\n            side: NewOrderSideEnum,\n            type: NewOrderTypeEnum,\n            timeInForce?: NewOrderTimeInForceEnum,\n            quantity?: number,\n            quoteOrderQty?: number,\n            price?: number,\n            newClientOrderId?: string,\n            strategyId?: number | bigint,\n            strategyType?: number,\n            stopPrice?: number,\n            trailingDelta?: number | bigint,\n            icebergQty?: number,\n            newOrderRespType?: NewOrderNewOrderRespTypeEnum,\n            selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum,\n            pegPriceType?: NewOrderPegPriceTypeEnum,\n            pegOffsetValue?: number,\n            pegOffsetType?: NewOrderPegOffsetTypeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('newOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('newOrder', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('newOrder', 'type', type);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n            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 (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\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 (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n            if (strategyId !== undefined && strategyId !== null) {\n                localVarQueryParameter['strategyId'] = strategyId;\n            }\n            if (strategyType !== undefined && strategyType !== null) {\n                localVarQueryParameter['strategyType'] = strategyType;\n            }\n            if (stopPrice !== undefined && stopPrice !== null) {\n                localVarQueryParameter['stopPrice'] = stopPrice;\n            }\n            if (trailingDelta !== undefined && trailingDelta !== null) {\n                localVarQueryParameter['trailingDelta'] = trailingDelta;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (pegPriceType !== undefined && pegPriceType !== null) {\n                localVarQueryParameter['pegPriceType'] = pegPriceType;\n            }\n            if (pegOffsetValue !== undefined && pegOffsetValue !== null) {\n                localVarQueryParameter['pegOffsetValue'] = pegOffsetValue;\n            }\n            if (pegOffsetType !== undefined && pegOffsetType !== null) {\n                localVarQueryParameter['pegOffsetType'] = pegOffsetType;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Reduce the quantity of an existing open order.\n         *\n         * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         *\n         * Read Order Amend Keep Priority FAQ to learn more.\n         *\n         * Weight(IP): 4\n         *\n         * Unfilled Order Count: 0\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary Order Amend Keep Priority (TRADE)\n         * @param {string} symbol\n         * @param {number} newQty `newQty` must be greater than 0 and less than the order's quantity.\n         * @param {number | bigint} [orderId] `orderId` or `origClientOrderId` must be sent\n         * @param {string} [origClientOrderId] `orderId` or `origClientOrderId` must be sent\n         * @param {string} [newClientOrderId] The new client order ID for the order after being amended. <br> If not sent, one will be randomly generated. <br> It is possible to reuse the current clientOrderId by sending it as the `newClientOrderId`.\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderAmendKeepPriority: async (\n            symbol: string,\n            newQty: number,\n            orderId?: number | bigint,\n            origClientOrderId?: string,\n            newClientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderAmendKeepPriority', 'symbol', symbol);\n            // verify required parameter 'newQty' is not null or undefined\n            assertParamExists('orderAmendKeepPriority', 'newQty', newQty);\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 (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 (newQty !== undefined && newQty !== null) {\n                localVarQueryParameter['newQty'] = newQty;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order/amend/keepPriority',\n                method: 'PUT',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * - Cancels an existing order and places a new order on the same symbol.\n         * - Filters and Order Count are evaluated before the processing of the cancellation and order placement occurs.\n         * - A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n         * - You can only cancel an individual order from an orderList using this endpoint, but the result is the same as canceling the entire orderList.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * Similar to `POST /api/v3/order`, additional mandatory parameters are determined by `type`.\n         * Response format varies depending on whether the processing of the message succeeded, partially succeeded, or failed.\n         *\n         * <table>\n         * <thead>\n         * <tr>\n         * <th colspan=3 align=left>Request</th>\n         * <th colspan=3 align=left>Response</th>\n         * </tr>\n         * <tr>\n         * <th><code>cancelReplaceMode</code></th>\n         * <th><code>orderRateLimitExceededMode</code></th>\n         * <th>Unfilled Order Count</th>\n         * <th><code>cancelResult</code></th>\n         * <th><code>newOrderResult</code></th>\n         * <th><code>status</code></th>\n         * </tr>\n         * </thead>\n         * <tbody>\n         * <tr>\n         * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n         * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n         * <td rowspan=\"3\">Within Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>200</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>➖ <code>NOT_ATTEMPTED</code></td>\n         * <td align=right><code>400</code></td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"3\">Exceeds Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>➖ <code>NOT_ATTEMPTED</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n         * <td rowspan=\"3\">Within Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>200</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>➖ <code>NOT_ATTEMPTED</code></td>\n         * <td align=right><code>400</code></td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"2\">Exceeds Limits</td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>➖ <code>NOT_ATTEMPTED</code></td>\n         * <td align=right><code>429</code></td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>429</code></td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n         * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n         * <td rowspan=\"4\">Within Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>200</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>400</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"4\">Exceeds Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n         * <td rowspan=\"4\">Within Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>200</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>400</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * <tr>\n         * <td rowspan=\"4\">Exceeds Limits</td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right><code>N/A</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>400</code></td>\n         * </tr>\n         * <tr>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td align=right>N/A</td>\n         * </tr>\n         * <tr>\n         * <td>✅ <code>SUCCESS</code></td>\n         * <td>❌ <code>FAILURE</code></td>\n         * <td align=right><code>409</code></td>\n         * </tr>\n         * </tbody>\n         * </table>\n         *\n         **Notes:**\n         * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n         *\n         * @summary Cancel an Existing Order and Send a New Order (TRADE)\n         * @param {string} symbol\n         * @param {OrderCancelReplaceSideEnum} side\n         * @param {OrderCancelReplaceTypeEnum} type\n         * @param {OrderCancelReplaceCancelReplaceModeEnum} cancelReplaceMode The allowed values are: <br/> `STOP_ON_FAILURE` - If the cancel request fails, the new order placement will not be attempted. <br/> `ALLOW_FAILURE` - new order placement will be attempted even if cancel request fails.\n         * @param {OrderCancelReplaceTimeInForceEnum} [timeInForce]\n         * @param {number} [quantity]\n         * @param {number} [quoteOrderQty]\n         * @param {number} [price]\n         * @param {string} [cancelNewClientOrderId] Used to uniquely identify this cancel. Automatically generated by default.\n         * @param {string} [cancelOrigClientOrderId] Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br> If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br> If both conditions are not met the request will be rejected.\n         * @param {number | bigint} [cancelOrderId] Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br>If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br>If both conditions are not met the request will be rejected.\n         * @param {string} [newClientOrderId] Used to identify the new order.\n         * @param {number | bigint} [strategyId]\n         * @param {number} [strategyType] The value cannot be less than `1000000`.\n         * @param {number} [stopPrice]\n         * @param {number | bigint} [trailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [icebergQty]\n         * @param {OrderCancelReplaceNewOrderRespTypeEnum} [newOrderRespType] Allowed values: <br/> `ACK`, `RESULT`, `FULL` <br/> `MARKET` and `LIMIT` orders types default to `FULL`; all other orders default to `ACK`\n         * @param {OrderCancelReplaceSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n         * @param {OrderCancelReplaceCancelRestrictionsEnum} [cancelRestrictions] Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED ` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n         * @param {OrderCancelReplaceOrderRateLimitExceededModeEnum} [orderRateLimitExceededMode] Supported values: <br> `DO_NOTHING` (default)- will only attempt to cancel the order if account has not exceeded the unfilled order rate limit<br> `CANCEL_ONLY` - will always cancel the order\n         * @param {OrderCancelReplacePegPriceTypeEnum} [pegPriceType] `PRIMARY_PEG` or `MARKET_PEG` <br> See Pegged Orders\n         * @param {number} [pegOffsetValue] Price level to peg the price to (max: 100) <br> See Pegged Orders\n         * @param {OrderCancelReplacePegOffsetTypeEnum} [pegOffsetType] Only `PRICE_LEVEL` is supported <br> See Pegged Orders.\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderCancelReplace: async (\n            symbol: string,\n            side: OrderCancelReplaceSideEnum,\n            type: OrderCancelReplaceTypeEnum,\n            cancelReplaceMode: OrderCancelReplaceCancelReplaceModeEnum,\n            timeInForce?: OrderCancelReplaceTimeInForceEnum,\n            quantity?: number,\n            quoteOrderQty?: number,\n            price?: number,\n            cancelNewClientOrderId?: string,\n            cancelOrigClientOrderId?: string,\n            cancelOrderId?: number | bigint,\n            newClientOrderId?: string,\n            strategyId?: number | bigint,\n            strategyType?: number,\n            stopPrice?: number,\n            trailingDelta?: number | bigint,\n            icebergQty?: number,\n            newOrderRespType?: OrderCancelReplaceNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderCancelReplaceSelfTradePreventionModeEnum,\n            cancelRestrictions?: OrderCancelReplaceCancelRestrictionsEnum,\n            orderRateLimitExceededMode?: OrderCancelReplaceOrderRateLimitExceededModeEnum,\n            pegPriceType?: OrderCancelReplacePegPriceTypeEnum,\n            pegOffsetValue?: number,\n            pegOffsetType?: OrderCancelReplacePegOffsetTypeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderCancelReplace', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('orderCancelReplace', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('orderCancelReplace', 'type', type);\n            // verify required parameter 'cancelReplaceMode' is not null or undefined\n            assertParamExists('orderCancelReplace', 'cancelReplaceMode', cancelReplaceMode);\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 (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (cancelReplaceMode !== undefined && cancelReplaceMode !== null) {\n                localVarQueryParameter['cancelReplaceMode'] = cancelReplaceMode;\n            }\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\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 (cancelNewClientOrderId !== undefined && cancelNewClientOrderId !== null) {\n                localVarQueryParameter['cancelNewClientOrderId'] = cancelNewClientOrderId;\n            }\n            if (cancelOrigClientOrderId !== undefined && cancelOrigClientOrderId !== null) {\n                localVarQueryParameter['cancelOrigClientOrderId'] = cancelOrigClientOrderId;\n            }\n            if (cancelOrderId !== undefined && cancelOrderId !== null) {\n                localVarQueryParameter['cancelOrderId'] = cancelOrderId;\n            }\n            if (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n            if (strategyId !== undefined && strategyId !== null) {\n                localVarQueryParameter['strategyId'] = strategyId;\n            }\n            if (strategyType !== undefined && strategyType !== null) {\n                localVarQueryParameter['strategyType'] = strategyType;\n            }\n            if (stopPrice !== undefined && stopPrice !== null) {\n                localVarQueryParameter['stopPrice'] = stopPrice;\n            }\n            if (trailingDelta !== undefined && trailingDelta !== null) {\n                localVarQueryParameter['trailingDelta'] = trailingDelta;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (cancelRestrictions !== undefined && cancelRestrictions !== null) {\n                localVarQueryParameter['cancelRestrictions'] = cancelRestrictions;\n            }\n            if (orderRateLimitExceededMode !== undefined && orderRateLimitExceededMode !== null) {\n                localVarQueryParameter['orderRateLimitExceededMode'] = orderRateLimitExceededMode;\n            }\n            if (pegPriceType !== undefined && pegPriceType !== null) {\n                localVarQueryParameter['pegPriceType'] = pegPriceType;\n            }\n            if (pegOffsetValue !== undefined && pegOffsetValue !== null) {\n                localVarQueryParameter['pegOffsetValue'] = pegOffsetValue;\n            }\n            if (pegOffsetType !== undefined && pegOffsetType !== null) {\n                localVarQueryParameter['pegOffsetType'] = pegOffsetType;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order/cancelReplace',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in an one-cancels-the-other (OCO) pair, where activation of one\n         * order immediately cancels the other.\n         *\n         * - An OCO has 2 orders called the **above order** and **below order**.\n         * - One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n         * - Price restrictions\n         * - If the OCO is on the `SELL` side:\n         * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price >  `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n         * - `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n         * - If the OCO is on the `BUY` side:\n         * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT price` < Last Traded Price < `stopPrice`\n         * - `TAKE_PROFIT stopPrice` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT stopPrice` * OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         * - OCOs add 2 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 2\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary New Order list - OCO (TRADE)\n         * @param {string} symbol\n         * @param {OrderListOcoSideEnum} side\n         * @param {number} quantity Quantity for both orders of the order list.\n         * @param {OrderListOcoAboveTypeEnum} aboveType\n         * @param {OrderListOcoBelowTypeEnum} belowType Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\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 `aboveClientOrderId` and the `belowClientOrderId`.\n         * @param {string} [aboveClientOrderId] Arbitrary unique ID among open orders for the above order. Automatically generated if not sent.\n         * @param {number | bigint} [aboveIcebergQty] Note that this can only be used if `aboveTimeInForce` is `GTC`.\n         * @param {number} [abovePrice] Can be used if `aboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [aboveStopPrice] Can be used if `aboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `aboveStopPrice` or `aboveTrailingDelta` or both, must be specified.\n         * @param {number | bigint} [aboveTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {OrderListOcoAboveTimeInForceEnum} [aboveTimeInForce] Required if `aboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n         * @param {number | bigint} [aboveStrategyId] Arbitrary numeric value identifying the above order within an order strategy.\n         * @param {number} [aboveStrategyType] Arbitrary numeric value identifying the above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOcoAbovePegPriceTypeEnum} [abovePegPriceType] `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOcoAbovePegOffsetTypeEnum} [abovePegOffsetType]\n         * @param {number} [abovePegOffsetValue]\n         * @param {string} [belowClientOrderId] Arbitrary unique ID among open orders for the below order. Automatically generated if not sent.\n         * @param {number | bigint} [belowIcebergQty] Note that this can only be used if `belowTimeInForce` is `GTC`.\n         * @param {number} [belowPrice] Can be used if `belowType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [belowStopPrice] Can be used if `belowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `belowStopPrice` or `belowTrailingDelta` or both, must be specified.\n         * @param {number | bigint} [belowTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {OrderListOcoBelowTimeInForceEnum} [belowTimeInForce] Required if `belowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n         * @param {number | bigint} [belowStrategyId] Arbitrary numeric value identifying the below order within an order strategy.\n         * @param {number} [belowStrategyType] Arbitrary numeric value identifying the below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOcoBelowPegPriceTypeEnum} [belowPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOcoBelowPegOffsetTypeEnum} [belowPegOffsetType]\n         * @param {number} [belowPegOffsetValue]\n         * @param {OrderListOcoNewOrderRespTypeEnum} [newOrderRespType] Select response format: `ACK`, `RESULT`, `FULL`.\n         * @param {OrderListOcoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderListOco: async (\n            symbol: string,\n            side: OrderListOcoSideEnum,\n            quantity: number,\n            aboveType: OrderListOcoAboveTypeEnum,\n            belowType: OrderListOcoBelowTypeEnum,\n            listClientOrderId?: string,\n            aboveClientOrderId?: string,\n            aboveIcebergQty?: number | bigint,\n            abovePrice?: number,\n            aboveStopPrice?: number,\n            aboveTrailingDelta?: number | bigint,\n            aboveTimeInForce?: OrderListOcoAboveTimeInForceEnum,\n            aboveStrategyId?: number | bigint,\n            aboveStrategyType?: number,\n            abovePegPriceType?: OrderListOcoAbovePegPriceTypeEnum,\n            abovePegOffsetType?: OrderListOcoAbovePegOffsetTypeEnum,\n            abovePegOffsetValue?: number,\n            belowClientOrderId?: string,\n            belowIcebergQty?: number | bigint,\n            belowPrice?: number,\n            belowStopPrice?: number,\n            belowTrailingDelta?: number | bigint,\n            belowTimeInForce?: OrderListOcoBelowTimeInForceEnum,\n            belowStrategyId?: number | bigint,\n            belowStrategyType?: number,\n            belowPegPriceType?: OrderListOcoBelowPegPriceTypeEnum,\n            belowPegOffsetType?: OrderListOcoBelowPegOffsetTypeEnum,\n            belowPegOffsetValue?: number,\n            newOrderRespType?: OrderListOcoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderListOcoSelfTradePreventionModeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderListOco', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('orderListOco', 'side', side);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('orderListOco', 'quantity', quantity);\n            // verify required parameter 'aboveType' is not null or undefined\n            assertParamExists('orderListOco', 'aboveType', aboveType);\n            // verify required parameter 'belowType' is not null or undefined\n            assertParamExists('orderListOco', 'belowType', belowType);\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 (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 (aboveType !== undefined && aboveType !== null) {\n                localVarQueryParameter['aboveType'] = aboveType;\n            }\n            if (aboveClientOrderId !== undefined && aboveClientOrderId !== null) {\n                localVarQueryParameter['aboveClientOrderId'] = aboveClientOrderId;\n            }\n            if (aboveIcebergQty !== undefined && aboveIcebergQty !== null) {\n                localVarQueryParameter['aboveIcebergQty'] = aboveIcebergQty;\n            }\n            if (abovePrice !== undefined && abovePrice !== null) {\n                localVarQueryParameter['abovePrice'] = abovePrice;\n            }\n            if (aboveStopPrice !== undefined && aboveStopPrice !== null) {\n                localVarQueryParameter['aboveStopPrice'] = aboveStopPrice;\n            }\n            if (aboveTrailingDelta !== undefined && aboveTrailingDelta !== null) {\n                localVarQueryParameter['aboveTrailingDelta'] = aboveTrailingDelta;\n            }\n            if (aboveTimeInForce !== undefined && aboveTimeInForce !== null) {\n                localVarQueryParameter['aboveTimeInForce'] = aboveTimeInForce;\n            }\n            if (aboveStrategyId !== undefined && aboveStrategyId !== null) {\n                localVarQueryParameter['aboveStrategyId'] = aboveStrategyId;\n            }\n            if (aboveStrategyType !== undefined && aboveStrategyType !== null) {\n                localVarQueryParameter['aboveStrategyType'] = aboveStrategyType;\n            }\n            if (abovePegPriceType !== undefined && abovePegPriceType !== null) {\n                localVarQueryParameter['abovePegPriceType'] = abovePegPriceType;\n            }\n            if (abovePegOffsetType !== undefined && abovePegOffsetType !== null) {\n                localVarQueryParameter['abovePegOffsetType'] = abovePegOffsetType;\n            }\n            if (abovePegOffsetValue !== undefined && abovePegOffsetValue !== null) {\n                localVarQueryParameter['abovePegOffsetValue'] = abovePegOffsetValue;\n            }\n            if (belowType !== undefined && belowType !== null) {\n                localVarQueryParameter['belowType'] = belowType;\n            }\n            if (belowClientOrderId !== undefined && belowClientOrderId !== null) {\n                localVarQueryParameter['belowClientOrderId'] = belowClientOrderId;\n            }\n            if (belowIcebergQty !== undefined && belowIcebergQty !== null) {\n                localVarQueryParameter['belowIcebergQty'] = belowIcebergQty;\n            }\n            if (belowPrice !== undefined && belowPrice !== null) {\n                localVarQueryParameter['belowPrice'] = belowPrice;\n            }\n            if (belowStopPrice !== undefined && belowStopPrice !== null) {\n                localVarQueryParameter['belowStopPrice'] = belowStopPrice;\n            }\n            if (belowTrailingDelta !== undefined && belowTrailingDelta !== null) {\n                localVarQueryParameter['belowTrailingDelta'] = belowTrailingDelta;\n            }\n            if (belowTimeInForce !== undefined && belowTimeInForce !== null) {\n                localVarQueryParameter['belowTimeInForce'] = belowTimeInForce;\n            }\n            if (belowStrategyId !== undefined && belowStrategyId !== null) {\n                localVarQueryParameter['belowStrategyId'] = belowStrategyId;\n            }\n            if (belowStrategyType !== undefined && belowStrategyType !== null) {\n                localVarQueryParameter['belowStrategyType'] = belowStrategyType;\n            }\n            if (belowPegPriceType !== undefined && belowPegPriceType !== null) {\n                localVarQueryParameter['belowPegPriceType'] = belowPegPriceType;\n            }\n            if (belowPegOffsetType !== undefined && belowPegOffsetType !== null) {\n                localVarQueryParameter['belowPegOffsetType'] = belowPegOffsetType;\n            }\n            if (belowPegOffsetValue !== undefined && belowPegOffsetValue !== null) {\n                localVarQueryParameter['belowPegOffsetValue'] = belowPegOffsetValue;\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 (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/orderList/oco',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Place an [OPO](/products/spot/faqs/opo).\n         *\n         * - OPOs add 2 orders to the `EXCHANGE_MAX_NUM_ORDERS`` filter and `MAX_NUM_ORDERS`` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 2\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary New Order List - OPO (TRADE)\n         * @param {string} symbol\n         * @param {OrderListOpoWorkingTypeEnum} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n         * @param {OrderListOpoWorkingSideEnum} workingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} workingPrice Price for the working order.\n         * @param {number} workingQuantity Sets the quantity for the working order.\n         * @param {OrderListOpoPendingTypeEnum} pendingType Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n         * @param {OrderListOpoPendingSideEnum} pendingSide Supported values: [Order Side](/products/spot/enums#side)\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` and the `pendingClientOrderId`.\n         * @param {OrderListOpoNewOrderRespTypeEnum} [newOrderRespType] Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n         * @param {OrderListOpoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\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`, or if `workingType` is `LIMIT_MAKER`.\n         * @param {OrderListOpoWorkingTimeInForceEnum} [workingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [workingStrategyId] Arbitrary numeric value identifying the working order within an order strategy.\n         * @param {number} [workingStrategyType] Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOpoWorkingPegPriceTypeEnum} [workingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpoWorkingPegOffsetTypeEnum} [workingPegOffsetType]\n         * @param {number} [workingPegOffsetValue]\n         * @param {string} [pendingClientOrderId] Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n         * @param {number} [pendingPrice] Price for the pending order.\n         * @param {number} [pendingStopPrice] Stop price for the pending order.\n         * @param {number} [pendingTrailingDelta] Trailing delta for the pending order.\n         * @param {number} [pendingIcebergQty] This can only be used if `pendingTimeInForce` is `GTC` or if `pendingType` is `LIMIT_MAKER`.\n         * @param {OrderListOpoPendingTimeInForceEnum} [pendingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [pendingStrategyId] Arbitrary numeric value identifying the pending order within an order strategy.\n         * @param {number} [pendingStrategyType] Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOpoPendingPegPriceTypeEnum} [pendingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpoPendingPegOffsetTypeEnum} [pendingPegOffsetType]\n         * @param {number} [pendingPegOffsetValue]\n         * @param {number} [recvWindow] Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderListOpo: async (\n            symbol: string,\n            workingType: OrderListOpoWorkingTypeEnum,\n            workingSide: OrderListOpoWorkingSideEnum,\n            workingPrice: number,\n            workingQuantity: number,\n            pendingType: OrderListOpoPendingTypeEnum,\n            pendingSide: OrderListOpoPendingSideEnum,\n            listClientOrderId?: string,\n            newOrderRespType?: OrderListOpoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderListOpoSelfTradePreventionModeEnum,\n            workingClientOrderId?: string,\n            workingIcebergQty?: number,\n            workingTimeInForce?: OrderListOpoWorkingTimeInForceEnum,\n            workingStrategyId?: number | bigint,\n            workingStrategyType?: number,\n            workingPegPriceType?: OrderListOpoWorkingPegPriceTypeEnum,\n            workingPegOffsetType?: OrderListOpoWorkingPegOffsetTypeEnum,\n            workingPegOffsetValue?: number,\n            pendingClientOrderId?: string,\n            pendingPrice?: number,\n            pendingStopPrice?: number,\n            pendingTrailingDelta?: number,\n            pendingIcebergQty?: number,\n            pendingTimeInForce?: OrderListOpoPendingTimeInForceEnum,\n            pendingStrategyId?: number | bigint,\n            pendingStrategyType?: number,\n            pendingPegPriceType?: OrderListOpoPendingPegPriceTypeEnum,\n            pendingPegOffsetType?: OrderListOpoPendingPegOffsetTypeEnum,\n            pendingPegOffsetValue?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderListOpo', 'symbol', symbol);\n            // verify required parameter 'workingType' is not null or undefined\n            assertParamExists('orderListOpo', 'workingType', workingType);\n            // verify required parameter 'workingSide' is not null or undefined\n            assertParamExists('orderListOpo', 'workingSide', workingSide);\n            // verify required parameter 'workingPrice' is not null or undefined\n            assertParamExists('orderListOpo', 'workingPrice', workingPrice);\n            // verify required parameter 'workingQuantity' is not null or undefined\n            assertParamExists('orderListOpo', 'workingQuantity', workingQuantity);\n            // verify required parameter 'pendingType' is not null or undefined\n            assertParamExists('orderListOpo', 'pendingType', pendingType);\n            // verify required parameter 'pendingSide' is not null or undefined\n            assertParamExists('orderListOpo', 'pendingSide', pendingSide);\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 (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 (workingStrategyId !== undefined && workingStrategyId !== null) {\n                localVarQueryParameter['workingStrategyId'] = workingStrategyId;\n            }\n            if (workingStrategyType !== undefined && workingStrategyType !== null) {\n                localVarQueryParameter['workingStrategyType'] = workingStrategyType;\n            }\n            if (workingPegPriceType !== undefined && workingPegPriceType !== null) {\n                localVarQueryParameter['workingPegPriceType'] = workingPegPriceType;\n            }\n            if (workingPegOffsetType !== undefined && workingPegOffsetType !== null) {\n                localVarQueryParameter['workingPegOffsetType'] = workingPegOffsetType;\n            }\n            if (workingPegOffsetValue !== undefined && workingPegOffsetValue !== null) {\n                localVarQueryParameter['workingPegOffsetValue'] = workingPegOffsetValue;\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 (pendingIcebergQty !== undefined && pendingIcebergQty !== null) {\n                localVarQueryParameter['pendingIcebergQty'] = pendingIcebergQty;\n            }\n            if (pendingTimeInForce !== undefined && pendingTimeInForce !== null) {\n                localVarQueryParameter['pendingTimeInForce'] = pendingTimeInForce;\n            }\n            if (pendingStrategyId !== undefined && pendingStrategyId !== null) {\n                localVarQueryParameter['pendingStrategyId'] = pendingStrategyId;\n            }\n            if (pendingStrategyType !== undefined && pendingStrategyType !== null) {\n                localVarQueryParameter['pendingStrategyType'] = pendingStrategyType;\n            }\n            if (pendingPegPriceType !== undefined && pendingPegPriceType !== null) {\n                localVarQueryParameter['pendingPegPriceType'] = pendingPegPriceType;\n            }\n            if (pendingPegOffsetType !== undefined && pendingPegOffsetType !== null) {\n                localVarQueryParameter['pendingPegOffsetType'] = pendingPegOffsetType;\n            }\n            if (pendingPegOffsetValue !== undefined && pendingPegOffsetValue !== null) {\n                localVarQueryParameter['pendingPegOffsetValue'] = pendingPegOffsetValue;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/orderList/opo',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Place an [OPOCO](/products/spot/faqs/opo).\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 3\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary New Order List - OPOCO (TRADE)\n         * @param {string} symbol\n         * @param {OrderListOpocoWorkingTypeEnum} workingType\n         * @param {OrderListOpocoWorkingSideEnum} workingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} workingPrice Price for the working order.\n         * @param {number} workingQuantity Sets the quantity for the working order.\n         * @param {OrderListOpocoPendingSideEnum} pendingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {OrderListOpocoPendingAboveTypeEnum} pendingAboveType Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\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` and the `pendingClientOrderId`.\n         * @param {OrderListOpocoNewOrderRespTypeEnum} [newOrderRespType] Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n         * @param {OrderListOpocoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\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`, or if `workingType` is `LIMIT_MAKER`.\n         * @param {OrderListOpocoWorkingTimeInForceEnum} [workingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [workingStrategyId] Arbitrary numeric value identifying the working order within an order strategy.\n         * @param {number} [workingStrategyType] Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOpocoWorkingPegPriceTypeEnum} [workingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpocoWorkingPegOffsetTypeEnum} [workingPegOffsetType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {number} [workingPegOffsetValue] Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {string} [pendingAboveClientOrderId] Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n         * @param {number} [pendingAbovePrice] Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [pendingAboveStopPrice] Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n         * @param {number} [pendingAboveTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [pendingAboveIcebergQty] This can only be used if `pendingAboveTimeInForce` is `GTC` or `pendingAboveType` is `LIMIT_MAKER`.\n         * @param {OrderListOpocoPendingAboveTimeInForceEnum} [pendingAboveTimeInForce] Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n         * @param {number | bigint} [pendingAboveStrategyId] Arbitrary numeric value identifying the pending above order within an order strategy.\n         * @param {number} [pendingAboveStrategyType] Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOpocoPendingAbovePegPriceTypeEnum} [pendingAbovePegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpocoPendingAbovePegOffsetTypeEnum} [pendingAbovePegOffsetType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {number} [pendingAbovePegOffsetValue] Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpocoPendingBelowTypeEnum} [pendingBelowType] Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n         * @param {string} [pendingBelowClientOrderId] Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n         * @param {number} [pendingBelowPrice] Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [pendingBelowStopPrice] Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n         * @param {number} [pendingBelowTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [pendingBelowIcebergQty] This can only be used if `pendingBelowTimeInForce` is `GTC` or `pendingBelowType` is `LIMIT_MAKER`.\n         * @param {OrderListOpocoPendingBelowTimeInForceEnum} [pendingBelowTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [pendingBelowStrategyId] Arbitrary numeric value identifying the pending below order within an order strategy.\n         * @param {number} [pendingBelowStrategyType] Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOpocoPendingBelowPegPriceTypeEnum} [pendingBelowPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOpocoPendingBelowPegOffsetTypeEnum} [pendingBelowPegOffsetType]\n         * @param {number} [pendingBelowPegOffsetValue]\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderListOpoco: async (\n            symbol: string,\n            workingType: OrderListOpocoWorkingTypeEnum,\n            workingSide: OrderListOpocoWorkingSideEnum,\n            workingPrice: number,\n            workingQuantity: number,\n            pendingSide: OrderListOpocoPendingSideEnum,\n            pendingAboveType: OrderListOpocoPendingAboveTypeEnum,\n            listClientOrderId?: string,\n            newOrderRespType?: OrderListOpocoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderListOpocoSelfTradePreventionModeEnum,\n            workingClientOrderId?: string,\n            workingIcebergQty?: number,\n            workingTimeInForce?: OrderListOpocoWorkingTimeInForceEnum,\n            workingStrategyId?: number | bigint,\n            workingStrategyType?: number,\n            workingPegPriceType?: OrderListOpocoWorkingPegPriceTypeEnum,\n            workingPegOffsetType?: OrderListOpocoWorkingPegOffsetTypeEnum,\n            workingPegOffsetValue?: number,\n            pendingAboveClientOrderId?: string,\n            pendingAbovePrice?: number,\n            pendingAboveStopPrice?: number,\n            pendingAboveTrailingDelta?: number,\n            pendingAboveIcebergQty?: number,\n            pendingAboveTimeInForce?: OrderListOpocoPendingAboveTimeInForceEnum,\n            pendingAboveStrategyId?: number | bigint,\n            pendingAboveStrategyType?: number,\n            pendingAbovePegPriceType?: OrderListOpocoPendingAbovePegPriceTypeEnum,\n            pendingAbovePegOffsetType?: OrderListOpocoPendingAbovePegOffsetTypeEnum,\n            pendingAbovePegOffsetValue?: number,\n            pendingBelowType?: OrderListOpocoPendingBelowTypeEnum,\n            pendingBelowClientOrderId?: string,\n            pendingBelowPrice?: number,\n            pendingBelowStopPrice?: number,\n            pendingBelowTrailingDelta?: number,\n            pendingBelowIcebergQty?: number,\n            pendingBelowTimeInForce?: OrderListOpocoPendingBelowTimeInForceEnum,\n            pendingBelowStrategyId?: number | bigint,\n            pendingBelowStrategyType?: number,\n            pendingBelowPegPriceType?: OrderListOpocoPendingBelowPegPriceTypeEnum,\n            pendingBelowPegOffsetType?: OrderListOpocoPendingBelowPegOffsetTypeEnum,\n            pendingBelowPegOffsetValue?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderListOpoco', 'symbol', symbol);\n            // verify required parameter 'workingType' is not null or undefined\n            assertParamExists('orderListOpoco', 'workingType', workingType);\n            // verify required parameter 'workingSide' is not null or undefined\n            assertParamExists('orderListOpoco', 'workingSide', workingSide);\n            // verify required parameter 'workingPrice' is not null or undefined\n            assertParamExists('orderListOpoco', 'workingPrice', workingPrice);\n            // verify required parameter 'workingQuantity' is not null or undefined\n            assertParamExists('orderListOpoco', 'workingQuantity', workingQuantity);\n            // verify required parameter 'pendingSide' is not null or undefined\n            assertParamExists('orderListOpoco', 'pendingSide', pendingSide);\n            // verify required parameter 'pendingAboveType' is not null or undefined\n            assertParamExists('orderListOpoco', '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 (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 (workingStrategyId !== undefined && workingStrategyId !== null) {\n                localVarQueryParameter['workingStrategyId'] = workingStrategyId;\n            }\n            if (workingStrategyType !== undefined && workingStrategyType !== null) {\n                localVarQueryParameter['workingStrategyType'] = workingStrategyType;\n            }\n            if (workingPegPriceType !== undefined && workingPegPriceType !== null) {\n                localVarQueryParameter['workingPegPriceType'] = workingPegPriceType;\n            }\n            if (workingPegOffsetType !== undefined && workingPegOffsetType !== null) {\n                localVarQueryParameter['workingPegOffsetType'] = workingPegOffsetType;\n            }\n            if (workingPegOffsetValue !== undefined && workingPegOffsetValue !== null) {\n                localVarQueryParameter['workingPegOffsetValue'] = workingPegOffsetValue;\n            }\n            if (pendingSide !== undefined && pendingSide !== null) {\n                localVarQueryParameter['pendingSide'] = pendingSide;\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 (pendingAboveStrategyId !== undefined && pendingAboveStrategyId !== null) {\n                localVarQueryParameter['pendingAboveStrategyId'] = pendingAboveStrategyId;\n            }\n            if (pendingAboveStrategyType !== undefined && pendingAboveStrategyType !== null) {\n                localVarQueryParameter['pendingAboveStrategyType'] = pendingAboveStrategyType;\n            }\n            if (pendingAbovePegPriceType !== undefined && pendingAbovePegPriceType !== null) {\n                localVarQueryParameter['pendingAbovePegPriceType'] = pendingAbovePegPriceType;\n            }\n            if (pendingAbovePegOffsetType !== undefined && pendingAbovePegOffsetType !== null) {\n                localVarQueryParameter['pendingAbovePegOffsetType'] = pendingAbovePegOffsetType;\n            }\n            if (pendingAbovePegOffsetValue !== undefined && pendingAbovePegOffsetValue !== null) {\n                localVarQueryParameter['pendingAbovePegOffsetValue'] = pendingAbovePegOffsetValue;\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            if (pendingBelowStrategyId !== undefined && pendingBelowStrategyId !== null) {\n                localVarQueryParameter['pendingBelowStrategyId'] = pendingBelowStrategyId;\n            }\n            if (pendingBelowStrategyType !== undefined && pendingBelowStrategyType !== null) {\n                localVarQueryParameter['pendingBelowStrategyType'] = pendingBelowStrategyType;\n            }\n            if (pendingBelowPegPriceType !== undefined && pendingBelowPegPriceType !== null) {\n                localVarQueryParameter['pendingBelowPegPriceType'] = pendingBelowPegPriceType;\n            }\n            if (pendingBelowPegOffsetType !== undefined && pendingBelowPegOffsetType !== null) {\n                localVarQueryParameter['pendingBelowPegOffsetType'] = pendingBelowPegOffsetType;\n            }\n            if (pendingBelowPegOffsetValue !== undefined && pendingBelowPegOffsetValue !== null) {\n                localVarQueryParameter['pendingBelowPegOffsetValue'] = pendingBelowPegOffsetValue;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/orderList/opoco',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Place an OTO.\n         *\n         * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n         * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n         * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n         * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n         * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n         * - OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 2\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         **Mandatory parameters based on `pendingType` or `workingType`**\n         *\n         * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n         *\n         * |Type                                                  |Additional mandatory parameters|Additional information|\n         * |----                                                  |----                           |------\n         * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n         * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n         * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n         * |`pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n         *\n         * @summary New Order list - OTO (TRADE)\n         * @param {string} symbol\n         * @param {OrderListOtoWorkingTypeEnum} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n         * @param {OrderListOtoWorkingSideEnum} workingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} workingPrice\n         * @param {number} workingQuantity Sets the quantity for the working order.\n         * @param {OrderListOtoPendingTypeEnum} pendingType Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n         * @param {OrderListOtoPendingSideEnum} pendingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} pendingQuantity Sets the quantity for the pending order.\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` and the `pendingClientOrderId`.\n         * @param {OrderListOtoNewOrderRespTypeEnum} [newOrderRespType] Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n         * @param {OrderListOtoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\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`, or if `workingType` is `LIMIT_MAKER`.\n         * @param {OrderListOtoWorkingTimeInForceEnum} [workingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [workingStrategyId] Arbitrary numeric value identifying the working order within an order strategy.\n         * @param {number} [workingStrategyType] Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOtoWorkingPegPriceTypeEnum} [workingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOtoWorkingPegOffsetTypeEnum} [workingPegOffsetType]\n         * @param {number} [workingPegOffsetValue]\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` or if `pendingType` is `LIMIT_MAKER`.\n         * @param {OrderListOtoPendingTimeInForceEnum} [pendingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [pendingStrategyId] Arbitrary numeric value identifying the pending order within an order strategy.\n         * @param {number} [pendingStrategyType] Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOtoPendingPegPriceTypeEnum} [pendingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOtoPendingPegOffsetTypeEnum} [pendingPegOffsetType]\n         * @param {number} [pendingPegOffsetValue]\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderListOto: async (\n            symbol: string,\n            workingType: OrderListOtoWorkingTypeEnum,\n            workingSide: OrderListOtoWorkingSideEnum,\n            workingPrice: number,\n            workingQuantity: number,\n            pendingType: OrderListOtoPendingTypeEnum,\n            pendingSide: OrderListOtoPendingSideEnum,\n            pendingQuantity: number,\n            listClientOrderId?: string,\n            newOrderRespType?: OrderListOtoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderListOtoSelfTradePreventionModeEnum,\n            workingClientOrderId?: string,\n            workingIcebergQty?: number,\n            workingTimeInForce?: OrderListOtoWorkingTimeInForceEnum,\n            workingStrategyId?: number | bigint,\n            workingStrategyType?: number,\n            workingPegPriceType?: OrderListOtoWorkingPegPriceTypeEnum,\n            workingPegOffsetType?: OrderListOtoWorkingPegOffsetTypeEnum,\n            workingPegOffsetValue?: number,\n            pendingClientOrderId?: string,\n            pendingPrice?: number,\n            pendingStopPrice?: number,\n            pendingTrailingDelta?: number,\n            pendingIcebergQty?: number,\n            pendingTimeInForce?: OrderListOtoPendingTimeInForceEnum,\n            pendingStrategyId?: number | bigint,\n            pendingStrategyType?: number,\n            pendingPegPriceType?: OrderListOtoPendingPegPriceTypeEnum,\n            pendingPegOffsetType?: OrderListOtoPendingPegOffsetTypeEnum,\n            pendingPegOffsetValue?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderListOto', 'symbol', symbol);\n            // verify required parameter 'workingType' is not null or undefined\n            assertParamExists('orderListOto', 'workingType', workingType);\n            // verify required parameter 'workingSide' is not null or undefined\n            assertParamExists('orderListOto', 'workingSide', workingSide);\n            // verify required parameter 'workingPrice' is not null or undefined\n            assertParamExists('orderListOto', 'workingPrice', workingPrice);\n            // verify required parameter 'workingQuantity' is not null or undefined\n            assertParamExists('orderListOto', 'workingQuantity', workingQuantity);\n            // verify required parameter 'pendingType' is not null or undefined\n            assertParamExists('orderListOto', 'pendingType', pendingType);\n            // verify required parameter 'pendingSide' is not null or undefined\n            assertParamExists('orderListOto', 'pendingSide', pendingSide);\n            // verify required parameter 'pendingQuantity' is not null or undefined\n            assertParamExists('orderListOto', '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 (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 (workingStrategyId !== undefined && workingStrategyId !== null) {\n                localVarQueryParameter['workingStrategyId'] = workingStrategyId;\n            }\n            if (workingStrategyType !== undefined && workingStrategyType !== null) {\n                localVarQueryParameter['workingStrategyType'] = workingStrategyType;\n            }\n            if (pendingType !== undefined && pendingType !== null) {\n                localVarQueryParameter['pendingType'] = pendingType;\n            }\n            if (workingPegPriceType !== undefined && workingPegPriceType !== null) {\n                localVarQueryParameter['workingPegPriceType'] = workingPegPriceType;\n            }\n            if (workingPegOffsetType !== undefined && workingPegOffsetType !== null) {\n                localVarQueryParameter['workingPegOffsetType'] = workingPegOffsetType;\n            }\n            if (workingPegOffsetValue !== undefined && workingPegOffsetValue !== null) {\n                localVarQueryParameter['workingPegOffsetValue'] = workingPegOffsetValue;\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            if (pendingStrategyId !== undefined && pendingStrategyId !== null) {\n                localVarQueryParameter['pendingStrategyId'] = pendingStrategyId;\n            }\n            if (pendingStrategyType !== undefined && pendingStrategyType !== null) {\n                localVarQueryParameter['pendingStrategyType'] = pendingStrategyType;\n            }\n            if (pendingPegPriceType !== undefined && pendingPegPriceType !== null) {\n                localVarQueryParameter['pendingPegPriceType'] = pendingPegPriceType;\n            }\n            if (pendingPegOffsetType !== undefined && pendingPegOffsetType !== null) {\n                localVarQueryParameter['pendingPegOffsetType'] = pendingPegOffsetType;\n            }\n            if (pendingPegOffsetValue !== undefined && pendingPegOffsetValue !== null) {\n                localVarQueryParameter['pendingPegOffsetValue'] = pendingPegOffsetValue;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/orderList/oto',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Place an OTOCO.\n         *\n         * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n         * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n         * - The behavior of the working order is the same as the [OTO](#order-list-oto).\n         * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n         * - The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-oco).\n         * - OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 3\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n         *\n         * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n         *\n         * |Type                                                       |Additional mandatory parameters|Additional information|\n         * |----                                                       |----                           |------\n         * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n         * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`     |\n         * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`        |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n         * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n         * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n         * |`pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n         * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n         *\n         * @summary New Order list - OTOCO (TRADE)\n         * @param {string} symbol\n         * @param {OrderListOtocoWorkingTypeEnum} workingType Supported values: `LIMIT`, `LIMIT_MAKER`\n         * @param {OrderListOtocoWorkingSideEnum} workingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} workingPrice\n         * @param {number} workingQuantity Sets the quantity for the working order.\n         * @param {OrderListOtocoPendingSideEnum} pendingSide Supported values: [Order Side](/products/spot/enums#side)\n         * @param {number} pendingQuantity Sets the quantity for the pending orders.\n         * @param {OrderListOtocoPendingAboveTypeEnum} pendingAboveType Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\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` and the `pendingClientOrderId`.\n         * @param {OrderListOtocoNewOrderRespTypeEnum} [newOrderRespType] Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n         * @param {OrderListOtocoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\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`, or if `workingType` is `LIMIT_MAKER`.\n         * @param {OrderListOtocoWorkingTimeInForceEnum} [workingTimeInForce] Supported values: [Time In Force](/products/spot/enums#timeinforce)\n         * @param {number | bigint} [workingStrategyId] Arbitrary numeric value identifying the working order within an order strategy.\n         * @param {number} [workingStrategyType] Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOtocoWorkingPegPriceTypeEnum} [workingPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOtocoWorkingPegOffsetTypeEnum} [workingPegOffsetType]\n         * @param {number} [workingPegOffsetValue]\n         * @param {string} [pendingAboveClientOrderId] Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n         * @param {number} [pendingAbovePrice] Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [pendingAboveStopPrice] Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n         * @param {number} [pendingAboveTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [pendingAboveIcebergQty] This can only be used if `pendingAboveTimeInForce` is `GTC` or if `pendingAboveType` is `LIMIT_MAKER`.\n         * @param {OrderListOtocoPendingAboveTimeInForceEnum} [pendingAboveTimeInForce] Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n         * @param {number | bigint} [pendingAboveStrategyId] Arbitrary numeric value identifying the pending above order within an order strategy.\n         * @param {number} [pendingAboveStrategyType] Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOtocoPendingAbovePegPriceTypeEnum} [pendingAbovePegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOtocoPendingAbovePegOffsetTypeEnum} [pendingAbovePegOffsetType]\n         * @param {number} [pendingAbovePegOffsetValue]\n         * @param {OrderListOtocoPendingBelowTypeEnum} [pendingBelowType] Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n         * @param {string} [pendingBelowClientOrderId] Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n         * @param {number} [pendingBelowPrice] Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n         * @param {number} [pendingBelowStopPrice] Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n         * @param {number} [pendingBelowTrailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [pendingBelowIcebergQty] This can only be used if `pendingBelowTimeInForce` is `GTC`, or if `pendingBelowType` is `LIMIT_MAKER`.\n         * @param {OrderListOtocoPendingBelowTimeInForceEnum} [pendingBelowTimeInForce] Required if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n         * @param {number | bigint} [pendingBelowStrategyId] Arbitrary numeric value identifying the pending below order within an order strategy.\n         * @param {number} [pendingBelowStrategyType] Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n         * @param {OrderListOtocoPendingBelowPegPriceTypeEnum} [pendingBelowPegPriceType] See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderListOtocoPendingBelowPegOffsetTypeEnum} [pendingBelowPegOffsetType]\n         * @param {number} [pendingBelowPegOffsetValue]\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderListOtoco: async (\n            symbol: string,\n            workingType: OrderListOtocoWorkingTypeEnum,\n            workingSide: OrderListOtocoWorkingSideEnum,\n            workingPrice: number,\n            workingQuantity: number,\n            pendingSide: OrderListOtocoPendingSideEnum,\n            pendingQuantity: number,\n            pendingAboveType: OrderListOtocoPendingAboveTypeEnum,\n            listClientOrderId?: string,\n            newOrderRespType?: OrderListOtocoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderListOtocoSelfTradePreventionModeEnum,\n            workingClientOrderId?: string,\n            workingIcebergQty?: number,\n            workingTimeInForce?: OrderListOtocoWorkingTimeInForceEnum,\n            workingStrategyId?: number | bigint,\n            workingStrategyType?: number,\n            workingPegPriceType?: OrderListOtocoWorkingPegPriceTypeEnum,\n            workingPegOffsetType?: OrderListOtocoWorkingPegOffsetTypeEnum,\n            workingPegOffsetValue?: number,\n            pendingAboveClientOrderId?: string,\n            pendingAbovePrice?: number,\n            pendingAboveStopPrice?: number,\n            pendingAboveTrailingDelta?: number,\n            pendingAboveIcebergQty?: number,\n            pendingAboveTimeInForce?: OrderListOtocoPendingAboveTimeInForceEnum,\n            pendingAboveStrategyId?: number | bigint,\n            pendingAboveStrategyType?: number,\n            pendingAbovePegPriceType?: OrderListOtocoPendingAbovePegPriceTypeEnum,\n            pendingAbovePegOffsetType?: OrderListOtocoPendingAbovePegOffsetTypeEnum,\n            pendingAbovePegOffsetValue?: number,\n            pendingBelowType?: OrderListOtocoPendingBelowTypeEnum,\n            pendingBelowClientOrderId?: string,\n            pendingBelowPrice?: number,\n            pendingBelowStopPrice?: number,\n            pendingBelowTrailingDelta?: number,\n            pendingBelowIcebergQty?: number,\n            pendingBelowTimeInForce?: OrderListOtocoPendingBelowTimeInForceEnum,\n            pendingBelowStrategyId?: number | bigint,\n            pendingBelowStrategyType?: number,\n            pendingBelowPegPriceType?: OrderListOtocoPendingBelowPegPriceTypeEnum,\n            pendingBelowPegOffsetType?: OrderListOtocoPendingBelowPegOffsetTypeEnum,\n            pendingBelowPegOffsetValue?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderListOtoco', 'symbol', symbol);\n            // verify required parameter 'workingType' is not null or undefined\n            assertParamExists('orderListOtoco', 'workingType', workingType);\n            // verify required parameter 'workingSide' is not null or undefined\n            assertParamExists('orderListOtoco', 'workingSide', workingSide);\n            // verify required parameter 'workingPrice' is not null or undefined\n            assertParamExists('orderListOtoco', 'workingPrice', workingPrice);\n            // verify required parameter 'workingQuantity' is not null or undefined\n            assertParamExists('orderListOtoco', 'workingQuantity', workingQuantity);\n            // verify required parameter 'pendingSide' is not null or undefined\n            assertParamExists('orderListOtoco', 'pendingSide', pendingSide);\n            // verify required parameter 'pendingQuantity' is not null or undefined\n            assertParamExists('orderListOtoco', 'pendingQuantity', pendingQuantity);\n            // verify required parameter 'pendingAboveType' is not null or undefined\n            assertParamExists('orderListOtoco', '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 (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 (workingStrategyId !== undefined && workingStrategyId !== null) {\n                localVarQueryParameter['workingStrategyId'] = workingStrategyId;\n            }\n            if (workingStrategyType !== undefined && workingStrategyType !== null) {\n                localVarQueryParameter['workingStrategyType'] = workingStrategyType;\n            }\n            if (workingPegPriceType !== undefined && workingPegPriceType !== null) {\n                localVarQueryParameter['workingPegPriceType'] = workingPegPriceType;\n            }\n            if (workingPegOffsetType !== undefined && workingPegOffsetType !== null) {\n                localVarQueryParameter['workingPegOffsetType'] = workingPegOffsetType;\n            }\n            if (workingPegOffsetValue !== undefined && workingPegOffsetValue !== null) {\n                localVarQueryParameter['workingPegOffsetValue'] = workingPegOffsetValue;\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 (pendingAboveStrategyId !== undefined && pendingAboveStrategyId !== null) {\n                localVarQueryParameter['pendingAboveStrategyId'] = pendingAboveStrategyId;\n            }\n            if (pendingAboveStrategyType !== undefined && pendingAboveStrategyType !== null) {\n                localVarQueryParameter['pendingAboveStrategyType'] = pendingAboveStrategyType;\n            }\n            if (pendingAbovePegPriceType !== undefined && pendingAbovePegPriceType !== null) {\n                localVarQueryParameter['pendingAbovePegPriceType'] = pendingAbovePegPriceType;\n            }\n            if (pendingAbovePegOffsetType !== undefined && pendingAbovePegOffsetType !== null) {\n                localVarQueryParameter['pendingAbovePegOffsetType'] = pendingAbovePegOffsetType;\n            }\n            if (pendingAbovePegOffsetValue !== undefined && pendingAbovePegOffsetValue !== null) {\n                localVarQueryParameter['pendingAbovePegOffsetValue'] = pendingAbovePegOffsetValue;\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            if (pendingBelowStrategyId !== undefined && pendingBelowStrategyId !== null) {\n                localVarQueryParameter['pendingBelowStrategyId'] = pendingBelowStrategyId;\n            }\n            if (pendingBelowStrategyType !== undefined && pendingBelowStrategyType !== null) {\n                localVarQueryParameter['pendingBelowStrategyType'] = pendingBelowStrategyType;\n            }\n            if (pendingBelowPegPriceType !== undefined && pendingBelowPegPriceType !== null) {\n                localVarQueryParameter['pendingBelowPegPriceType'] = pendingBelowPegPriceType;\n            }\n            if (pendingBelowPegOffsetType !== undefined && pendingBelowPegOffsetType !== null) {\n                localVarQueryParameter['pendingBelowPegOffsetType'] = pendingBelowPegOffsetType;\n            }\n            if (pendingBelowPegOffsetValue !== undefined && pendingBelowPegOffsetValue !== null) {\n                localVarQueryParameter['pendingBelowPegOffsetValue'] = pendingBelowPegOffsetValue;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/orderList/otoco',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in a new OCO.\n         *\n         * - Price Restrictions:\n         * - `SELL`: Limit Price > Last Price > Stop Price\n         * - `BUY`: Limit Price < Last Price < Stop Price\n         * - Quantity Restrictions:\n         * - Both legs must have the same quantity.\n         * - `ICEBERG` quantities however do not have to be the same\n         * - `OCO` adds **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 2\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         * @summary New OCO - Deprecated (TRADE)\n         * @param {string} symbol\n         * @param {OrderOcoSideEnum} side\n         * @param {number} quantity\n         * @param {number} price\n         * @param {number} stopPrice\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 | bigint} [limitStrategyId]\n         * @param {number} [limitStrategyType] The value cannot be less than `1000000`.\n         * @param {number} [limitIcebergQty] Used to make the `LIMIT_MAKER` leg an iceberg order.\n         * @param {number | bigint} [trailingDelta]\n         * @param {string} [stopClientOrderId] A unique Id for the stop loss/stop loss limit leg\n         * @param {number | bigint} [stopStrategyId]\n         * @param {number} [stopStrategyType] The value cannot be less than `1000000`.\n         * @param {number} [stopLimitPrice] If provided, `stopLimitTimeInForce` is required.\n         * @param {number} [stopIcebergQty] Used with `STOP_LOSS_LIMIT` leg to make an iceberg order.\n         * @param {OrderOcoStopLimitTimeInForceEnum} [stopLimitTimeInForce] Valid values are `GTC`/`FOK`/`IOC`\n         * @param {OrderOcoNewOrderRespTypeEnum} [newOrderRespType] Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n         * @param {OrderOcoSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed values are dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @deprecated\n         * @throws {RequiredError}\n         */\n        orderOco: async (\n            symbol: string,\n            side: OrderOcoSideEnum,\n            quantity: number,\n            price: number,\n            stopPrice: number,\n            listClientOrderId?: string,\n            limitClientOrderId?: string,\n            limitStrategyId?: number | bigint,\n            limitStrategyType?: number,\n            limitIcebergQty?: number,\n            trailingDelta?: number | bigint,\n            stopClientOrderId?: string,\n            stopStrategyId?: number | bigint,\n            stopStrategyType?: number,\n            stopLimitPrice?: number,\n            stopIcebergQty?: number,\n            stopLimitTimeInForce?: OrderOcoStopLimitTimeInForceEnum,\n            newOrderRespType?: OrderOcoNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderOcoSelfTradePreventionModeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderOco', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('orderOco', 'side', side);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('orderOco', 'quantity', quantity);\n            // verify required parameter 'price' is not null or undefined\n            assertParamExists('orderOco', 'price', price);\n            // verify required parameter 'stopPrice' is not null or undefined\n            assertParamExists('orderOco', '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 (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 (limitStrategyId !== undefined && limitStrategyId !== null) {\n                localVarQueryParameter['limitStrategyId'] = limitStrategyId;\n            }\n            if (limitStrategyType !== undefined && limitStrategyType !== null) {\n                localVarQueryParameter['limitStrategyType'] = limitStrategyType;\n            }\n            if (limitIcebergQty !== undefined && limitIcebergQty !== null) {\n                localVarQueryParameter['limitIcebergQty'] = limitIcebergQty;\n            }\n            if (trailingDelta !== undefined && trailingDelta !== null) {\n                localVarQueryParameter['trailingDelta'] = trailingDelta;\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 (stopStrategyId !== undefined && stopStrategyId !== null) {\n                localVarQueryParameter['stopStrategyId'] = stopStrategyId;\n            }\n            if (stopStrategyType !== undefined && stopStrategyType !== null) {\n                localVarQueryParameter['stopStrategyType'] = stopStrategyType;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order/oco',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test new order creation and signature/recvWindow long.\n         *\n         * Creates and validates a new order but does not send it into the matching\n         * engine.\n         *\n         * Weight: |Condition|Weight|\n         * |---|---|\n         * |Without `computeCommissionRates`|1|\n         * |With `computeCommissionRates`|20|\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Test new order (TRADE)\n         * @param {string} symbol\n         * @param {OrderTestSideEnum} side Please see [Enums](/products/spot/enums#side) for supported values.\n         * @param {OrderTestTypeEnum} type Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n         * @param {boolean} [computeCommissionRates] Default: `false` <br> See [Commissions FAQ](/products/spot/faqs/commission_faq#test-order-diferences) to learn more.\n         * @param {OrderTestTimeInForceEnum} [timeInForce] Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n         * @param {number} [quantity]\n         * @param {number} [quoteOrderQty]\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n         * @param {number | bigint} [strategyId]\n         * @param {number} [strategyType] The value cannot be less than `1000000`.\n         * @param {number} [stopPrice] Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n         * @param {number | bigint} [trailingDelta] See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n         * @param {number} [icebergQty] Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n         * @param {OrderTestNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. `ACK`, `RESULT`, or `FULL`; `MARKET` and `LIMIT` order types default to `FULL`, all other orders default to `ACK`.\n         * @param {OrderTestSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n         * @param {OrderTestPegPriceTypeEnum} [pegPriceType] `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {number} [pegOffsetValue] Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {OrderTestPegOffsetTypeEnum} [pegOffsetType] Only `PRICE_LEVEL` is supported. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        orderTest: async (\n            symbol: string,\n            side: OrderTestSideEnum,\n            type: OrderTestTypeEnum,\n            computeCommissionRates?: boolean,\n            timeInForce?: OrderTestTimeInForceEnum,\n            quantity?: number,\n            quoteOrderQty?: number,\n            price?: number,\n            newClientOrderId?: string,\n            strategyId?: number | bigint,\n            strategyType?: number,\n            stopPrice?: number,\n            trailingDelta?: number | bigint,\n            icebergQty?: number,\n            newOrderRespType?: OrderTestNewOrderRespTypeEnum,\n            selfTradePreventionMode?: OrderTestSelfTradePreventionModeEnum,\n            pegPriceType?: OrderTestPegPriceTypeEnum,\n            pegOffsetValue?: number,\n            pegOffsetType?: OrderTestPegOffsetTypeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderTest', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('orderTest', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('orderTest', 'type', type);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n            const localVarBodyParameter: Record<string, unknown> = {};\n            const localVarHeaderParameter: Record<string, unknown> = {};\n\n            if (computeCommissionRates !== undefined && computeCommissionRates !== null) {\n                localVarQueryParameter['computeCommissionRates'] = computeCommissionRates;\n            }\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\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 (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\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 (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n            if (strategyId !== undefined && strategyId !== null) {\n                localVarQueryParameter['strategyId'] = strategyId;\n            }\n            if (strategyType !== undefined && strategyType !== null) {\n                localVarQueryParameter['strategyType'] = strategyType;\n            }\n            if (stopPrice !== undefined && stopPrice !== null) {\n                localVarQueryParameter['stopPrice'] = stopPrice;\n            }\n            if (trailingDelta !== undefined && trailingDelta !== null) {\n                localVarQueryParameter['trailingDelta'] = trailingDelta;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (pegPriceType !== undefined && pegPriceType !== null) {\n                localVarQueryParameter['pegPriceType'] = pegPriceType;\n            }\n            if (pegOffsetValue !== undefined && pegOffsetValue !== null) {\n                localVarQueryParameter['pegOffsetValue'] = pegOffsetValue;\n            }\n            if (pegOffsetType !== undefined && pegOffsetType !== null) {\n                localVarQueryParameter['pegOffsetType'] = pegOffsetType;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/order/test',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Places an order using smart order routing (SOR).\n         *\n         * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n         *\n         * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n         *\n         * Weight(IP): 1\n         *\n         * Unfilled Order Count: 1\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Matching Engine\n         *\n         **Note:** `POST /api/v3/sor/order` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n         *\n         * @summary New order using SOR (TRADE)\n         * @param {string} symbol\n         * @param {SorOrderSideEnum} side\n         * @param {SorOrderTypeEnum} type\n         * @param {number} quantity\n         * @param {SorOrderTimeInForceEnum} [timeInForce]\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n         * @param {number | bigint} [strategyId]\n         * @param {number} [strategyType] The value cannot be less than `1000000`.\n         * @param {number} [icebergQty] Used with `LIMIT` to create an iceberg order.\n         * @param {SorOrderNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`\n         * @param {SorOrderSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        sorOrder: async (\n            symbol: string,\n            side: SorOrderSideEnum,\n            type: SorOrderTypeEnum,\n            quantity: number,\n            timeInForce?: SorOrderTimeInForceEnum,\n            price?: number,\n            newClientOrderId?: string,\n            strategyId?: number | bigint,\n            strategyType?: number,\n            icebergQty?: number,\n            newOrderRespType?: SorOrderNewOrderRespTypeEnum,\n            selfTradePreventionMode?: SorOrderSelfTradePreventionModeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('sorOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('sorOrder', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('sorOrder', 'type', type);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('sorOrder', 'quantity', quantity);\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 (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\n            }\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n            if (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n            if (strategyId !== undefined && strategyId !== null) {\n                localVarQueryParameter['strategyId'] = strategyId;\n            }\n            if (strategyType !== undefined && strategyType !== null) {\n                localVarQueryParameter['strategyType'] = strategyType;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/sor/order',\n                method: 'POST',\n                queryParams: localVarQueryParameter,\n                bodyParams: localVarBodyParameter,\n                headerParams: localVarHeaderParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test new order creation and signature/recvWindow using smart order routing (SOR).\n         * Creates and validates a new order but does not send it into the matching engine.\n         *\n         * Weight: |Condition|Weight|\n         * |---|---|\n         * |Without `computeCommissionRates`|1|\n         * |With `computeCommissionRates`|20|\n         *\n         * Security Type: TRADE\n         *\n         * Notes:\n         **Data Source:** Memory\n         *\n         * @summary Test new order using SOR (TRADE)\n         * @param {string} symbol\n         * @param {SorOrderTestSideEnum} side Please see [Enums](/products/spot/enums#side) for supported values.\n         * @param {SorOrderTestTypeEnum} type Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n         * @param {number} quantity\n         * @param {boolean} [computeCommissionRates]\n         * @param {SorOrderTestTimeInForceEnum} [timeInForce] Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n         * @param {number} [price]\n         * @param {string} [newClientOrderId] A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n         * @param {number | bigint} [strategyId]\n         * @param {number} [strategyType] The value cannot be less than `1000000`.\n         * @param {number} [icebergQty] Used with `LIMIT` to create an iceberg order.\n         * @param {SorOrderTestNewOrderRespTypeEnum} [newOrderRespType] Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`.\n         * @param {SorOrderTestSelfTradePreventionModeEnum} [selfTradePreventionMode] The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n         * @param {number} [recvWindow] The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n         *\n         * @throws {RequiredError}\n         */\n        sorOrderTest: async (\n            symbol: string,\n            side: SorOrderTestSideEnum,\n            type: SorOrderTestTypeEnum,\n            quantity: number,\n            computeCommissionRates?: boolean,\n            timeInForce?: SorOrderTestTimeInForceEnum,\n            price?: number,\n            newClientOrderId?: string,\n            strategyId?: number | bigint,\n            strategyType?: number,\n            icebergQty?: number,\n            newOrderRespType?: SorOrderTestNewOrderRespTypeEnum,\n            selfTradePreventionMode?: SorOrderTestSelfTradePreventionModeEnum,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('sorOrderTest', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('sorOrderTest', 'side', side);\n            // verify required parameter 'type' is not null or undefined\n            assertParamExists('sorOrderTest', 'type', type);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('sorOrderTest', 'quantity', quantity);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n            const localVarBodyParameter: Record<string, unknown> = {};\n            const localVarHeaderParameter: Record<string, unknown> = {};\n\n            if (computeCommissionRates !== undefined && computeCommissionRates !== null) {\n                localVarQueryParameter['computeCommissionRates'] = computeCommissionRates;\n            }\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\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 (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\n            }\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n            if (newClientOrderId !== undefined && newClientOrderId !== null) {\n                localVarQueryParameter['newClientOrderId'] = newClientOrderId;\n            }\n            if (strategyId !== undefined && strategyId !== null) {\n                localVarQueryParameter['strategyId'] = strategyId;\n            }\n            if (strategyType !== undefined && strategyType !== null) {\n                localVarQueryParameter['strategyType'] = strategyType;\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 (selfTradePreventionMode !== undefined && selfTradePreventionMode !== null) {\n                localVarQueryParameter['selfTradePreventionMode'] = selfTradePreventionMode;\n            }\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/api/v3/sor/order/test',\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     * Cancels all active orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel All Open Orders on a Symbol (TRADE)\n     * @param {DeleteOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    deleteOpenOrders(\n        requestParameters: DeleteOpenOrdersRequest\n    ): Promise<RestApiResponse<DeleteOpenOrdersResponse>>;\n    /**\n     * Cancel an active order.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {DeleteOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    deleteOrder(\n        requestParameters: DeleteOrderRequest\n    ): Promise<RestApiResponse<DeleteOrderResponse>>;\n    /**\n     * Cancel an entire Order list\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Notes:**\n     * - Canceling an individual order from an order list will cancel the entire order list.\n     * - If both orderListId and listClientOrderId parameters are provided, the orderListId is searched first, then the listClientOrderId from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {DeleteOrderListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    deleteOrderList(\n        requestParameters: DeleteOrderListRequest\n    ): Promise<RestApiResponse<DeleteOrderListResponse>>;\n    /**\n     * Send in a new order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Some additional mandatory parameters based on order `type`:\n     *\n     * Type | Additional mandatory parameters | Additional Information\n     * ------------ | ------------| ------\n     * `LIMIT` | `timeInForce`, `quantity`, `price`|\n     * `MARKET` | `quantity` or `quoteOrderQty`| `MARKET` orders using the `quantity` field specifies the amount of the `base asset` the user wants to buy or sell at the market price. <br/> E.g. MARKET order on BTCUSDT will specify how much BTC the user is buying or selling. <br/><br/> `MARKET` orders using `quoteOrderQty` specifies the amount the user wants to spend (when buying) or receive (when selling) the `quote` asset; the correct `quantity` will be determined based on the market liquidity and `quoteOrderQty`. <br/> E.g. Using the symbol BTCUSDT: <br/> `BUY` side, the order will buy as many BTC as `quoteOrderQty` USDT can. <br/> `SELL` side, the order will sell as much BTC needed to receive `quoteOrderQty` USDT.\n     * `STOP_LOSS` | `quantity`, `stopPrice` or `trailingDelta`| This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `STOP_LOSS_LIMIT` | `timeInForce`, `quantity`,  `price`, `stopPrice` or `trailingDelta`\n     * `TAKE_PROFIT` | `quantity`, `stopPrice` or `trailingDelta` | This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `TAKE_PROFIT_LIMIT` | `timeInForce`, `quantity`, `price`, `stopPrice` or `trailingDelta` |\n     * `LIMIT_MAKER` | `quantity`, `price`| This is a `LIMIT` order that will be rejected if the order immediately matches and trades as a taker. <br/> This is also known as a POST-ONLY order.\n     *\n     *\n     * Notes on using parameters for Pegged Orders:\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * Other info:\n     * Any `LIMIT` or `LIMIT_MAKER` type order can be made an iceberg order by sending an `icebergQty`.\n     * Any order with an `icebergQty` MUST have `timeInForce` set to `GTC`.\n     * For `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` and `TAKE_PROFIT` orders, `trailingDelta` can be combined with `stopPrice`.\n     * `MARKET` orders using `quoteOrderQty` will not break `LOT_SIZE` filter rules; the order will execute a `quantity` that will have the notional value as close as possible to `quoteOrderQty`. Trigger order price rules against market price for both MARKET and LIMIT versions:\n     * Price above market price: `STOP_LOSS` `BUY`, `TAKE_PROFIT` `SELL`\n     * Price below market price: `STOP_LOSS` `SELL`, `TAKE_PROFIT` `BUY`\n     *\n     * @summary New order (TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<RestApiResponse<NewOrderResponse>>;\n    /**\n     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read Order Amend Keep Priority FAQ to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<RestApiResponse<OrderAmendKeepPriorityResponse>>;\n    /**\n     * - Cancels an existing order and places a new order on the same symbol.\n     * - Filters and Order Count are evaluated before the processing of the cancellation and order placement occurs.\n     * - A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * - You can only cancel an individual order from an orderList using this endpoint, but the result is the same as canceling the entire orderList.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to `POST /api/v3/order`, additional mandatory parameters are determined by `type`.\n     * Response format varies depending on whether the processing of the message succeeded, partially succeeded, or failed.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>N/A</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     **Notes:**\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel an Existing Order and Send a New Order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<RestApiResponse<OrderCancelReplaceResponse>>;\n    /**\n     * Send in an one-cancels-the-other (OCO) pair, where activation of one\n     * order immediately cancels the other.\n     *\n     * - An OCO has 2 orders called the **above order** and **below order**.\n     * - One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     * - Price restrictions\n     * - If the OCO is on the `SELL` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price >  `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * - `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     * - If the OCO is on the `BUY` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT price` < Last Traded Price < `stopPrice`\n     * - `TAKE_PROFIT stopPrice` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT stopPrice` * OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     * - OCOs add 2 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order list - OCO (TRADE)\n     * @param {OrderListOcoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderListOco(\n        requestParameters: OrderListOcoRequest\n    ): Promise<RestApiResponse<OrderListOcoResponse>>;\n    /**\n     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * - OPOs add 2 orders to the `EXCHANGE_MAX_NUM_ORDERS`` filter and `MAX_NUM_ORDERS`` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPO (TRADE)\n     * @param {OrderListOpoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderListOpo(\n        requestParameters: OrderListOpoRequest\n    ): Promise<RestApiResponse<OrderListOpoResponse>>;\n    /**\n     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPOCO (TRADE)\n     * @param {OrderListOpocoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderListOpoco(\n        requestParameters: OrderListOpocoRequest\n    ): Promise<RestApiResponse<OrderListOpocoResponse>>;\n    /**\n     * Place an OTO.\n     *\n     * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n     * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n     * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n     * - OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary New Order list - OTO (TRADE)\n     * @param {OrderListOtoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderListOto(\n        requestParameters: OrderListOtoRequest\n    ): Promise<RestApiResponse<OrderListOtoResponse>>;\n    /**\n     * Place an OTOCO.\n     *\n     * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The behavior of the working order is the same as the [OTO](#order-list-oto).\n     * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * - The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-oco).\n     * - OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`     |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`        |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * |`pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary New Order list - OTOCO (TRADE)\n     * @param {OrderListOtocoRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderListOtoco(\n        requestParameters: OrderListOtocoRequest\n    ): Promise<RestApiResponse<OrderListOtocoResponse>>;\n    /**\n     * Send in a new OCO.\n     *\n     * - Price Restrictions:\n     * - `SELL`: Limit Price > Last Price > Stop Price\n     * - `BUY`: Limit Price < Last Price < Stop Price\n     * - Quantity Restrictions:\n     * - Both legs must have the same quantity.\n     * - `ICEBERG` quantities however do not have to be the same\n     * - `OCO` adds **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New OCO - Deprecated (TRADE)\n     * @param {OrderOcoRequest} requestParameters Request parameters.\n     *\n     * @deprecated\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderOco(requestParameters: OrderOcoRequest): Promise<RestApiResponse<OrderOcoResponse>>;\n    /**\n     * Test new order creation and signature/recvWindow long.\n     *\n     * Creates and validates a new order but does not send it into the matching\n     * engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    orderTest(requestParameters: OrderTestRequest): Promise<RestApiResponse<OrderTestResponse>>;\n    /**\n     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `POST /api/v3/sor/order` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary New order using SOR (TRADE)\n     * @param {SorOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    sorOrder(requestParameters: SorOrderRequest): Promise<RestApiResponse<SorOrderResponse>>;\n    /**\n     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<RestApiResponse<SorOrderTestResponse>>;\n}\n\n/**\n * Request parameters for deleteOpenOrders operation in TradeApi.\n * @interface DeleteOpenOrdersRequest\n */\nexport interface DeleteOpenOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiDeleteOpenOrders\n     */\n    readonly symbol: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiDeleteOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for deleteOrder operation in TradeApi.\n * @interface DeleteOrderRequest\n */\nexport interface DeleteOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n     * @type {'ONLY_NEW' | 'ONLY_PARTIALLY_FILLED'}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly cancelRestrictions?: DeleteOrderCancelRestrictionsEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiDeleteOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for deleteOrderList operation in TradeApi.\n * @interface DeleteOrderListRequest\n */\nexport interface DeleteOrderListRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiDeleteOrderList\n     */\n    readonly symbol: string;\n\n    /**\n     * Either `orderListId` or `listClientOrderId` must be provided\n     * @type {number | bigint}\n     * @memberof TradeApiDeleteOrderList\n     */\n    readonly orderListId?: number | bigint;\n\n    /**\n     * Either `orderListId` or `listClientOrderId` must be provided\n     * @type {string}\n     * @memberof TradeApiDeleteOrderList\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiDeleteOrderList\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiDeleteOrderList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for newOrder operation in TradeApi.\n * @interface NewOrderRequest\n */\nexport interface NewOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly side: NewOrderSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: NewOrderTypeEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiNewOrder\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly strategyType?: number;\n\n    /**\n     * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See Trailing Stop order FAQ\n     * @type {number | bigint}\n     * @memberof TradeApiNewOrder\n     */\n    readonly trailingDelta?: number | bigint;\n\n    /**\n     * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiNewOrder\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 TradeApiNewOrder\n     */\n    readonly newOrderRespType?: NewOrderNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol.\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly selfTradePreventionMode?: NewOrderSelfTradePreventionModeEnum;\n\n    /**\n     * See Pegged Orders Info\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly pegPriceType?: NewOrderPegPriceTypeEnum;\n\n    /**\n     * Price level to peg the price to (max: 100). See Pegged Orders Info\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported. See Pegged Orders Info\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly pegOffsetType?: NewOrderPegOffsetTypeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderAmendKeepPriority operation in TradeApi.\n * @interface OrderAmendKeepPriorityRequest\n */\nexport interface OrderAmendKeepPriorityRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly symbol: string;\n\n    /**\n     * `newQty` must be greater than 0 and less than the order's quantity.\n     * @type {number}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly newQty: number;\n\n    /**\n     * `orderId` or `origClientOrderId` must be sent\n     * @type {number | bigint}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * `orderId` or `origClientOrderId` must be sent\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * The new client order ID for the order after being amended. <br> If not sent, one will be randomly generated. <br> It is possible to reuse the current clientOrderId by sending it as the `newClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderCancelReplace operation in TradeApi.\n * @interface OrderCancelReplaceRequest\n */\nexport interface OrderCancelReplaceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly side: OrderCancelReplaceSideEnum;\n\n    /**\n     *\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly type: OrderCancelReplaceTypeEnum;\n\n    /**\n     * The allowed values are: <br/> `STOP_ON_FAILURE` - If the cancel request fails, the new order placement will not be attempted. <br/> `ALLOW_FAILURE` - new order placement will be attempted even if cancel request fails.\n     * @type {'STOP_ON_FAILURE' | 'ALLOW_FAILURE'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelReplaceMode: OrderCancelReplaceCancelReplaceModeEnum;\n\n    /**\n     *\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly timeInForce?: OrderCancelReplaceTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly price?: number;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelNewClientOrderId?: string;\n\n    /**\n     * Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br> If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br> If both conditions are not met the request will be rejected.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelOrigClientOrderId?: string;\n\n    /**\n     * Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br>If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br>If both conditions are not met the request will be rejected.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelOrderId?: number | bigint;\n\n    /**\n     * Used to identify the new order.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly strategyType?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly trailingDelta?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly icebergQty?: number;\n\n    /**\n     * Allowed values: <br/> `ACK`, `RESULT`, `FULL` <br/> `MARKET` and `LIMIT` orders types default to `FULL`; all other orders default to `ACK`\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly newOrderRespType?: OrderCancelReplaceNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly selfTradePreventionMode?: OrderCancelReplaceSelfTradePreventionModeEnum;\n\n    /**\n     * Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED ` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n     * @type {'ONLY_NEW' | 'ONLY_PARTIALLY_FILLED'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelRestrictions?: OrderCancelReplaceCancelRestrictionsEnum;\n\n    /**\n     * Supported values: <br> `DO_NOTHING` (default)- will only attempt to cancel the order if account has not exceeded the unfilled order rate limit<br> `CANCEL_ONLY` - will always cancel the order\n     * @type {'DO_NOTHING' | 'CANCEL_ONLY'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly orderRateLimitExceededMode?: OrderCancelReplaceOrderRateLimitExceededModeEnum;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG` <br> See Pegged Orders\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegPriceType?: OrderCancelReplacePegPriceTypeEnum;\n\n    /**\n     * Price level to peg the price to (max: 100) <br> See Pegged Orders\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported <br> See Pegged Orders.\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegOffsetType?: OrderCancelReplacePegOffsetTypeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListOco operation in TradeApi.\n * @interface OrderListOcoRequest\n */\nexport interface OrderListOcoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly side: OrderListOcoSideEnum;\n\n    /**\n     * Quantity for both orders of the order list.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveType: OrderListOcoAboveTypeEnum;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowType: OrderListOcoBelowTypeEnum;\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 `aboveClientOrderId` and the `belowClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Arbitrary unique ID among open orders for the above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveClientOrderId?: string;\n\n    /**\n     * Note that this can only be used if `aboveTimeInForce` is `GTC`.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveIcebergQty?: number | bigint;\n\n    /**\n     * Can be used if `aboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly abovePrice?: number;\n\n    /**\n     * Can be used if `aboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `aboveStopPrice` or `aboveTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveTrailingDelta?: number | bigint;\n\n    /**\n     * Required if `aboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveTimeInForce?: OrderListOcoAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly aboveStrategyType?: number;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly abovePegPriceType?: OrderListOcoAbovePegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly abovePegOffsetType?: OrderListOcoAbovePegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly abovePegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowClientOrderId?: string;\n\n    /**\n     * Note that this can only be used if `belowTimeInForce` is `GTC`.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowIcebergQty?: number | bigint;\n\n    /**\n     * Can be used if `belowType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowPrice?: number;\n\n    /**\n     * Can be used if `belowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `belowStopPrice` or `belowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowTrailingDelta?: number | bigint;\n\n    /**\n     * Required if `belowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowTimeInForce?: OrderListOcoBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowPegPriceType?: OrderListOcoBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowPegOffsetType?: OrderListOcoBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly belowPegOffsetValue?: number;\n\n    /**\n     * Select response format: `ACK`, `RESULT`, `FULL`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly newOrderRespType?: OrderListOcoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly selfTradePreventionMode?: OrderListOcoSelfTradePreventionModeEnum;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListOpo operation in TradeApi.\n * @interface OrderListOpoRequest\n */\nexport interface OrderListOpoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingType: OrderListOpoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingSide: OrderListOpoWorkingSideEnum;\n\n    /**\n     * Price for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n     * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingType: OrderListOpoPendingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingSide: OrderListOpoPendingSideEnum;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly newOrderRespType?: OrderListOpoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly selfTradePreventionMode?: OrderListOpoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingTimeInForce?: OrderListOpoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingPegPriceType?: OrderListOpoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingPegOffsetType?: OrderListOpoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingClientOrderId?: string;\n\n    /**\n     * Price for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingPrice?: number;\n\n    /**\n     * Stop price for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingStopPrice?: number;\n\n    /**\n     * Trailing delta for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingTimeInForce` is `GTC` or if `pendingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingTimeInForce?: OrderListOpoPendingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingPegPriceType?: OrderListOpoPendingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingPegOffsetType?: OrderListOpoPendingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly pendingPegOffsetValue?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOpo\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListOpoco operation in TradeApi.\n * @interface OrderListOpocoRequest\n */\nexport interface OrderListOpocoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingType: OrderListOpocoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingSide: OrderListOpocoWorkingSideEnum;\n\n    /**\n     * Price for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingSide: OrderListOpocoPendingSideEnum;\n\n    /**\n     * Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveType: OrderListOpocoPendingAboveTypeEnum;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly newOrderRespType?: OrderListOpocoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly selfTradePreventionMode?: OrderListOpocoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingTimeInForce?: OrderListOpocoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingPegPriceType?: OrderListOpocoWorkingPegPriceTypeEnum;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingPegOffsetType?: OrderListOpocoWorkingPegOffsetTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAbovePrice?: number;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingAboveTimeInForce` is `GTC` or `pendingAboveType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveIcebergQty?: number;\n\n    /**\n     * Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveTimeInForce?: OrderListOpocoPendingAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAboveStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAbovePegPriceType?: OrderListOpocoPendingAbovePegPriceTypeEnum;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAbovePegOffsetType?: OrderListOpocoPendingAbovePegOffsetTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingAbovePegOffsetValue?: number;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowType?: OrderListOpocoPendingBelowTypeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowPrice?: number;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingBelowTimeInForce` is `GTC` or `pendingBelowType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowTimeInForce?: OrderListOpocoPendingBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowPegPriceType?: OrderListOpocoPendingBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowPegOffsetType?: OrderListOpocoPendingBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly pendingBelowPegOffsetValue?: number;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOpoco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListOto operation in TradeApi.\n * @interface OrderListOtoRequest\n */\nexport interface OrderListOtoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingType: OrderListOtoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingSide: OrderListOtoWorkingSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n     * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingType: OrderListOtoPendingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingSide: OrderListOtoPendingSideEnum;\n\n    /**\n     * Sets the quantity for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingQuantity: number;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly newOrderRespType?: OrderListOtoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly selfTradePreventionMode?: OrderListOtoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingTimeInForce?: OrderListOtoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingPegPriceType?: OrderListOtoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingPegOffsetType?: OrderListOtoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingPrice?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingStopPrice?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingTimeInForce` is `GTC` or if `pendingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingTimeInForce?: OrderListOtoPendingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingPegPriceType?: OrderListOtoPendingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingPegOffsetType?: OrderListOtoPendingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly pendingPegOffsetValue?: number;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOto\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListOtoco operation in TradeApi.\n * @interface OrderListOtocoRequest\n */\nexport interface OrderListOtocoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingType: OrderListOtocoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingSide: OrderListOtocoWorkingSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingSide: OrderListOtocoPendingSideEnum;\n\n    /**\n     * Sets the quantity for the pending orders.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingQuantity: number;\n\n    /**\n     * Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveType: OrderListOtocoPendingAboveTypeEnum;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly newOrderRespType?: OrderListOtocoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly selfTradePreventionMode?: OrderListOtocoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingTimeInForce?: OrderListOtocoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingPegPriceType?: OrderListOtocoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingPegOffsetType?: OrderListOtocoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAbovePrice?: number;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingAboveTimeInForce` is `GTC` or if `pendingAboveType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveIcebergQty?: number;\n\n    /**\n     * Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveTimeInForce?: OrderListOtocoPendingAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAboveStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAbovePegPriceType?: OrderListOtocoPendingAbovePegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAbovePegOffsetType?: OrderListOtocoPendingAbovePegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingAbovePegOffsetValue?: number;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowType?: OrderListOtocoPendingBelowTypeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowPrice?: number;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingBelowTimeInForce` is `GTC`, or if `pendingBelowType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowIcebergQty?: number;\n\n    /**\n     * Required if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowTimeInForce?: OrderListOtocoPendingBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowPegPriceType?: OrderListOtocoPendingBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowPegOffsetType?: OrderListOtocoPendingBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly pendingBelowPegOffsetValue?: number;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListOtoco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderOco operation in TradeApi.\n * @interface OrderOcoRequest\n */\nexport interface OrderOcoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderOco\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderOco\n     */\n    readonly side: OrderOcoSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly price: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopPrice: number;\n\n    /**\n     * A unique Id for the entire orderList\n     * @type {string}\n     * @memberof TradeApiOrderOco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * A unique Id for the limit order\n     * @type {string}\n     * @memberof TradeApiOrderOco\n     */\n    readonly limitClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderOco\n     */\n    readonly limitStrategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly limitStrategyType?: number;\n\n    /**\n     * Used to make the `LIMIT_MAKER` leg an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly limitIcebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderOco\n     */\n    readonly trailingDelta?: number | bigint;\n\n    /**\n     * A unique Id for the stop loss/stop loss limit leg\n     * @type {string}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopStrategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopStrategyType?: number;\n\n    /**\n     * If provided, `stopLimitTimeInForce` is required.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopLimitPrice?: number;\n\n    /**\n     * Used with `STOP_LOSS_LIMIT` leg to make an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopIcebergQty?: number;\n\n    /**\n     * Valid values are `GTC`/`FOK`/`IOC`\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderOco\n     */\n    readonly stopLimitTimeInForce?: OrderOcoStopLimitTimeInForceEnum;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderOco\n     */\n    readonly newOrderRespType?: OrderOcoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed values are dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderOco\n     */\n    readonly selfTradePreventionMode?: OrderOcoSelfTradePreventionModeEnum;\n\n    /**\n     * The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderOco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderTest operation in TradeApi.\n * @interface OrderTestRequest\n */\nexport interface OrderTestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderTest\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly side: OrderTestSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly type: OrderTestTypeEnum;\n\n    /**\n     * Default: `false` <br> See [Commissions FAQ](/products/spot/faqs/commission_faq#test-order-diferences) to learn more.\n     * @type {boolean}\n     * @memberof TradeApiOrderTest\n     */\n    readonly computeCommissionRates?: boolean;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly timeInForce?: OrderTestTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiOrderTest\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderTest\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly strategyType?: number;\n\n    /**\n     * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderTest\n     */\n    readonly trailingDelta?: number | bigint;\n\n    /**\n     * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly icebergQty?: number;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`; `MARKET` and `LIMIT` order types default to `FULL`, all other orders default to `ACK`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly newOrderRespType?: OrderTestNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly selfTradePreventionMode?: OrderTestSelfTradePreventionModeEnum;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegPriceType?: OrderTestPegPriceTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegOffsetType?: OrderTestPegOffsetTypeEnum;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for sorOrder operation in TradeApi.\n * @interface SorOrderRequest\n */\nexport interface SorOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiSorOrder\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiSorOrder\n     */\n    readonly side: SorOrderSideEnum;\n\n    /**\n     *\n     * @type {'MARKET' | 'LIMIT'}\n     * @memberof TradeApiSorOrder\n     */\n    readonly type: SorOrderTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrder\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiSorOrder\n     */\n    readonly timeInForce?: SorOrderTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrder\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiSorOrder\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiSorOrder\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiSorOrder\n     */\n    readonly strategyType?: number;\n\n    /**\n     * Used with `LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiSorOrder\n     */\n    readonly icebergQty?: number;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiSorOrder\n     */\n    readonly newOrderRespType?: SorOrderNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiSorOrder\n     */\n    readonly selfTradePreventionMode?: SorOrderSelfTradePreventionModeEnum;\n\n    /**\n     * The value cannot be greater than `60000`. <br> Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiSorOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for sorOrderTest operation in TradeApi.\n * @interface SorOrderTestRequest\n */\nexport interface SorOrderTestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly side: SorOrderTestSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly type: SorOrderTestTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {boolean}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly computeCommissionRates?: boolean;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly timeInForce?: SorOrderTestTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly strategyType?: number;\n\n    /**\n     * Used with `LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly icebergQty?: number;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly newOrderRespType?: SorOrderTestNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly selfTradePreventionMode?: SorOrderTestSelfTradePreventionModeEnum;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n */\nexport class TradeApi implements TradeApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = TradeApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Cancels all active orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel All Open Orders on a Symbol (TRADE)\n     * @param {DeleteOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<DeleteOpenOrdersResponse>>}\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-spot-trading/api/rest-api/trade#delete-open-orders Binance API Documentation}\n     */\n    public async deleteOpenOrders(\n        requestParameters: DeleteOpenOrdersRequest\n    ): Promise<RestApiResponse<DeleteOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.deleteOpenOrders(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<DeleteOpenOrdersResponse>(\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.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {DeleteOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<DeleteOrderResponse>>}\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-spot-trading/api/rest-api/trade#delete-order Binance API Documentation}\n     */\n    public async deleteOrder(\n        requestParameters: DeleteOrderRequest\n    ): Promise<RestApiResponse<DeleteOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.deleteOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.newClientOrderId,\n            requestParameters?.cancelRestrictions,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<DeleteOrderResponse>(\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\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Notes:**\n     * - Canceling an individual order from an order list will cancel the entire order list.\n     * - If both orderListId and listClientOrderId parameters are provided, the orderListId is searched first, then the listClientOrderId from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {DeleteOrderListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<DeleteOrderListResponse>>}\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-spot-trading/api/rest-api/trade#delete-order-list Binance API Documentation}\n     */\n    public async deleteOrderList(\n        requestParameters: DeleteOrderListRequest\n    ): Promise<RestApiResponse<DeleteOrderListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.deleteOrderList(\n            requestParameters?.symbol,\n            requestParameters?.orderListId,\n            requestParameters?.listClientOrderId,\n            requestParameters?.newClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<DeleteOrderListResponse>(\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 order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Some additional mandatory parameters based on order `type`:\n     *\n     * Type | Additional mandatory parameters | Additional Information\n     * ------------ | ------------| ------\n     * `LIMIT` | `timeInForce`, `quantity`, `price`|\n     * `MARKET` | `quantity` or `quoteOrderQty`| `MARKET` orders using the `quantity` field specifies the amount of the `base asset` the user wants to buy or sell at the market price. <br/> E.g. MARKET order on BTCUSDT will specify how much BTC the user is buying or selling. <br/><br/> `MARKET` orders using `quoteOrderQty` specifies the amount the user wants to spend (when buying) or receive (when selling) the `quote` asset; the correct `quantity` will be determined based on the market liquidity and `quoteOrderQty`. <br/> E.g. Using the symbol BTCUSDT: <br/> `BUY` side, the order will buy as many BTC as `quoteOrderQty` USDT can. <br/> `SELL` side, the order will sell as much BTC needed to receive `quoteOrderQty` USDT.\n     * `STOP_LOSS` | `quantity`, `stopPrice` or `trailingDelta`| This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `STOP_LOSS_LIMIT` | `timeInForce`, `quantity`,  `price`, `stopPrice` or `trailingDelta`\n     * `TAKE_PROFIT` | `quantity`, `stopPrice` or `trailingDelta` | This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `TAKE_PROFIT_LIMIT` | `timeInForce`, `quantity`, `price`, `stopPrice` or `trailingDelta` |\n     * `LIMIT_MAKER` | `quantity`, `price`| This is a `LIMIT` order that will be rejected if the order immediately matches and trades as a taker. <br/> This is also known as a POST-ONLY order.\n     *\n     *\n     * Notes on using parameters for Pegged Orders:\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * Other info:\n     * Any `LIMIT` or `LIMIT_MAKER` type order can be made an iceberg order by sending an `icebergQty`.\n     * Any order with an `icebergQty` MUST have `timeInForce` set to `GTC`.\n     * For `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` and `TAKE_PROFIT` orders, `trailingDelta` can be combined with `stopPrice`.\n     * `MARKET` orders using `quoteOrderQty` will not break `LOT_SIZE` filter rules; the order will execute a `quantity` that will have the notional value as close as possible to `quoteOrderQty`. Trigger order price rules against market price for both MARKET and LIMIT versions:\n     * Price above market price: `STOP_LOSS` `BUY`, `TAKE_PROFIT` `SELL`\n     * Price below market price: `STOP_LOSS` `SELL`, `TAKE_PROFIT` `BUY`\n     *\n     * @summary New order (TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#new-order Binance API Documentation}\n     */\n    public async newOrder(\n        requestParameters: NewOrderRequest\n    ): Promise<RestApiResponse<NewOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.newOrder(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.timeInForce,\n            requestParameters?.quantity,\n            requestParameters?.quoteOrderQty,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.strategyId,\n            requestParameters?.strategyType,\n            requestParameters?.stopPrice,\n            requestParameters?.trailingDelta,\n            requestParameters?.icebergQty,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.pegPriceType,\n            requestParameters?.pegOffsetValue,\n            requestParameters?.pegOffsetType,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NewOrderResponse>(\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     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read Order Amend Keep Priority FAQ to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderAmendKeepPriorityResponse>>}\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-spot-trading/api/rest-api/trade#order-amend-keep-priority Binance API Documentation}\n     */\n    public async orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<RestApiResponse<OrderAmendKeepPriorityResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderAmendKeepPriority(\n            requestParameters?.symbol,\n            requestParameters?.newQty,\n            requestParameters?.orderId,\n            requestParameters?.origClientOrderId,\n            requestParameters?.newClientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderAmendKeepPriorityResponse>(\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 an existing order and places a new order on the same symbol.\n     * - Filters and Order Count are evaluated before the processing of the cancellation and order placement occurs.\n     * - A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * - You can only cancel an individual order from an orderList using this endpoint, but the result is the same as canceling the entire orderList.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to `POST /api/v3/order`, additional mandatory parameters are determined by `type`.\n     * Response format varies depending on whether the processing of the message succeeded, partially succeeded, or failed.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>N/A</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     **Notes:**\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel an Existing Order and Send a New Order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderCancelReplaceResponse>>}\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-spot-trading/api/rest-api/trade#order-cancel-replace Binance API Documentation}\n     */\n    public async orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<RestApiResponse<OrderCancelReplaceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderCancelReplace(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.cancelReplaceMode,\n            requestParameters?.timeInForce,\n            requestParameters?.quantity,\n            requestParameters?.quoteOrderQty,\n            requestParameters?.price,\n            requestParameters?.cancelNewClientOrderId,\n            requestParameters?.cancelOrigClientOrderId,\n            requestParameters?.cancelOrderId,\n            requestParameters?.newClientOrderId,\n            requestParameters?.strategyId,\n            requestParameters?.strategyType,\n            requestParameters?.stopPrice,\n            requestParameters?.trailingDelta,\n            requestParameters?.icebergQty,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.cancelRestrictions,\n            requestParameters?.orderRateLimitExceededMode,\n            requestParameters?.pegPriceType,\n            requestParameters?.pegOffsetValue,\n            requestParameters?.pegOffsetType,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderCancelReplaceResponse>(\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 an one-cancels-the-other (OCO) pair, where activation of one\n     * order immediately cancels the other.\n     *\n     * - An OCO has 2 orders called the **above order** and **below order**.\n     * - One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     * - Price restrictions\n     * - If the OCO is on the `SELL` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price >  `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * - `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     * - If the OCO is on the `BUY` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT price` < Last Traded Price < `stopPrice`\n     * - `TAKE_PROFIT stopPrice` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT stopPrice` * OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     * - OCOs add 2 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order list - OCO (TRADE)\n     * @param {OrderListOcoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderListOcoResponse>>}\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-spot-trading/api/rest-api/trade#order-list-oco Binance API Documentation}\n     */\n    public async orderListOco(\n        requestParameters: OrderListOcoRequest\n    ): Promise<RestApiResponse<OrderListOcoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderListOco(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.quantity,\n            requestParameters?.aboveType,\n            requestParameters?.belowType,\n            requestParameters?.listClientOrderId,\n            requestParameters?.aboveClientOrderId,\n            requestParameters?.aboveIcebergQty,\n            requestParameters?.abovePrice,\n            requestParameters?.aboveStopPrice,\n            requestParameters?.aboveTrailingDelta,\n            requestParameters?.aboveTimeInForce,\n            requestParameters?.aboveStrategyId,\n            requestParameters?.aboveStrategyType,\n            requestParameters?.abovePegPriceType,\n            requestParameters?.abovePegOffsetType,\n            requestParameters?.abovePegOffsetValue,\n            requestParameters?.belowClientOrderId,\n            requestParameters?.belowIcebergQty,\n            requestParameters?.belowPrice,\n            requestParameters?.belowStopPrice,\n            requestParameters?.belowTrailingDelta,\n            requestParameters?.belowTimeInForce,\n            requestParameters?.belowStrategyId,\n            requestParameters?.belowStrategyType,\n            requestParameters?.belowPegPriceType,\n            requestParameters?.belowPegOffsetType,\n            requestParameters?.belowPegOffsetValue,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderListOcoResponse>(\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     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * - OPOs add 2 orders to the `EXCHANGE_MAX_NUM_ORDERS`` filter and `MAX_NUM_ORDERS`` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPO (TRADE)\n     * @param {OrderListOpoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderListOpoResponse>>}\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-spot-trading/api/rest-api/trade#order-list-opo Binance API Documentation}\n     */\n    public async orderListOpo(\n        requestParameters: OrderListOpoRequest\n    ): Promise<RestApiResponse<OrderListOpoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderListOpo(\n            requestParameters?.symbol,\n            requestParameters?.workingType,\n            requestParameters?.workingSide,\n            requestParameters?.workingPrice,\n            requestParameters?.workingQuantity,\n            requestParameters?.pendingType,\n            requestParameters?.pendingSide,\n            requestParameters?.listClientOrderId,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.workingClientOrderId,\n            requestParameters?.workingIcebergQty,\n            requestParameters?.workingTimeInForce,\n            requestParameters?.workingStrategyId,\n            requestParameters?.workingStrategyType,\n            requestParameters?.workingPegPriceType,\n            requestParameters?.workingPegOffsetType,\n            requestParameters?.workingPegOffsetValue,\n            requestParameters?.pendingClientOrderId,\n            requestParameters?.pendingPrice,\n            requestParameters?.pendingStopPrice,\n            requestParameters?.pendingTrailingDelta,\n            requestParameters?.pendingIcebergQty,\n            requestParameters?.pendingTimeInForce,\n            requestParameters?.pendingStrategyId,\n            requestParameters?.pendingStrategyType,\n            requestParameters?.pendingPegPriceType,\n            requestParameters?.pendingPegOffsetType,\n            requestParameters?.pendingPegOffsetValue,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderListOpoResponse>(\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     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPOCO (TRADE)\n     * @param {OrderListOpocoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderListOpocoResponse>>}\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-spot-trading/api/rest-api/trade#order-list-opoco Binance API Documentation}\n     */\n    public async orderListOpoco(\n        requestParameters: OrderListOpocoRequest\n    ): Promise<RestApiResponse<OrderListOpocoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderListOpoco(\n            requestParameters?.symbol,\n            requestParameters?.workingType,\n            requestParameters?.workingSide,\n            requestParameters?.workingPrice,\n            requestParameters?.workingQuantity,\n            requestParameters?.pendingSide,\n            requestParameters?.pendingAboveType,\n            requestParameters?.listClientOrderId,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.workingClientOrderId,\n            requestParameters?.workingIcebergQty,\n            requestParameters?.workingTimeInForce,\n            requestParameters?.workingStrategyId,\n            requestParameters?.workingStrategyType,\n            requestParameters?.workingPegPriceType,\n            requestParameters?.workingPegOffsetType,\n            requestParameters?.workingPegOffsetValue,\n            requestParameters?.pendingAboveClientOrderId,\n            requestParameters?.pendingAbovePrice,\n            requestParameters?.pendingAboveStopPrice,\n            requestParameters?.pendingAboveTrailingDelta,\n            requestParameters?.pendingAboveIcebergQty,\n            requestParameters?.pendingAboveTimeInForce,\n            requestParameters?.pendingAboveStrategyId,\n            requestParameters?.pendingAboveStrategyType,\n            requestParameters?.pendingAbovePegPriceType,\n            requestParameters?.pendingAbovePegOffsetType,\n            requestParameters?.pendingAbovePegOffsetValue,\n            requestParameters?.pendingBelowType,\n            requestParameters?.pendingBelowClientOrderId,\n            requestParameters?.pendingBelowPrice,\n            requestParameters?.pendingBelowStopPrice,\n            requestParameters?.pendingBelowTrailingDelta,\n            requestParameters?.pendingBelowIcebergQty,\n            requestParameters?.pendingBelowTimeInForce,\n            requestParameters?.pendingBelowStrategyId,\n            requestParameters?.pendingBelowStrategyType,\n            requestParameters?.pendingBelowPegPriceType,\n            requestParameters?.pendingBelowPegOffsetType,\n            requestParameters?.pendingBelowPegOffsetValue,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderListOpocoResponse>(\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     * Place an OTO.\n     *\n     * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n     * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n     * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n     * - OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary New Order list - OTO (TRADE)\n     * @param {OrderListOtoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderListOtoResponse>>}\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-spot-trading/api/rest-api/trade#order-list-oto Binance API Documentation}\n     */\n    public async orderListOto(\n        requestParameters: OrderListOtoRequest\n    ): Promise<RestApiResponse<OrderListOtoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderListOto(\n            requestParameters?.symbol,\n            requestParameters?.workingType,\n            requestParameters?.workingSide,\n            requestParameters?.workingPrice,\n            requestParameters?.workingQuantity,\n            requestParameters?.pendingType,\n            requestParameters?.pendingSide,\n            requestParameters?.pendingQuantity,\n            requestParameters?.listClientOrderId,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.workingClientOrderId,\n            requestParameters?.workingIcebergQty,\n            requestParameters?.workingTimeInForce,\n            requestParameters?.workingStrategyId,\n            requestParameters?.workingStrategyType,\n            requestParameters?.workingPegPriceType,\n            requestParameters?.workingPegOffsetType,\n            requestParameters?.workingPegOffsetValue,\n            requestParameters?.pendingClientOrderId,\n            requestParameters?.pendingPrice,\n            requestParameters?.pendingStopPrice,\n            requestParameters?.pendingTrailingDelta,\n            requestParameters?.pendingIcebergQty,\n            requestParameters?.pendingTimeInForce,\n            requestParameters?.pendingStrategyId,\n            requestParameters?.pendingStrategyType,\n            requestParameters?.pendingPegPriceType,\n            requestParameters?.pendingPegOffsetType,\n            requestParameters?.pendingPegOffsetValue,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderListOtoResponse>(\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     * Place an OTOCO.\n     *\n     * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The behavior of the working order is the same as the [OTO](#order-list-oto).\n     * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * - The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-oco).\n     * - OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`     |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`        |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * |`pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary New Order list - OTOCO (TRADE)\n     * @param {OrderListOtocoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderListOtocoResponse>>}\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-spot-trading/api/rest-api/trade#order-list-otoco Binance API Documentation}\n     */\n    public async orderListOtoco(\n        requestParameters: OrderListOtocoRequest\n    ): Promise<RestApiResponse<OrderListOtocoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderListOtoco(\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?.listClientOrderId,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.workingClientOrderId,\n            requestParameters?.workingIcebergQty,\n            requestParameters?.workingTimeInForce,\n            requestParameters?.workingStrategyId,\n            requestParameters?.workingStrategyType,\n            requestParameters?.workingPegPriceType,\n            requestParameters?.workingPegOffsetType,\n            requestParameters?.workingPegOffsetValue,\n            requestParameters?.pendingAboveClientOrderId,\n            requestParameters?.pendingAbovePrice,\n            requestParameters?.pendingAboveStopPrice,\n            requestParameters?.pendingAboveTrailingDelta,\n            requestParameters?.pendingAboveIcebergQty,\n            requestParameters?.pendingAboveTimeInForce,\n            requestParameters?.pendingAboveStrategyId,\n            requestParameters?.pendingAboveStrategyType,\n            requestParameters?.pendingAbovePegPriceType,\n            requestParameters?.pendingAbovePegOffsetType,\n            requestParameters?.pendingAbovePegOffsetValue,\n            requestParameters?.pendingBelowType,\n            requestParameters?.pendingBelowClientOrderId,\n            requestParameters?.pendingBelowPrice,\n            requestParameters?.pendingBelowStopPrice,\n            requestParameters?.pendingBelowTrailingDelta,\n            requestParameters?.pendingBelowIcebergQty,\n            requestParameters?.pendingBelowTimeInForce,\n            requestParameters?.pendingBelowStrategyId,\n            requestParameters?.pendingBelowStrategyType,\n            requestParameters?.pendingBelowPegPriceType,\n            requestParameters?.pendingBelowPegOffsetType,\n            requestParameters?.pendingBelowPegOffsetValue,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderListOtocoResponse>(\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.\n     *\n     * - Price Restrictions:\n     * - `SELL`: Limit Price > Last Price > Stop Price\n     * - `BUY`: Limit Price < Last Price < Stop Price\n     * - Quantity Restrictions:\n     * - Both legs must have the same quantity.\n     * - `ICEBERG` quantities however do not have to be the same\n     * - `OCO` adds **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New OCO - Deprecated (TRADE)\n     * @param {OrderOcoRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderOcoResponse>>}\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-spot-trading/api/rest-api/trade#order-oco Binance API Documentation}\n     */\n    public async orderOco(\n        requestParameters: OrderOcoRequest\n    ): Promise<RestApiResponse<OrderOcoResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderOco(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.quantity,\n            requestParameters?.price,\n            requestParameters?.stopPrice,\n            requestParameters?.listClientOrderId,\n            requestParameters?.limitClientOrderId,\n            requestParameters?.limitStrategyId,\n            requestParameters?.limitStrategyType,\n            requestParameters?.limitIcebergQty,\n            requestParameters?.trailingDelta,\n            requestParameters?.stopClientOrderId,\n            requestParameters?.stopStrategyId,\n            requestParameters?.stopStrategyType,\n            requestParameters?.stopLimitPrice,\n            requestParameters?.stopIcebergQty,\n            requestParameters?.stopLimitTimeInForce,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderOcoResponse>(\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     * Test new order creation and signature/recvWindow long.\n     *\n     * Creates and validates a new order but does not send it into the matching\n     * engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderTestResponse>>}\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-spot-trading/api/rest-api/trade#order-test Binance API Documentation}\n     */\n    public async orderTest(\n        requestParameters: OrderTestRequest\n    ): Promise<RestApiResponse<OrderTestResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderTest(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.computeCommissionRates,\n            requestParameters?.timeInForce,\n            requestParameters?.quantity,\n            requestParameters?.quoteOrderQty,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.strategyId,\n            requestParameters?.strategyType,\n            requestParameters?.stopPrice,\n            requestParameters?.trailingDelta,\n            requestParameters?.icebergQty,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.pegPriceType,\n            requestParameters?.pegOffsetValue,\n            requestParameters?.pegOffsetType,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OrderTestResponse>(\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     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `POST /api/v3/sor/order` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary New order using SOR (TRADE)\n     * @param {SorOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SorOrderResponse>>}\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-spot-trading/api/rest-api/trade#sor-order Binance API Documentation}\n     */\n    public async sorOrder(\n        requestParameters: SorOrderRequest\n    ): Promise<RestApiResponse<SorOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.sorOrder(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.quantity,\n            requestParameters?.timeInForce,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.strategyId,\n            requestParameters?.strategyType,\n            requestParameters?.icebergQty,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<SorOrderResponse>(\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     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SorOrderTestResponse>>}\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-spot-trading/api/rest-api/trade#sor-order-test Binance API Documentation}\n     */\n    public async sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<RestApiResponse<SorOrderTestResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.sorOrderTest(\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.type,\n            requestParameters?.quantity,\n            requestParameters?.computeCommissionRates,\n            requestParameters?.timeInForce,\n            requestParameters?.price,\n            requestParameters?.newClientOrderId,\n            requestParameters?.strategyId,\n            requestParameters?.strategyType,\n            requestParameters?.icebergQty,\n            requestParameters?.newOrderRespType,\n            requestParameters?.selfTradePreventionMode,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<SorOrderTestResponse>(\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 DeleteOrderCancelRestrictionsEnum {\n    ONLY_NEW = 'ONLY_NEW',\n    ONLY_PARTIALLY_FILLED = 'ONLY_PARTIALLY_FILLED',\n}\n\nexport enum NewOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum NewOrderTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 NewOrderTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum NewOrderNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum NewOrderSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum NewOrderPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum NewOrderPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderCancelReplaceSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderCancelReplaceTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 OrderCancelReplaceCancelReplaceModeEnum {\n    STOP_ON_FAILURE = 'STOP_ON_FAILURE',\n    ALLOW_FAILURE = 'ALLOW_FAILURE',\n}\n\nexport enum OrderCancelReplaceTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderCancelReplaceNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderCancelReplaceSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderCancelReplaceCancelRestrictionsEnum {\n    ONLY_NEW = 'ONLY_NEW',\n    ONLY_PARTIALLY_FILLED = 'ONLY_PARTIALLY_FILLED',\n}\n\nexport enum OrderCancelReplaceOrderRateLimitExceededModeEnum {\n    DO_NOTHING = 'DO_NOTHING',\n    CANCEL_ONLY = 'CANCEL_ONLY',\n}\n\nexport enum OrderCancelReplacePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderCancelReplacePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOcoSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOcoAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListOcoBelowTypeEnum {\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}\n\nexport enum OrderListOcoAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOcoAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOcoAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOcoBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOcoBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOcoBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOcoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListOcoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListOpoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListOpoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOpoPendingTypeEnum {\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 OrderListOpoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOpoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListOpoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListOpoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOpoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOpoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOpoPendingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOpoPendingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOpoPendingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOpocoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListOpocoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOpocoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOpocoPendingAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListOpocoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListOpocoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListOpocoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOpocoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOpocoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOpocoPendingAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOpocoPendingAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOpocoPendingAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOpocoPendingBelowTypeEnum {\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}\n\nexport enum OrderListOpocoPendingBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOpocoPendingBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOpocoPendingBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOtoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListOtoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOtoPendingTypeEnum {\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 OrderListOtoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOtoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListOtoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListOtoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOtoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOtoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOtoPendingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOtoPendingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOtoPendingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOtocoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListOtocoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOtocoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListOtocoPendingAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListOtocoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListOtocoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListOtocoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOtocoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOtocoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOtocoPendingAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOtocoPendingAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOtocoPendingAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListOtocoPendingBelowTypeEnum {\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}\n\nexport enum OrderListOtocoPendingBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListOtocoPendingBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListOtocoPendingBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderOcoSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderOcoStopLimitTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderOcoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderOcoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderTestSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderTestTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 OrderTestTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderTestNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderTestSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderTestPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderTestPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum SorOrderSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum SorOrderTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\n}\n\nexport enum SorOrderTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum SorOrderNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum SorOrderSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum SorOrderTestSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum SorOrderTestTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\n}\n\nexport enum SorOrderTestTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum SorOrderTestNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum SorOrderTestSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n","/**\n * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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, TimeUnit } from '@binance/common';\nimport { AccountApi } from './modules/account-api';\nimport { GeneralApi } from './modules/general-api';\nimport { MarketApi } from './modules/market-api';\nimport { TradeApi } from './modules/trade-api';\n\nimport type {\n    AccountCommissionRequest,\n    AllOrderListRequest,\n    AllOrdersRequest,\n    GetAccountRequest,\n    GetOpenOrdersRequest,\n    GetOrderRequest,\n    GetOrderListRequest,\n    MyAllocationsRequest,\n    MyFiltersRequest,\n    MyPreventedMatchesRequest,\n    MyTradesRequest,\n    OpenOrderListRequest,\n    OrderAmendmentsRequest,\n    RateLimitOrderRequest,\n} from './modules/account-api';\nimport type { ExchangeInfoRequest, ExecutionRulesRequest } from './modules/general-api';\nimport type {\n    AggTradesRequest,\n    AvgPriceRequest,\n    DepthRequest,\n    GetTradesRequest,\n    HistoricalBlockTradesRequest,\n    HistoricalTradesRequest,\n    KlinesRequest,\n    ReferencePriceRequest,\n    ReferencePriceCalculationRequest,\n    TickerRequest,\n    Ticker24hrRequest,\n    TickerBookTickerRequest,\n    TickerPriceRequest,\n    TickerTradingDayRequest,\n    UiKlinesRequest,\n} from './modules/market-api';\nimport type {\n    DeleteOpenOrdersRequest,\n    DeleteOrderRequest,\n    DeleteOrderListRequest,\n    NewOrderRequest,\n    OrderAmendKeepPriorityRequest,\n    OrderCancelReplaceRequest,\n    OrderListOcoRequest,\n    OrderListOpoRequest,\n    OrderListOpocoRequest,\n    OrderListOtoRequest,\n    OrderListOtocoRequest,\n    OrderOcoRequest,\n    OrderTestRequest,\n    SorOrderRequest,\n    SorOrderTestRequest,\n} from './modules/trade-api';\n\nimport type {\n    AccountCommissionResponse,\n    AllOrderListResponse,\n    AllOrdersResponse,\n    GetAccountResponse,\n    GetOpenOrdersResponse,\n    GetOrderResponse,\n    GetOrderListResponse,\n    MyAllocationsResponse,\n    MyFiltersResponse,\n    MyPreventedMatchesResponse,\n    MyTradesResponse,\n    OpenOrderListResponse,\n    OrderAmendmentsResponse,\n    RateLimitOrderResponse,\n} from './types';\nimport type { ExchangeInfoResponse, ExecutionRulesResponse, TimeResponse } from './types';\nimport type {\n    AggTradesResponse,\n    AvgPriceResponse,\n    DepthResponse,\n    GetTradesResponse,\n    HistoricalBlockTradesResponse,\n    HistoricalTradesResponse,\n    KlinesResponse,\n    ReferencePriceResponse,\n    ReferencePriceCalculationResponse,\n    TickerResponse,\n    Ticker24hrResponse,\n    TickerBookTickerResponse,\n    TickerPriceResponse,\n    TickerTradingDayResponse,\n    UiKlinesResponse,\n} from './types';\nimport type {\n    DeleteOpenOrdersResponse,\n    DeleteOrderResponse,\n    DeleteOrderListResponse,\n    NewOrderResponse,\n    OrderAmendKeepPriorityResponse,\n    OrderCancelReplaceResponse,\n    OrderListOcoResponse,\n    OrderListOpoResponse,\n    OrderListOpocoResponse,\n    OrderListOtoResponse,\n    OrderListOtocoResponse,\n    OrderOcoResponse,\n    OrderTestResponse,\n    SorOrderResponse,\n    SorOrderTestResponse,\n} from './types';\n\nexport class RestAPI {\n    private configuration: ConfigurationRestAPI;\n    private accountApi: AccountApi;\n    private generalApi: GeneralApi;\n    private marketApi: MarketApi;\n    private tradeApi: TradeApi;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.accountApi = new AccountApi(configuration);\n        this.generalApi = new GeneralApi(configuration);\n        this.marketApi = new MarketApi(configuration);\n        this.tradeApi = new TradeApi(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     * @param timeUnit - The time unit for the request.\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        timeUnit: TimeUnit = this.configuration?.timeUnit as TimeUnit\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(\n            this.configuration,\n            endpoint,\n            method,\n            queryParams,\n            bodyParams,\n            undefined,\n            timeUnit\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     * @param timeUnit - The time unit for the request.\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        timeUnit: TimeUnit = this.configuration?.timeUnit as TimeUnit\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(\n            this.configuration,\n            endpoint,\n            method,\n            queryParams,\n            bodyParams,\n            undefined,\n            timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<AccountCommissionResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#account-commission Binance API Documentation}\n     */\n    accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<RestApiResponse<AccountCommissionResponse>> {\n        return this.accountApi.accountCommission(requestParameters);\n    }\n\n    /**\n     * Retrieves all order lists based on provided optional parameters.\n     *\n     * Note that the time between `startTime` and `endTime` can't be longer\n     * than 24 hours.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query all Order lists (USER_DATA)\n     * @param {AllOrderListRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<AllOrderListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#all-order-list Binance API Documentation}\n     */\n    allOrderList(\n        requestParameters: AllOrderListRequest = {}\n    ): Promise<RestApiResponse<AllOrderListResponse>> {\n        return this.accountApi.allOrderList(requestParameters);\n    }\n\n    /**\n     * Get all account orders; active, canceled, or filled.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `orderId` is set, it will get orders >= that `orderId`. Otherwise most recent orders are returned.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     * - If `startTime` and/or `endTime` provided, `orderId` is not required.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary All orders (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<AllOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#all-orders Binance API Documentation}\n     */\n    allOrders(requestParameters: AllOrdersRequest): Promise<RestApiResponse<AllOrdersResponse>> {\n        return this.accountApi.allOrders(requestParameters);\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {GetAccountRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<GetAccountResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#get-account Binance API Documentation}\n     */\n    getAccount(\n        requestParameters: GetAccountRequest = {}\n    ): Promise<RestApiResponse<GetAccountResponse>> {\n        return this.accountApi.getAccount(requestParameters);\n    }\n\n    /**\n     * Get all open orders on a symbol. **Careful** when accessing this with no symbol.\n     *\n     * Weight: 6 for a single symbol; 80 when the symbol parameter is omitted\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - If the symbol is not sent, orders for all symbols will be returned in an array.\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {GetOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<GetOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#get-open-orders Binance API Documentation}\n     */\n    getOpenOrders(\n        requestParameters: GetOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<GetOpenOrdersResponse>> {\n        return this.accountApi.getOpenOrders(requestParameters);\n    }\n\n    /**\n     * Check an order's status.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - For some historical orders `cummulativeQuoteQty` will be < 0, meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {GetOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<GetOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#get-order Binance API Documentation}\n     */\n    getOrder(requestParameters: GetOrderRequest): Promise<RestApiResponse<GetOrderResponse>> {\n        return this.accountApi.getOrder(requestParameters);\n    }\n\n    /**\n     * Retrieves a specific order list based on provided optional parameters.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {GetOrderListRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<GetOrderListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#get-order-list Binance API Documentation}\n     */\n    getOrderList(\n        requestParameters: GetOrderListRequest = {}\n    ): Promise<RestApiResponse<GetOrderListResponse>> {\n        return this.accountApi.getOrderList(requestParameters);\n    }\n\n    /**\n     * Retrieves allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\"\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Query Allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<MyAllocationsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#my-allocations Binance API Documentation}\n     */\n    myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<RestApiResponse<MyAllocationsResponse>> {\n        return this.accountApi.myAllocations(requestParameters);\n    }\n\n    /**\n     * Retrieves the list of filters relevant to an account on a given symbol. This is the only endpoint that shows if an account has `MAX_ASSET` filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query relevant filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<MyFiltersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#my-filters Binance API Documentation}\n     */\n    myFilters(requestParameters: MyFiltersRequest): Promise<RestApiResponse<MyFiltersResponse>> {\n        return this.accountApi.myFilters(requestParameters);\n    }\n\n    /**\n     * Displays the list of orders that were expired due to STP.\n     *\n     * These are the combinations supported:\n     * - `symbol` + `preventedMatchId`\n     * - `symbol` + `orderId`\n     * - `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * - `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Prevented Matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<MyPreventedMatchesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#my-prevented-matches Binance API Documentation}\n     */\n    myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<RestApiResponse<MyPreventedMatchesResponse>> {\n        return this.accountApi.myPreventedMatches(requestParameters);\n    }\n\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     **Notes:**:\n     * - If `fromId` is set, it will get trades >= that `fromId`. Otherwise most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     * - These are the supported combinations of all parameters:\n     * - `symbol`\n     * - `symbol` + `orderId`\n     * - `symbol` + `startTime`\n     * - `symbol` + `endTime`\n     * - `symbol` + `fromId`\n     * - `symbol` + `startTime` + `endTime`\n     * - `symbol`+ `orderId` + `fromId`\n     *\n     * @summary Account trade list (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<MyTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#my-trades Binance API Documentation}\n     */\n    myTrades(requestParameters: MyTradesRequest): Promise<RestApiResponse<MyTradesResponse>> {\n        return this.accountApi.myTrades(requestParameters);\n    }\n\n    /**\n     * Query Open Order lists\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Query Open Order lists (USER_DATA)\n     * @param {OpenOrderListRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OpenOrderListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#open-order-list Binance API Documentation}\n     */\n    openOrderList(\n        requestParameters: OpenOrderListRequest = {}\n    ): Promise<RestApiResponse<OpenOrderListResponse>> {\n        return this.accountApi.openOrderList(requestParameters);\n    }\n\n    /**\n     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderAmendmentsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#order-amendments Binance API Documentation}\n     */\n    orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<RestApiResponse<OrderAmendmentsResponse>> {\n        return this.accountApi.orderAmendments(requestParameters);\n    }\n\n    /**\n     * Displays the user's unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Unfilled Order Count (USER_DATA)\n     * @param {RateLimitOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<RateLimitOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/account#rate-limit-order Binance API Documentation}\n     */\n    rateLimitOrder(\n        requestParameters: RateLimitOrderRequest = {}\n    ): Promise<RestApiResponse<RateLimitOrderResponse>> {\n        return this.accountApi.rateLimitOrder(requestParameters);\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * `permissions` can support single or multiple values (e.g. `SPOT`, `[\"MARGIN\",\"LEVERAGED\"]`). This cannot be used in combination with `symbol` or `symbols`.\n     * If `permissions` parameter not provided, all symbols that have either `SPOT`, `MARGIN`, or `LEVERAGED` permission will be exposed.\n     * To display symbols with any permission you need to specify them explicitly in `permissions`: (e.g. `[\"SPOT\",\"MARGIN\",...]`.). See Account and Symbol Permissions for the full list.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<ExchangeInfoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#exchange-info Binance API Documentation}\n     */\n    exchangeInfo(\n        requestParameters: ExchangeInfoRequest = {}\n    ): Promise<RestApiResponse<ExchangeInfoResponse>> {\n        return this.generalApi.exchangeInfo(requestParameters);\n    }\n\n    /**\n     * Query execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:**: No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<ExecutionRulesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#execution-rules Binance API Documentation}\n     */\n    executionRules(\n        requestParameters: ExecutionRulesRequest = {}\n    ): Promise<RestApiResponse<ExecutionRulesResponse>> {\n        return this.generalApi.executionRules(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Test connectivity\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-spot-trading/api/rest-api/general#ping Binance API Documentation}\n     */\n    ping(): Promise<RestApiResponse<void>> {\n        return this.generalApi.ping();\n    }\n\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * @summary Check server time\n     *\n     * @returns {Promise<RestApiResponse<TimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/general#time Binance API Documentation}\n     */\n    time(): Promise<RestApiResponse<TimeResponse>> {\n        return this.generalApi.time();\n    }\n\n    /**\n     * Get compressed, aggregate trades. Trades that fill at the time, from the same taker order, with the same price will have the quantity aggregated.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If fromId, startTime, and endTime are not sent, the most recent aggregate trades will be returned.\n     *\n     * @summary Compressed/Aggregate trades list\n     * @param {AggTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<AggTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#agg-trades Binance API Documentation}\n     */\n    aggTrades(requestParameters: AggTradesRequest): Promise<RestApiResponse<AggTradesResponse>> {\n        return this.marketApi.aggTrades(requestParameters);\n    }\n\n    /**\n     * Current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<AvgPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#avg-price Binance API Documentation}\n     */\n    avgPrice(requestParameters: AvgPriceRequest): Promise<RestApiResponse<AvgPriceResponse>> {\n        return this.marketApi.avgPrice(requestParameters);\n    }\n\n    /**\n     * Order book\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<DepthResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#depth Binance API Documentation}\n     */\n    depth(requestParameters: DepthRequest): Promise<RestApiResponse<DepthResponse>> {\n        return this.marketApi.depth(requestParameters);\n    }\n\n    /**\n     * Get recent trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades list\n     * @param {GetTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<GetTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#get-trades Binance API Documentation}\n     */\n    getTrades(requestParameters: GetTradesRequest): Promise<RestApiResponse<GetTradesResponse>> {\n        return this.marketApi.getTrades(requestParameters);\n    }\n\n    /**\n     * Get block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: MARKET_DATA\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades (MARKET_DATA)\n     * @param {HistoricalBlockTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<HistoricalBlockTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#historical-block-trades Binance API Documentation}\n     */\n    historicalBlockTrades(\n        requestParameters: HistoricalBlockTradesRequest\n    ): Promise<RestApiResponse<HistoricalBlockTradesResponse>> {\n        return this.marketApi.historicalBlockTrades(requestParameters);\n    }\n\n    /**\n     * Get older trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Old trade lookup\n     * @param {HistoricalTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<HistoricalTradesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#historical-trades Binance API Documentation}\n     */\n    historicalTrades(\n        requestParameters: HistoricalTradesRequest\n    ): Promise<RestApiResponse<HistoricalTradesResponse>> {\n        return this.marketApi.historicalTrades(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for a symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Kline/Candlestick data\n     * @param {KlinesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<KlinesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#klines Binance API Documentation}\n     */\n    klines(requestParameters: KlinesRequest): Promise<RestApiResponse<KlinesResponse>> {\n        return this.marketApi.klines(requestParameters);\n    }\n\n    /**\n     * Query the reference price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<ReferencePriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#reference-price Binance API Documentation}\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<RestApiResponse<ReferencePriceResponse>> {\n        return this.marketApi.referencePrice(requestParameters);\n    }\n\n    /**\n     * Describes how reference price is calculated for a given symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<ReferencePriceCalculationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#reference-price-calculation Binance API Documentation}\n     */\n    referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<RestApiResponse<ReferencePriceCalculationResponse>> {\n        return this.marketApi.referencePriceCalculation(requestParameters);\n    }\n\n    /**\n     * **Note:** This endpoint differs from `GET /api/v3/ticker/24hr`.\n     *\n     * The statistical time range of this endpoint can be up to 59999ms longer\n     * than the requested `windowSize`.\n     *\n     * `openTime` starts at the beginning of a minute, while the end time is\n     * the current time. Therefore, the actual interval can be up to 59999ms\n     * longer than the requested window.\n     *\n     * For example, if `closeTime` is 1641287867099 (January 04, 2022\n     * 09:17:47:099 UTC) and `windowSize` is `1d`, then `openTime` is\n     * 1641201420000 (January 3, 2022, 09:17:00 UTC).\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize.\n     *\n     * The weight for this request will cap at 200 once the number of `symbols` in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<TickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker Binance API Documentation}\n     */\n    ticker(requestParameters: TickerRequest = {}): Promise<RestApiResponse<TickerResponse>> {\n        return this.marketApi.ticker(requestParameters);\n    }\n\n    /**\n     * 24 hour rolling window price change statistics. **Careful** when accessing this with no symbol.\n     *\n     * Weight: <table>\n     * <thead>\n     * <tr>\n     * <th>Parameter</th>\n     * <th>Symbols Provided</th>\n     * <th>Weight</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"2\">symbol</td>\n     * <td>1</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>symbol parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">symbols</td>\n     * <td>1-20</td>\n     * <td>2</td>\n     * </tr>\n     * <tr>\n     * <td>21-100</td>\n     * <td>40</td>\n     * </tr>\n     * <tr>\n     * <td>101 or more</td>\n     * <td>80</td>\n     * </tr>\n     * <tr>\n     * <td>symbols parameter is omitted</td>\n     * <td>80</td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<Ticker24hrResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker24hr Binance API Documentation}\n     */\n    ticker24hr(\n        requestParameters: Ticker24hrRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrResponse>> {\n        return this.marketApi.ticker24hr(requestParameters);\n    }\n\n    /**\n     * Best price/qty on the order book for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<TickerBookTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-book-ticker Binance API Documentation}\n     */\n    tickerBookTicker(\n        requestParameters: TickerBookTickerRequest = {}\n    ): Promise<RestApiResponse<TickerBookTickerResponse>> {\n        return this.marketApi.tickerBookTicker(requestParameters);\n    }\n\n    /**\n     * Latest price for a symbol or symbols.\n     *\n     * Weight: |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<TickerPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-price Binance API Documentation}\n     */\n    tickerPrice(\n        requestParameters: TickerPriceRequest = {}\n    ): Promise<RestApiResponse<TickerPriceResponse>> {\n        return this.marketApi.tickerPrice(requestParameters);\n    }\n\n    /**\n     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**:\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<TickerTradingDayResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ticker-trading-day Binance API Documentation}\n     */\n    tickerTradingDay(\n        requestParameters: TickerTradingDayRequest = {}\n    ): Promise<RestApiResponse<TickerTradingDayResponse>> {\n        return this.marketApi.tickerTradingDay(requestParameters);\n    }\n\n    /**\n     * The request is similar to klines having the same parameters and\n     * response.\n     *\n     * `uiKlines` return modified kline data, optimized for presentation of\n     * candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UIKlines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<UiKlinesResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/market#ui-klines Binance API Documentation}\n     */\n    uiKlines(requestParameters: UiKlinesRequest): Promise<RestApiResponse<UiKlinesResponse>> {\n        return this.marketApi.uiKlines(requestParameters);\n    }\n\n    /**\n     * Cancels all active orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel All Open Orders on a Symbol (TRADE)\n     * @param {DeleteOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<DeleteOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#delete-open-orders Binance API Documentation}\n     */\n    deleteOpenOrders(\n        requestParameters: DeleteOpenOrdersRequest\n    ): Promise<RestApiResponse<DeleteOpenOrdersResponse>> {\n        return this.tradeApi.deleteOpenOrders(requestParameters);\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * - Either `orderId` or `origClientOrderId` must be sent.\n     * - If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {DeleteOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<DeleteOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#delete-order Binance API Documentation}\n     */\n    deleteOrder(\n        requestParameters: DeleteOrderRequest\n    ): Promise<RestApiResponse<DeleteOrderResponse>> {\n        return this.tradeApi.deleteOrder(requestParameters);\n    }\n\n    /**\n     * Cancel an entire Order list\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Notes:**\n     * - Canceling an individual order from an order list will cancel the entire order list.\n     * - If both orderListId and listClientOrderId parameters are provided, the orderListId is searched first, then the listClientOrderId from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {DeleteOrderListRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<DeleteOrderListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#delete-order-list Binance API Documentation}\n     */\n    deleteOrderList(\n        requestParameters: DeleteOrderListRequest\n    ): Promise<RestApiResponse<DeleteOrderListResponse>> {\n        return this.tradeApi.deleteOrderList(requestParameters);\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Some additional mandatory parameters based on order `type`:\n     *\n     * Type | Additional mandatory parameters | Additional Information\n     * ------------ | ------------| ------\n     * `LIMIT` | `timeInForce`, `quantity`, `price`|\n     * `MARKET` | `quantity` or `quoteOrderQty`| `MARKET` orders using the `quantity` field specifies the amount of the `base asset` the user wants to buy or sell at the market price. <br/> E.g. MARKET order on BTCUSDT will specify how much BTC the user is buying or selling. <br/><br/> `MARKET` orders using `quoteOrderQty` specifies the amount the user wants to spend (when buying) or receive (when selling) the `quote` asset; the correct `quantity` will be determined based on the market liquidity and `quoteOrderQty`. <br/> E.g. Using the symbol BTCUSDT: <br/> `BUY` side, the order will buy as many BTC as `quoteOrderQty` USDT can. <br/> `SELL` side, the order will sell as much BTC needed to receive `quoteOrderQty` USDT.\n     * `STOP_LOSS` | `quantity`, `stopPrice` or `trailingDelta`| This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `STOP_LOSS_LIMIT` | `timeInForce`, `quantity`,  `price`, `stopPrice` or `trailingDelta`\n     * `TAKE_PROFIT` | `quantity`, `stopPrice` or `trailingDelta` | This will execute a `MARKET` order when the conditions are met. (e.g. `stopPrice` is met or `trailingDelta` is activated)\n     * `TAKE_PROFIT_LIMIT` | `timeInForce`, `quantity`, `price`, `stopPrice` or `trailingDelta` |\n     * `LIMIT_MAKER` | `quantity`, `price`| This is a `LIMIT` order that will be rejected if the order immediately matches and trades as a taker. <br/> This is also known as a POST-ONLY order.\n     *\n     *\n     * Notes on using parameters for Pegged Orders:\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * Other info:\n     * Any `LIMIT` or `LIMIT_MAKER` type order can be made an iceberg order by sending an `icebergQty`.\n     * Any order with an `icebergQty` MUST have `timeInForce` set to `GTC`.\n     * For `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` and `TAKE_PROFIT` orders, `trailingDelta` can be combined with `stopPrice`.\n     * `MARKET` orders using `quoteOrderQty` will not break `LOT_SIZE` filter rules; the order will execute a `quantity` that will have the notional value as close as possible to `quoteOrderQty`. Trigger order price rules against market price for both MARKET and LIMIT versions:\n     * Price above market price: `STOP_LOSS` `BUY`, `TAKE_PROFIT` `SELL`\n     * Price below market price: `STOP_LOSS` `SELL`, `TAKE_PROFIT` `BUY`\n     *\n     * @summary New order (TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#new-order Binance API Documentation}\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<RestApiResponse<NewOrderResponse>> {\n        return this.tradeApi.newOrder(requestParameters);\n    }\n\n    /**\n     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read Order Amend Keep Priority FAQ to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderAmendKeepPriorityResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-amend-keep-priority Binance API Documentation}\n     */\n    orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<RestApiResponse<OrderAmendKeepPriorityResponse>> {\n        return this.tradeApi.orderAmendKeepPriority(requestParameters);\n    }\n\n    /**\n     * - Cancels an existing order and places a new order on the same symbol.\n     * - Filters and Order Count are evaluated before the processing of the cancellation and order placement occurs.\n     * - A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * - You can only cancel an individual order from an orderList using this endpoint, but the result is the same as canceling the entire orderList.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to `POST /api/v3/order`, additional mandatory parameters are determined by `type`.\n     * Response format varies depending on whether the processing of the message succeeded, partially succeeded, or failed.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>N/A</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     **Notes:**\n     * - The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel an Existing Order and Send a New Order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderCancelReplaceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-cancel-replace Binance API Documentation}\n     */\n    orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<RestApiResponse<OrderCancelReplaceResponse>> {\n        return this.tradeApi.orderCancelReplace(requestParameters);\n    }\n\n    /**\n     * Send in an one-cancels-the-other (OCO) pair, where activation of one\n     * order immediately cancels the other.\n     *\n     * - An OCO has 2 orders called the **above order** and **below order**.\n     * - One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     * - Price restrictions\n     * - If the OCO is on the `SELL` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price >  `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * - `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     * - If the OCO is on the `BUY` side:\n     * - `LIMIT_MAKER/TAKE_PROFIT_LIMIT price` < Last Traded Price < `stopPrice`\n     * - `TAKE_PROFIT stopPrice` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT stopPrice` * OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     * - OCOs add 2 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order list - OCO (TRADE)\n     * @param {OrderListOcoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderListOcoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-list-oco Binance API Documentation}\n     */\n    orderListOco(\n        requestParameters: OrderListOcoRequest\n    ): Promise<RestApiResponse<OrderListOcoResponse>> {\n        return this.tradeApi.orderListOco(requestParameters);\n    }\n\n    /**\n     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * - OPOs add 2 orders to the `EXCHANGE_MAX_NUM_ORDERS`` filter and `MAX_NUM_ORDERS`` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPO (TRADE)\n     * @param {OrderListOpoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderListOpoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-list-opo Binance API Documentation}\n     */\n    orderListOpo(\n        requestParameters: OrderListOpoRequest\n    ): Promise<RestApiResponse<OrderListOpoResponse>> {\n        return this.tradeApi.orderListOpo(requestParameters);\n    }\n\n    /**\n     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New Order List - OPOCO (TRADE)\n     * @param {OrderListOpocoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderListOpocoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-list-opoco Binance API Documentation}\n     */\n    orderListOpoco(\n        requestParameters: OrderListOpocoRequest\n    ): Promise<RestApiResponse<OrderListOpocoResponse>> {\n        return this.tradeApi.orderListOpoco(requestParameters);\n    }\n\n    /**\n     * Place an OTO.\n     *\n     * - An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The second order is called the **pending order**. It can be any order type except for `MARKET` orders using parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets **fully filled**.\n     * - If either the working order or the pending order is cancelled individually, the other order in the order list will also be canceled or expired.\n     * - When the order list is placed, if the working order gets **immediately fully filled**, the placement response will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to query the status of the pending order again to see its updated status.\n     * - OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` = `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary New Order list - OTO (TRADE)\n     * @param {OrderListOtoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderListOtoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-list-oto Binance API Documentation}\n     */\n    orderListOto(\n        requestParameters: OrderListOtoRequest\n    ): Promise<RestApiResponse<OrderListOtoResponse>> {\n        return this.tradeApi.orderListOto(requestParameters);\n    }\n\n    /**\n     * Place an OTOCO.\n     *\n     * - An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * - The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * - The behavior of the working order is the same as the [OTO](#order-list-oto).\n     * - OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * - The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-oco).\n     * - OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`     |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`        |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * |`pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT` |`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary New Order list - OTOCO (TRADE)\n     * @param {OrderListOtocoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderListOtocoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-list-otoco Binance API Documentation}\n     */\n    orderListOtoco(\n        requestParameters: OrderListOtocoRequest\n    ): Promise<RestApiResponse<OrderListOtocoResponse>> {\n        return this.tradeApi.orderListOtoco(requestParameters);\n    }\n\n    /**\n     * Send in a new OCO.\n     *\n     * - Price Restrictions:\n     * - `SELL`: Limit Price > Last Price > Stop Price\n     * - `BUY`: Limit Price < Last Price < Stop Price\n     * - Quantity Restrictions:\n     * - Both legs must have the same quantity.\n     * - `ICEBERG` quantities however do not have to be the same\n     * - `OCO` adds **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary New OCO - Deprecated (TRADE)\n     * @param {OrderOcoRequest} requestParameters Request parameters.\n     * @deprecated\n     * @returns {Promise<RestApiResponse<OrderOcoResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-oco Binance API Documentation}\n     */\n    orderOco(requestParameters: OrderOcoRequest): Promise<RestApiResponse<OrderOcoResponse>> {\n        return this.tradeApi.orderOco(requestParameters);\n    }\n\n    /**\n     * Test new order creation and signature/recvWindow long.\n     *\n     * Creates and validates a new order but does not send it into the matching\n     * engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<OrderTestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#order-test Binance API Documentation}\n     */\n    orderTest(requestParameters: OrderTestRequest): Promise<RestApiResponse<OrderTestResponse>> {\n        return this.tradeApi.orderTest(requestParameters);\n    }\n\n    /**\n     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `POST /api/v3/sor/order` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary New order using SOR (TRADE)\n     * @param {SorOrderRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<SorOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#sor-order Binance API Documentation}\n     */\n    sorOrder(requestParameters: SorOrderRequest): Promise<RestApiResponse<SorOrderResponse>> {\n        return this.tradeApi.sorOrder(requestParameters);\n    }\n\n    /**\n     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: |Condition|Weight|\n     * |---|---|\n     * |Without `computeCommissionRates`|1|\n     * |With `computeCommissionRates`|20|\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<RestApiResponse<SorOrderTestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/rest-api/trade#sor-order-test Binance API Documentation}\n     */\n    sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<RestApiResponse<SorOrderTestResponse>> {\n        return this.tradeApi.sorOrderTest(requestParameters);\n    }\n}\n","/**\n * Spot REST API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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 * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    AccountCommissionResponse,\n    AccountRateLimitsOrdersResponse,\n    AccountStatusResponse,\n    AllOrderListsResponse,\n    AllOrdersResponse,\n    MyAllocationsResponse,\n    MyFiltersResponse,\n    MyPreventedMatchesResponse,\n    MyTradesResponse,\n    OpenOrderListsStatusResponse,\n    OpenOrdersStatusResponse,\n    OrderAmendmentsResponse,\n    OrderListStatusResponse,\n    OrderStatusResponse,\n} from '../types';\n\n/**\n * AccountApi - interface\n *\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n    /**\n     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AccountCommissionResponse>}\n     * @memberof AccountApiInterface\n     */\n    accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<WebsocketApiResponse<AccountCommissionResponse>>;\n\n    /**\n     * Query your current unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Unfilled Order Count (USER_DATA)\n     * @param {AccountRateLimitsOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AccountRateLimitsOrdersResponse>}\n     * @memberof AccountApiInterface\n     */\n    accountRateLimitsOrders(\n        requestParameters?: AccountRateLimitsOrdersRequest\n    ): Promise<WebsocketApiResponse<AccountRateLimitsOrdersResponse>>;\n\n    /**\n     * Query information about your account.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {AccountStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AccountStatusResponse>}\n     * @memberof AccountApiInterface\n     */\n    accountStatus(\n        requestParameters?: AccountStatusRequest\n    ): Promise<WebsocketApiResponse<AccountStatusResponse>>;\n\n    /**\n     * Query information about all your order lists, filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     * If `startTime` and/or `endTime` are specified, `fromId` is ignored.\n     * Order lists are filtered by `transactionTime` of the last order list execution status update.\n     * If `fromId` is specified, return order lists with order list ID >= `fromId`.\n     * If no condition is specified, the most recent order lists are returned.\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order list history (USER_DATA)\n     * @param {AllOrderListsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AllOrderListsResponse>}\n     * @memberof AccountApiInterface\n     */\n    allOrderLists(\n        requestParameters?: AllOrderListsRequest\n    ): Promise<WebsocketApiResponse<AllOrderListsResponse>>;\n\n    /**\n     * Query information about all your orders – active, canceled, filled – filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `startTime` and/or `endTime` are specified, `orderId` is ignored.\n     *\n     * Orders are filtered by `time` of the last execution status update.\n     *\n     * If `orderId` is specified, return orders with order ID >= `orderId`.\n     *\n     * If no condition is specified, the most recent orders are returned.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order history (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AllOrdersResponse>}\n     * @memberof AccountApiInterface\n     */\n    allOrders(\n        requestParameters: AllOrdersRequest\n    ): Promise<WebsocketApiResponse<AllOrdersResponse>>;\n\n    /**\n     * Retrieves allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<MyAllocationsResponse>}\n     * @memberof AccountApiInterface\n     */\n    myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<WebsocketApiResponse<MyAllocationsResponse>>;\n\n    /**\n     * Retrieves the list of [filters](/products/spot/filters) relevant to an account on a given symbol. This is the only method\n     * that shows if an account has [`MAX_ASSET`](/products/spot/filters#max_asset) filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Relevant Filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<MyFiltersResponse>}\n     * @memberof AccountApiInterface\n     */\n    myFilters(\n        requestParameters: MyFiltersRequest\n    ): Promise<WebsocketApiResponse<MyFiltersResponse>>;\n\n    /**\n     * Displays the list of orders that were expired due to STP.\n     *\n     * These are the combinations supported:\n     *\n     * `symbol` + `preventedMatchId`\n     * `symbol` + `orderId`\n     * `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account prevented matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<MyPreventedMatchesResponse>}\n     * @memberof AccountApiInterface\n     */\n    myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<WebsocketApiResponse<MyPreventedMatchesResponse>>;\n\n    /**\n     * Query information about all your trades, filtered by time range.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * Notes:\n     * - If `fromId` is specified, return trades with trade ID >= `fromId`.\n     * - If `startTime` and/or `endTime` are specified, trades are filtered by execution time (`time`).\n     * - `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If `orderId` is specified, only trades related to that order are returned.\n     * - `startTime` and `endTime` cannot be used together with `orderId`.\n     * - If no condition is specified, the most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account trade history (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<MyTradesResponse>}\n     * @memberof AccountApiInterface\n     */\n    myTrades(requestParameters: MyTradesRequest): Promise<WebsocketApiResponse<MyTradesResponse>>;\n\n    /**\n     * Query execution status of all open order lists.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Current open Order lists (USER_DATA)\n     * @param {OpenOrderListsStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OpenOrderListsStatusResponse>}\n     * @memberof AccountApiInterface\n     */\n    openOrderListsStatus(\n        requestParameters?: OpenOrderListsStatusRequest\n    ): Promise<WebsocketApiResponse<OpenOrderListsStatusResponse>>;\n\n    /**\n     * Query execution status of all open orders.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight: | Parameter | Weight |\n     * | --------- | ------ |\n     * | `symbol`  |      6 |\n     * | none      |     80 |\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {OpenOrdersStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OpenOrdersStatusResponse>}\n     * @memberof AccountApiInterface\n     */\n    openOrdersStatus(\n        requestParameters?: OpenOrdersStatusRequest\n    ): Promise<WebsocketApiResponse<OpenOrdersStatusResponse>>;\n\n    /**\n     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderAmendmentsResponse>}\n     * @memberof AccountApiInterface\n     */\n    orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<WebsocketApiResponse<OrderAmendmentsResponse>>;\n\n    /**\n     * Check execution status of an Order list.\n     *\n     * For execution status of individual orders, use `order.status`.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * `origClientOrderId` refers to `listClientOrderId` of the order list itself.\n     *\n     * If both `origClientOrderId` and `orderListId` parameters are specified,\n     * only `origClientOrderId` is used and `orderListId` is ignored.\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {OrderListStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListStatusResponse>}\n     * @memberof AccountApiInterface\n     */\n    orderListStatus(\n        requestParameters?: OrderListStatusRequest\n    ): Promise<WebsocketApiResponse<OrderListStatusResponse>>;\n\n    /**\n     * Check execution status of an order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderStatusResponse>}\n     * @memberof AccountApiInterface\n     */\n    orderStatus(\n        requestParameters: OrderStatusRequest\n    ): Promise<WebsocketApiResponse<OrderStatusResponse>>;\n}\n\n/**\n * Request parameters for accountCommission operation in AccountApi.\n * @interface AccountCommissionRequest\n */\nexport interface AccountCommissionRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiAccountCommission\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiAccountCommission\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for accountRateLimitsOrders operation in AccountApi.\n * @interface AccountRateLimitsOrdersRequest\n */\nexport interface AccountRateLimitsOrdersRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiAccountRateLimitsOrders\n     */\n    readonly id?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAccountRateLimitsOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for accountStatus operation in AccountApi.\n * @interface AccountStatusRequest\n */\nexport interface AccountStatusRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiAccountStatus\n     */\n    readonly id?: string;\n\n    /**\n     * When set to `true`, emits only the non-zero balances of an account. Default value: `false`.\n     * @type {boolean}\n     * @memberof AccountApiAccountStatus\n     */\n    readonly omitZeroBalances?: boolean;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAccountStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for allOrderLists operation in AccountApi.\n * @interface AllOrderListsRequest\n */\nexport interface AllOrderListsRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly id?: string;\n\n    /**\n     * Order list ID to begin at\n     * @type {number}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly fromId?: number;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAllOrderLists\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for allOrders operation in AccountApi.\n * @interface AllOrdersRequest\n */\nexport interface AllOrdersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiAllOrders\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiAllOrders\n     */\n    readonly id?: string;\n\n    /**\n     * Order ID to begin at\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiAllOrders\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number}\n     * @memberof AccountApiAllOrders\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiAllOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myAllocations operation in AccountApi.\n * @interface MyAllocationsRequest\n */\nexport interface MyAllocationsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly id?: string;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Allocation ID to begin at\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly fromAllocationId?: number;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly limit?: number;\n\n    /**\n     * Order ID\n     * @type {number | bigint}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyAllocations\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myFilters operation in AccountApi.\n * @interface MyFiltersRequest\n */\nexport interface MyFiltersRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyFilters\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiMyFilters\n     */\n    readonly id?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyFilters\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myPreventedMatches operation in AccountApi.\n * @interface MyPreventedMatchesRequest\n */\nexport interface MyPreventedMatchesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly id?: string;\n\n    /**\n     * Prevented match ID\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly preventedMatchId?: number | bigint;\n\n    /**\n     * Order ID\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Prevented match ID to begin at\n     * @type {number | bigint}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly fromPreventedMatchId?: number | bigint;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyPreventedMatches\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for myTrades operation in AccountApi.\n * @interface MyTradesRequest\n */\nexport interface MyTradesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiMyTrades\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiMyTrades\n     */\n    readonly id?: string;\n\n    /**\n     * This can only be used in combination with `symbol`.\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms\n     * @type {number | bigint}\n     * @memberof AccountApiMyTrades\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * First trade ID to query\n     * @type {number}\n     * @memberof AccountApiMyTrades\n     */\n    readonly fromId?: number;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number}\n     * @memberof AccountApiMyTrades\n     */\n    readonly limit?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiMyTrades\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for openOrderListsStatus operation in AccountApi.\n * @interface OpenOrderListsStatusRequest\n */\nexport interface OpenOrderListsStatusRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiOpenOrderListsStatus\n     */\n    readonly id?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOpenOrderListsStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for openOrdersStatus operation in AccountApi.\n * @interface OpenOrdersStatusRequest\n */\nexport interface OpenOrdersStatusRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiOpenOrdersStatus\n     */\n    readonly id?: string;\n\n    /**\n     * If omitted, open orders for all symbols are returned\n     * @type {string}\n     * @memberof AccountApiOpenOrdersStatus\n     */\n    readonly symbol?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOpenOrdersStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderAmendments operation in AccountApi.\n * @interface OrderAmendmentsRequest\n */\nexport interface OrderAmendmentsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly symbol: string;\n\n    /**\n     * Order ID\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly orderId: number | bigint;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly id?: string;\n\n    /**\n     * Execution ID to begin at\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly fromExecutionId?: number | bigint;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number | bigint}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly limit?: number | bigint;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOrderAmendments\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListStatus operation in AccountApi.\n * @interface OrderListStatusRequest\n */\nexport interface OrderListStatusRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiOrderListStatus\n     */\n    readonly id?: string;\n\n    /**\n     * Query order list by `listClientOrderId`. `orderListId` or `origClientOrderId` must be provided.\n     * @type {string}\n     * @memberof AccountApiOrderListStatus\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Query order list by `orderListId`. `orderListId` or `origClientOrderId` must be provided.\n     * @type {number}\n     * @memberof AccountApiOrderListStatus\n     */\n    readonly orderListId?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOrderListStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderStatus operation in AccountApi.\n * @interface OrderStatusRequest\n */\nexport interface OrderStatusRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof AccountApiOrderStatus\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AccountApiOrderStatus\n     */\n    readonly id?: string;\n\n    /**\n     * Lookup order by `orderId`\n     * @type {number | bigint}\n     * @memberof AccountApiOrderStatus\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * Lookup order by `clientOrderId`\n     * @type {string}\n     * @memberof AccountApiOrderStatus\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AccountApiOrderStatus\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * AccountApi - object-oriented interface\n * @class AccountApi\n * @extends {WebsocketAPIBase}\n */\nexport class AccountApi implements AccountApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     * @returns {Promise<AccountCommissionResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-commission Binance API Documentation}\n     */\n    public accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<WebsocketApiResponse<AccountCommissionResponse>> {\n        return this.websocketBase.sendMessage<AccountCommissionResponse>(\n            '/account.commission'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query your current unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Unfilled Order Count (USER_DATA)\n     * @param {AccountRateLimitsOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<AccountRateLimitsOrdersResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-rate-limits-orders Binance API Documentation}\n     */\n    public accountRateLimitsOrders(\n        requestParameters: AccountRateLimitsOrdersRequest = {}\n    ): Promise<WebsocketApiResponse<AccountRateLimitsOrdersResponse>> {\n        return this.websocketBase.sendMessage<AccountRateLimitsOrdersResponse>(\n            '/account.rateLimits.orders'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query information about your account.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {AccountStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<AccountStatusResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-status Binance API Documentation}\n     */\n    public accountStatus(\n        requestParameters: AccountStatusRequest = {}\n    ): Promise<WebsocketApiResponse<AccountStatusResponse>> {\n        return this.websocketBase.sendMessage<AccountStatusResponse>(\n            '/account.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query information about all your order lists, filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     * If `startTime` and/or `endTime` are specified, `fromId` is ignored.\n     * Order lists are filtered by `transactionTime` of the last order list execution status update.\n     * If `fromId` is specified, return order lists with order list ID >= `fromId`.\n     * If no condition is specified, the most recent order lists are returned.\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order list history (USER_DATA)\n     * @param {AllOrderListsRequest} requestParameters Request parameters.\n     * @returns {Promise<AllOrderListsResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#all-order-lists Binance API Documentation}\n     */\n    public allOrderLists(\n        requestParameters: AllOrderListsRequest = {}\n    ): Promise<WebsocketApiResponse<AllOrderListsResponse>> {\n        return this.websocketBase.sendMessage<AllOrderListsResponse>(\n            '/allOrderLists'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query information about all your orders – active, canceled, filled – filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `startTime` and/or `endTime` are specified, `orderId` is ignored.\n     *\n     * Orders are filtered by `time` of the last execution status update.\n     *\n     * If `orderId` is specified, return orders with order ID >= `orderId`.\n     *\n     * If no condition is specified, the most recent orders are returned.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order history (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<AllOrdersResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#all-orders Binance API Documentation}\n     */\n    public allOrders(\n        requestParameters: AllOrdersRequest\n    ): Promise<WebsocketApiResponse<AllOrdersResponse>> {\n        return this.websocketBase.sendMessage<AllOrdersResponse>(\n            '/allOrders'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Retrieves allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     * @returns {Promise<MyAllocationsResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-allocations Binance API Documentation}\n     */\n    public myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<WebsocketApiResponse<MyAllocationsResponse>> {\n        return this.websocketBase.sendMessage<MyAllocationsResponse>(\n            '/myAllocations'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Retrieves the list of [filters](/products/spot/filters) relevant to an account on a given symbol. This is the only method\n     * that shows if an account has [`MAX_ASSET`](/products/spot/filters#max_asset) filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Relevant Filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     * @returns {Promise<MyFiltersResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-filters Binance API Documentation}\n     */\n    public myFilters(\n        requestParameters: MyFiltersRequest\n    ): Promise<WebsocketApiResponse<MyFiltersResponse>> {\n        return this.websocketBase.sendMessage<MyFiltersResponse>(\n            '/myFilters'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Displays the list of orders that were expired due to STP.\n     *\n     * These are the combinations supported:\n     *\n     * `symbol` + `preventedMatchId`\n     * `symbol` + `orderId`\n     * `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account prevented matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     * @returns {Promise<MyPreventedMatchesResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-prevented-matches Binance API Documentation}\n     */\n    public myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<WebsocketApiResponse<MyPreventedMatchesResponse>> {\n        return this.websocketBase.sendMessage<MyPreventedMatchesResponse>(\n            '/myPreventedMatches'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query information about all your trades, filtered by time range.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * Notes:\n     * - If `fromId` is specified, return trades with trade ID >= `fromId`.\n     * - If `startTime` and/or `endTime` are specified, trades are filtered by execution time (`time`).\n     * - `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If `orderId` is specified, only trades related to that order are returned.\n     * - `startTime` and `endTime` cannot be used together with `orderId`.\n     * - If no condition is specified, the most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account trade history (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     * @returns {Promise<MyTradesResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-trades Binance API Documentation}\n     */\n    public myTrades(\n        requestParameters: MyTradesRequest\n    ): Promise<WebsocketApiResponse<MyTradesResponse>> {\n        return this.websocketBase.sendMessage<MyTradesResponse>(\n            '/myTrades'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query execution status of all open order lists.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Current open Order lists (USER_DATA)\n     * @param {OpenOrderListsStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<OpenOrderListsStatusResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#open-order-lists-status Binance API Documentation}\n     */\n    public openOrderListsStatus(\n        requestParameters: OpenOrderListsStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OpenOrderListsStatusResponse>> {\n        return this.websocketBase.sendMessage<OpenOrderListsStatusResponse>(\n            '/openOrderLists.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query execution status of all open orders.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight: | Parameter | Weight |\n     * | --------- | ------ |\n     * | `symbol`  |      6 |\n     * | none      |     80 |\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {OpenOrdersStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<OpenOrdersStatusResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#open-orders-status Binance API Documentation}\n     */\n    public openOrdersStatus(\n        requestParameters: OpenOrdersStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OpenOrdersStatusResponse>> {\n        return this.websocketBase.sendMessage<OpenOrdersStatusResponse>(\n            '/openOrders.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderAmendmentsResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-amendments Binance API Documentation}\n     */\n    public orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<WebsocketApiResponse<OrderAmendmentsResponse>> {\n        return this.websocketBase.sendMessage<OrderAmendmentsResponse>(\n            '/order.amendments'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Check execution status of an Order list.\n     *\n     * For execution status of individual orders, use `order.status`.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * `origClientOrderId` refers to `listClientOrderId` of the order list itself.\n     *\n     * If both `origClientOrderId` and `orderListId` parameters are specified,\n     * only `origClientOrderId` is used and `orderListId` is ignored.\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {OrderListStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListStatusResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-list-status Binance API Documentation}\n     */\n    public orderListStatus(\n        requestParameters: OrderListStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OrderListStatusResponse>> {\n        return this.websocketBase.sendMessage<OrderListStatusResponse>(\n            '/orderList.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Check execution status of an order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderStatusResponse>}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-status Binance API Documentation}\n     */\n    public orderStatus(\n        requestParameters: OrderStatusRequest\n    ): Promise<WebsocketApiResponse<OrderStatusResponse>> {\n        return this.websocketBase.sendMessage<OrderStatusResponse>(\n            '/order.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type { SessionLogonResponse, SessionLogoutResponse, SessionStatusResponse } from '../types';\n\n/**\n * AuthApi - interface\n *\n * @interface AuthApi\n */\nexport interface AuthApiInterface {\n    /**\n     * Authenticate WebSocket connection using the provided API key.\n     *\n     * After calling `session.logon`, you can omit `apiKey` and `signature` parameters for future requests that require them.\n     *\n     * Note that only one API key can be authenticated.\n     *\n     * Calling `session.logon` multiple times changes the current authenticated API key.\n     *\n     **Note:** Only Ed25519 keys are supported for this feature.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log in with API key (USER_DATA)\n     * @param {SessionLogonRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SessionLogonResponse>}\n     * @memberof AuthApiInterface\n     */\n    sessionLogon(\n        requestParameters?: SessionLogonRequest\n    ): Promise<WebsocketApiResponse<SessionLogonResponse>[]>;\n\n    /**\n     * Forget the API key previously authenticated. If the connection is not authenticated, this request does nothing.\n     *\n     * Note that the WebSocket connection stays open after `session.logout` request. You can continue using the connection, but now you will have to explicitly provide the `apiKey` and `signature` parameters where needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log out of the session\n     * @param {SessionLogoutRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SessionLogoutResponse>}\n     * @memberof AuthApiInterface\n     */\n    sessionLogout(\n        requestParameters?: SessionLogoutRequest\n    ): Promise<WebsocketApiResponse<SessionLogoutResponse>[]>;\n\n    /**\n     * Query the status of the WebSocket connection,\n     * inspecting which API key (if any) is used to authorize requests.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query session status\n     * @param {SessionStatusRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SessionStatusResponse>}\n     * @memberof AuthApiInterface\n     */\n    sessionStatus(\n        requestParameters?: SessionStatusRequest\n    ): Promise<WebsocketApiResponse<SessionStatusResponse>>;\n}\n\n/**\n * Request parameters for sessionLogon operation in AuthApi.\n * @interface SessionLogonRequest\n */\nexport interface SessionLogonRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AuthApiSessionLogon\n     */\n    readonly id?: string;\n\n    /**\n     * The value cannot be greater than `60000`. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof AuthApiSessionLogon\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for sessionLogout operation in AuthApi.\n * @interface SessionLogoutRequest\n */\nexport interface SessionLogoutRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AuthApiSessionLogout\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for sessionStatus operation in AuthApi.\n * @interface SessionStatusRequest\n */\nexport interface SessionStatusRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof AuthApiSessionStatus\n     */\n    readonly id?: string;\n}\n\n/**\n * AuthApi - object-oriented interface\n * @class AuthApi\n * @extends {WebsocketAPIBase}\n */\nexport class AuthApi implements AuthApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Authenticate WebSocket connection using the provided API key.\n     *\n     * After calling `session.logon`, you can omit `apiKey` and `signature` parameters for future requests that require them.\n     *\n     * Note that only one API key can be authenticated.\n     *\n     * Calling `session.logon` multiple times changes the current authenticated API key.\n     *\n     **Note:** Only Ed25519 keys are supported for this feature.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log in with API key (USER_DATA)\n     * @param {SessionLogonRequest} requestParameters Request parameters.\n     * @returns {Promise<SessionLogonResponse>}\n     * @memberof AuthApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-logon Binance API Documentation}\n     */\n    public sessionLogon(\n        requestParameters: SessionLogonRequest = {}\n    ): Promise<WebsocketApiResponse<SessionLogonResponse>[]> {\n        return this.websocketBase.sendMessage<SessionLogonResponse>(\n            '/session.logon'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false, isSessionLogon: true }\n        );\n    }\n\n    /**\n     * Forget the API key previously authenticated. If the connection is not authenticated, this request does nothing.\n     *\n     * Note that the WebSocket connection stays open after `session.logout` request. You can continue using the connection, but now you will have to explicitly provide the `apiKey` and `signature` parameters where needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log out of the session\n     * @param {SessionLogoutRequest} requestParameters Request parameters.\n     * @returns {Promise<SessionLogoutResponse>}\n     * @memberof AuthApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-logout Binance API Documentation}\n     */\n    public sessionLogout(\n        requestParameters: SessionLogoutRequest = {}\n    ): Promise<WebsocketApiResponse<SessionLogoutResponse>[]> {\n        return this.websocketBase.sendMessage<SessionLogoutResponse>(\n            '/session.logout'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false, isSessionLogout: true }\n        );\n    }\n\n    /**\n     * Query the status of the WebSocket connection,\n     * inspecting which API key (if any) is used to authorize requests.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query session status\n     * @param {SessionStatusRequest} requestParameters Request parameters.\n     * @returns {Promise<SessionStatusResponse>}\n     * @memberof AuthApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-status Binance API Documentation}\n     */\n    public sessionStatus(\n        requestParameters: SessionStatusRequest = {}\n    ): Promise<WebsocketApiResponse<SessionStatusResponse>> {\n        return this.websocketBase.sendMessage<SessionStatusResponse>(\n            '/session.status'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    ExchangeInfoResponse,\n    ExecutionRulesResponse,\n    PingResponse,\n    TimeResponse,\n} from '../types';\n\n/**\n * GeneralApi - interface\n *\n * @interface GeneralApi\n */\nexport interface GeneralApiInterface {\n    /**\n     * Query current exchange trading rules, rate limits, and symbol\n     * information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * Only one of `symbol`, `symbols`, `permissions` parameters can be specified.\n     * Without parameters, `exchangeInfo` displays all symbols with `[\"SPOT\", \"MARGIN\", \"LEVERAGED\"]` permissions.\n     * In order to list *all* active symbols on the exchange, you need to explicitly request all permissions.\n     * `permissions` accepts either a list of permissions, or a single permission name. E.g. `\"SPOT\"`.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<ExchangeInfoResponse>}\n     * @memberof GeneralApiInterface\n     */\n    exchangeInfo(\n        requestParameters?: ExchangeInfoRequest\n    ): Promise<WebsocketApiResponse<ExchangeInfoResponse>>;\n\n    /**\n     * Query execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:** No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<ExecutionRulesResponse>}\n     * @memberof GeneralApiInterface\n     */\n    executionRules(\n        requestParameters?: ExecutionRulesRequest\n    ): Promise<WebsocketApiResponse<ExecutionRulesResponse>>;\n\n    /**\n     * Test connectivity to the WebSocket API.\n     *\n     * Note: You can use regular WebSocket ping frames to test connectivity as well, WebSocket API will respond with pong frames as soon as possible. ping request along with time is a safe way to test request-response handling in your application.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test connectivity\n     * @param {PingRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<PingResponse>}\n     * @memberof GeneralApiInterface\n     */\n    ping(requestParameters?: PingRequest): Promise<WebsocketApiResponse<PingResponse>>;\n\n    /**\n     * Test connectivity to the WebSocket API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Check server time\n     * @param {TimeRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TimeResponse>}\n     * @memberof GeneralApiInterface\n     */\n    time(requestParameters?: TimeRequest): Promise<WebsocketApiResponse<TimeResponse>>;\n}\n\n/**\n * Request parameters for exchangeInfo operation in GeneralApi.\n * @interface ExchangeInfoRequest\n */\nexport interface ExchangeInfoRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly id?: string;\n\n    /**\n     * Describe a single symbol\n     * @type {string}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbol?: string;\n\n    /**\n     * Describe multiple symbols\n     * @type {Array<string>}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Filter symbols by permissions\n     * @type {Array<string>}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly permissions?: Array<string>;\n\n    /**\n     * Controls whether the content of the `permissionSets` field is populated or not. Defaults to `true`.\n     * @type {boolean}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly showPermissionSets?: boolean;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. Valid values: `TRADING`, `HALT`, `BREAK`. Cannot be used in combination with `symbol` or `symbols`.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof GeneralApiExchangeInfo\n     */\n    readonly symbolStatus?: ExchangeInfoSymbolStatusEnum;\n}\n\n/**\n * Request parameters for executionRules operation in GeneralApi.\n * @interface ExecutionRulesRequest\n */\nexport interface ExecutionRulesRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly id?: string;\n\n    /**\n     * Query for specified symbol.\n     * @type {string}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbol?: string;\n\n    /**\n     * Query for multiple symbols.\n     * @type {Array<string>}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Query for all symbols with the specified status. Supported values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof GeneralApiExecutionRules\n     */\n    readonly symbolStatus?: ExecutionRulesSymbolStatusEnum;\n}\n\n/**\n * Request parameters for ping operation in GeneralApi.\n * @interface PingRequest\n */\nexport interface PingRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof GeneralApiPing\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for time operation in GeneralApi.\n * @interface TimeRequest\n */\nexport interface TimeRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof GeneralApiTime\n     */\n    readonly id?: string;\n}\n\n/**\n * GeneralApi - object-oriented interface\n * @class GeneralApi\n * @extends {WebsocketAPIBase}\n */\nexport class GeneralApi implements GeneralApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Query current exchange trading rules, rate limits, and symbol\n     * information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * Only one of `symbol`, `symbols`, `permissions` parameters can be specified.\n     * Without parameters, `exchangeInfo` displays all symbols with `[\"SPOT\", \"MARGIN\", \"LEVERAGED\"]` permissions.\n     * In order to list *all* active symbols on the exchange, you need to explicitly request all permissions.\n     * `permissions` accepts either a list of permissions, or a single permission name. E.g. `\"SPOT\"`.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     * @returns {Promise<ExchangeInfoResponse>}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#exchange-info Binance API Documentation}\n     */\n    public exchangeInfo(\n        requestParameters: ExchangeInfoRequest = {}\n    ): Promise<WebsocketApiResponse<ExchangeInfoResponse>> {\n        return this.websocketBase.sendMessage<ExchangeInfoResponse>(\n            '/exchangeInfo'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:** No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     * @returns {Promise<ExecutionRulesResponse>}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#execution-rules Binance API Documentation}\n     */\n    public executionRules(\n        requestParameters: ExecutionRulesRequest = {}\n    ): Promise<WebsocketApiResponse<ExecutionRulesResponse>> {\n        return this.websocketBase.sendMessage<ExecutionRulesResponse>(\n            '/executionRules'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Test connectivity to the WebSocket API.\n     *\n     * Note: You can use regular WebSocket ping frames to test connectivity as well, WebSocket API will respond with pong frames as soon as possible. ping request along with time is a safe way to test request-response handling in your application.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test connectivity\n     * @param {PingRequest} requestParameters Request parameters.\n     * @returns {Promise<PingResponse>}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#ping Binance API Documentation}\n     */\n    public ping(requestParameters: PingRequest = {}): Promise<WebsocketApiResponse<PingResponse>> {\n        return this.websocketBase.sendMessage<PingResponse>(\n            '/ping'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Test connectivity to the WebSocket API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Check server time\n     * @param {TimeRequest} requestParameters Request parameters.\n     * @returns {Promise<TimeResponse>}\n     * @memberof GeneralApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#time Binance API Documentation}\n     */\n    public time(requestParameters: TimeRequest = {}): Promise<WebsocketApiResponse<TimeResponse>> {\n        return this.websocketBase.sendMessage<TimeResponse>(\n            '/time'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n}\n\nexport enum ExchangeInfoSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum ExecutionRulesSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    AvgPriceResponse,\n    BlockTradesHistoricalResponse,\n    DepthResponse,\n    KlinesResponse,\n    ReferencePriceCalculationResponse,\n    ReferencePriceResponse,\n    Ticker24hrResponse,\n    TickerBookResponse,\n    TickerPriceResponse,\n    TickerResponse,\n    TickerTradingDayResponse,\n    TradesAggregateResponse,\n    TradesHistoricalResponse,\n    TradesRecentResponse,\n    UiKlinesResponse,\n} from '../types';\n\n/**\n * MarketApi - interface\n *\n * @interface MarketApi\n */\nexport interface MarketApiInterface {\n    /**\n     * Get current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<AvgPriceResponse>}\n     * @memberof MarketApiInterface\n     */\n    avgPrice(requestParameters: AvgPriceRequest): Promise<WebsocketApiResponse<AvgPriceResponse>>;\n\n    /**\n     * Get block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades\n     * @param {BlockTradesHistoricalRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<BlockTradesHistoricalResponse>}\n     * @memberof MarketApiInterface\n     */\n    blockTradesHistorical(\n        requestParameters: BlockTradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<BlockTradesHistoricalResponse>>;\n\n    /**\n     * Get current order book.\n     *\n     * Note that this request returns limited market depth.\n     *\n     * If you need to continuously monitor order book updates, please consider using WebSocket Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to [maintain a local order book](/products/spot/web-socket-streams#how-to-manage-a-local-order-book-correctly).\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<DepthResponse>}\n     * @memberof MarketApiInterface\n     */\n    depth(requestParameters: DepthRequest): Promise<WebsocketApiResponse<DepthResponse>>;\n\n    /**\n     * Get klines (candlestick bars).\n     *\n     * Klines are uniquely identified by their open & close time.\n     *\n     * If you need access to real-time kline updates, please consider using WebSocket Streams:\n     * `<symbol>@kline_<interval>`\n     *\n     * If you need historical kline data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#klines).\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Klines\n     * @param {KlinesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<KlinesResponse>}\n     * @memberof MarketApiInterface\n     */\n    klines(requestParameters: KlinesRequest): Promise<WebsocketApiResponse<KlinesResponse>>;\n\n    /**\n     * Query Reference Price\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<ReferencePriceResponse>}\n     * @memberof MarketApiInterface\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceResponse>>;\n\n    /**\n     * Query Reference Price Calculation\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<ReferencePriceCalculationResponse>}\n     * @memberof MarketApiInterface\n     */\n    referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceCalculationResponse>>;\n\n    /**\n     * Get rolling window price change statistics with a custom window.\n     *\n     * This request is similar to `ticker.24hr` but statistics are computed on demand using the arbitrary window you specify.\n     *\n     **Note:** Window size precision is limited to 1 minute.\n     * While the `closeTime` is the current time of the request, `openTime` always start on a minute boundary.\n     * As such, the effective window might be up to 59999 ms wider than the requested `windowSize`.\n     *\n     * <details>\n     * <summary>Window computation example</summary>\n     *\n     * For example, a request for `\"windowSize\": \"7d\"` might result in the following window:\n     *\n     * ```javascript\n     * {\n     * \"openTime\": 1659580020000,\n     * \"closeTime\": 1660184865291\n     * }\n     * ```\n     *\n     * Time of the request – `closeTime` – is 1660184865291 (August 11, 2022 02:27:45.291).\n     * Requested window size should put the `openTime` 7 days before that – August 4, 02:27:45.291 –\n     * but due to limited precision it ends up a bit earlier: 1659580020000 (August 4, 2022 02:27:00),\n     * exactly at the start of a minute.\n     * </details>\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     * `<symbol>@ticker_<window_size>` or `!ticker_<window-size>@arr`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * | Symbols | Weight |\n     * |:-------:|:------:|\n     * |    1–50 | 4 per symbol |\n     * |  51–100 |    200 |\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported window sizes:\n     *\n     * Unit    | `windowSize` value\n     * ------- | ------------------\n     * minutes | `1m`, `2m` ... `59m`\n     * hours   | `1h`, `2h` ... `23h`\n     * days    | `1d`, `2d` ... `7d`\n     *\n     * Notes:\n     *\n     * Either `symbol` or `symbols` must be specified.\n     *\n     * Maximum number of symbols in one request: 200.\n     *\n     * Window size units cannot be combined.\n     * E.g., <code>1d 2h</code> is not supported.\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TickerResponse>}\n     * @memberof MarketApiInterface\n     */\n    ticker(requestParameters?: TickerRequest): Promise<WebsocketApiResponse<TickerResponse>>;\n\n    /**\n     * Get 24-hour rolling window price change statistics.\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     *\n     * `<symbol>@ticker` or `!ticker@arr`\n     *\n     * `<symbol>@miniTicker` or `!miniTicker@arr`\n     *\n     * If you need different window sizes,\n     *\n     * use the `ticker` request.\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 80|\n     * |symbols| 1-20 |2|\n     * | | 21-100 |40|\n     * | | 101+ |80|\n     * | |omitted| 80|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<Ticker24hrResponse>}\n     * @memberof MarketApiInterface\n     */\n    ticker24hr(\n        requestParameters?: Ticker24hrRequest\n    ): Promise<WebsocketApiResponse<Ticker24hrResponse>>;\n\n    /**\n     * Get the current best price and quantity on the order book.\n     *\n     * If you need access to real-time order book ticker updates, please\n     * consider using WebSocket Streams:\n     *\n     * `<symbol>@bookTicker`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TickerBookResponse>}\n     * @memberof MarketApiInterface\n     */\n    tickerBook(\n        requestParameters?: TickerBookRequest\n    ): Promise<WebsocketApiResponse<TickerBookResponse>>;\n\n    /**\n     * Get the latest market price for a symbol.\n     *\n     * If you need access to real-time price updates, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * `<symbol>@trade`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TickerPriceResponse>}\n     * @memberof MarketApiInterface\n     */\n    tickerPrice(\n        requestParameters?: TickerPriceRequest\n    ): Promise<WebsocketApiResponse<TickerPriceResponse>>;\n\n    /**\n     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**\n     *\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     *\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TickerTradingDayResponse>}\n     * @memberof MarketApiInterface\n     */\n    tickerTradingDay(\n        requestParameters?: TickerTradingDayRequest\n    ): Promise<WebsocketApiResponse<TickerTradingDayResponse>>;\n\n    /**\n     * Get aggregate trades.\n     *\n     * An *aggregate trade* (aggtrade) represents one or more individual\n     * trades.\n     *\n     * Trades that fill at the same time, from the same taker order, with the\n     * same price –\n     *\n     * those trades are collected into an aggregate trade with total quantity\n     * of the individual trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * If you need historical aggregate trade data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#aggtrades).\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `fromId` is specified, return aggtrades with aggregate trade ID >= `fromId`. Use `fromId` and `limit` to page through all aggtrades.\n     * - If `startTime` and/or `endTime` are specified, aggtrades are filtered by execution time (`T`). `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If no condition is specified, the most recent aggregate trades are returned.\n     *\n     * @summary Aggregate trades\n     * @param {TradesAggregateRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TradesAggregateResponse>}\n     * @memberof MarketApiInterface\n     */\n    tradesAggregate(\n        requestParameters: TradesAggregateRequest\n    ): Promise<WebsocketApiResponse<TradesAggregateResponse>>;\n\n    /**\n     * Get historical trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `fromId` is not specified, the most recent trades are returned.\n     *\n     * @summary Historical trades\n     * @param {TradesHistoricalRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TradesHistoricalResponse>}\n     * @memberof MarketApiInterface\n     */\n    tradesHistorical(\n        requestParameters: TradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<TradesHistoricalResponse>>;\n\n    /**\n     * Get recent trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@trade`\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades\n     * @param {TradesRecentRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<TradesRecentResponse>}\n     * @memberof MarketApiInterface\n     */\n    tradesRecent(\n        requestParameters: TradesRecentRequest\n    ): Promise<WebsocketApiResponse<TradesRecentResponse>>;\n\n    /**\n     * Get klines (candlestick bars) optimized for presentation.\n     *\n     * This request is similar to `klines`, having the same parameters and response. `uiKlines` return modified kline data, optimized for presentation of candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UI Klines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<UiKlinesResponse>}\n     * @memberof MarketApiInterface\n     */\n    uiKlines(requestParameters: UiKlinesRequest): Promise<WebsocketApiResponse<UiKlinesResponse>>;\n}\n\n/**\n * Request parameters for avgPrice operation in MarketApi.\n * @interface AvgPriceRequest\n */\nexport interface AvgPriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiAvgPrice\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiAvgPrice\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for blockTradesHistorical operation in MarketApi.\n * @interface BlockTradesHistoricalRequest\n */\nexport interface BlockTradesHistoricalRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiBlockTradesHistorical\n     */\n    readonly symbol: string;\n\n    /**\n     * Block trade ID to fetch from\n     * @type {number | bigint}\n     * @memberof MarketApiBlockTradesHistorical\n     */\n    readonly fromId: number | bigint;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiBlockTradesHistorical\n     */\n    readonly id?: string;\n\n    /**\n     * Default: 500; Maximum: 1000\n     * @type {number | bigint}\n     * @memberof MarketApiBlockTradesHistorical\n     */\n    readonly limit?: number | bigint;\n}\n\n/**\n * Request parameters for depth operation in MarketApi.\n * @interface DepthRequest\n */\nexport interface DepthRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiDepth\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiDepth\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiDepth\n     */\n    readonly limit?: number;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`.\n     * A status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`.\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiDepth\n     */\n    readonly symbolStatus?: DepthSymbolStatusEnum;\n}\n\n/**\n * Request parameters for klines operation in MarketApi.\n * @interface KlinesRequest\n */\nexport interface KlinesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiKlines\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketApiKlines\n     */\n    readonly interval: KlinesIntervalEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiKlines\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiKlines\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiKlines\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiKlines\n     */\n    readonly timeZone?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiKlines\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for referencePrice operation in MarketApi.\n * @interface ReferencePriceRequest\n */\nexport interface ReferencePriceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiReferencePrice\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiReferencePrice\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for referencePriceCalculation operation in MarketApi.\n * @interface ReferencePriceCalculationRequest\n */\nexport interface ReferencePriceCalculationRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiReferencePriceCalculation\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiReferencePriceCalculation\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiReferencePriceCalculation\n     */\n    readonly symbolStatus?: ReferencePriceCalculationSymbolStatusEnum;\n}\n\n/**\n * Request parameters for ticker operation in MarketApi.\n * @interface TickerRequest\n */\nexport interface TickerRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTicker\n     */\n    readonly id?: string;\n\n    /**\n     * Query ticker of a single symbol\n     * @type {string}\n     * @memberof MarketApiTicker\n     */\n    readonly symbol?: string;\n\n    /**\n     * Query ticker for multiple symbols\n     * @type {Array<string>}\n     * @memberof MarketApiTicker\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Ticker type. Supported values: FULL (default) or MINI\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTicker\n     */\n    readonly type?: TickerTypeEnum;\n\n    /**\n     * Defaults to 1d if no parameter provided.\n     * @type {'1m' | '2m' | '3m' | '4m' | '5m' | '6m' | '7m' | '8m' | '9m' | '10m' | '11m' | '12m' | '13m' | '14m' | '15m' | '16m' | '17m' | '18m' | '19m' | '20m' | '21m' | '22m' | '23m' | '24m' | '25m' | '26m' | '27m' | '28m' | '29m' | '30m' | '31m' | '32m' | '33m' | '34m' | '35m' | '36m' | '37m' | '38m' | '39m' | '40m' | '41m' | '42m' | '43m' | '44m' | '45m' | '46m' | '47m' | '48m' | '49m' | '50m' | '51m' | '52m' | '53m' | '54m' | '55m' | '56m' | '57m' | '58m' | '59m' | '1h' | '2h' | '3h' | '4h' | '5h' | '6h' | '7h' | '8h' | '9h' | '10h' | '11h' | '12h' | '13h' | '14h' | '15h' | '16h' | '17h' | '18h' | '19h' | '20h' | '21h' | '22h' | '23h' | '1d' | '2d' | '3d' | '4d' | '5d' | '6d' | '7d'}\n     * @memberof MarketApiTicker\n     */\n    readonly windowSize?: TickerWindowSizeEnum;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`. For multiple or all symbols, non-matching ones are simply excluded from the response. Valid values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTicker\n     */\n    readonly symbolStatus?: TickerSymbolStatusEnum;\n}\n\n/**\n * Request parameters for ticker24hr operation in MarketApi.\n * @interface Ticker24hrRequest\n */\nexport interface Ticker24hrRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {Array<string>}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Ticker type. Supported values: FULL (default) or MINI\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly type?: Ticker24hrTypeEnum;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`. For multiple or all symbols, non-matching ones are simply excluded from the response. Valid values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTicker24hr\n     */\n    readonly symbolStatus?: Ticker24hrSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerBook operation in MarketApi.\n * @interface TickerBookRequest\n */\nexport interface TickerBookRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTickerBook\n     */\n    readonly id?: string;\n\n    /**\n     * Query ticker for a single symbol\n     * @type {string}\n     * @memberof MarketApiTickerBook\n     */\n    readonly symbol?: string;\n\n    /**\n     * Query ticker for multiple symbols\n     * @type {Array<string>}\n     * @memberof MarketApiTickerBook\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`. For multiple or all symbols, non-matching ones are simply excluded from the response. Valid values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerBook\n     */\n    readonly symbolStatus?: TickerBookSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerPrice operation in MarketApi.\n * @interface TickerPriceRequest\n */\nexport interface TickerPriceRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly id?: string;\n\n    /**\n     * Query price for a single symbol\n     * @type {string}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbol?: string;\n\n    /**\n     * Query price for multiple symbols\n     * @type {Array<string>}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`. For multiple or all symbols, non-matching ones are simply excluded from the response. Valid values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerPrice\n     */\n    readonly symbolStatus?: TickerPriceSymbolStatusEnum;\n}\n\n/**\n * Request parameters for tickerTradingDay operation in MarketApi.\n * @interface TickerTradingDayRequest\n */\nexport interface TickerTradingDayRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {Array<string>}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbols?: Array<string>;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly timeZone?: string;\n\n    /**\n     * Ticker type. Supported values: FULL (default) or MINI\n     * @type {'FULL' | 'MINI'}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly type?: TickerTradingDayTypeEnum;\n\n    /**\n     * Filters for symbols that have this `tradingStatus`. For a single symbol, a status mismatch returns error `-1220 SYMBOL_DOES_NOT_MATCH_STATUS`. For multiple or all symbols, non-matching ones are simply excluded from the response. Valid values: `TRADING`, `HALT`, `BREAK`\n     * @type {'TRADING' | 'HALT' | 'BREAK'}\n     * @memberof MarketApiTickerTradingDay\n     */\n    readonly symbolStatus?: TickerTradingDaySymbolStatusEnum;\n}\n\n/**\n * Request parameters for tradesAggregate operation in MarketApi.\n * @interface TradesAggregateRequest\n */\nexport interface TradesAggregateRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly id?: string;\n\n    /**\n     * Aggregate trade ID to begin at\n     * @type {number | bigint}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly fromId?: number | bigint;\n\n    /**\n     * Timestamp in ms to get aggregate trades from INCLUSIVE.\n     * @type {number | bigint}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     * Timestamp in ms to get aggregate trades until INCLUSIVE.\n     * @type {number | bigint}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiTradesAggregate\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for tradesHistorical operation in MarketApi.\n * @interface TradesHistoricalRequest\n */\nexport interface TradesHistoricalRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiTradesHistorical\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTradesHistorical\n     */\n    readonly id?: string;\n\n    /**\n     * Trade ID to begin at\n     * @type {number | bigint}\n     * @memberof MarketApiTradesHistorical\n     */\n    readonly fromId?: number | bigint;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiTradesHistorical\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for tradesRecent operation in MarketApi.\n * @interface TradesRecentRequest\n */\nexport interface TradesRecentRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiTradesRecent\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiTradesRecent\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiTradesRecent\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for uiKlines operation in MarketApi.\n * @interface UiKlinesRequest\n */\nexport interface UiKlinesRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketApiUiKlines\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof MarketApiUiKlines\n     */\n    readonly interval: UiKlinesIntervalEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof MarketApiUiKlines\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiUiKlines\n     */\n    readonly startTime?: number | bigint;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof MarketApiUiKlines\n     */\n    readonly endTime?: number | bigint;\n\n    /**\n     * Default: 0 (UTC)\n     * @type {string}\n     * @memberof MarketApiUiKlines\n     */\n    readonly timeZone?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketApiUiKlines\n     */\n    readonly limit?: number;\n}\n\n/**\n * MarketApi - object-oriented interface\n * @class MarketApi\n * @extends {WebsocketAPIBase}\n */\nexport class MarketApi implements MarketApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Get current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<AvgPriceResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#avg-price Binance API Documentation}\n     */\n    public avgPrice(\n        requestParameters: AvgPriceRequest\n    ): Promise<WebsocketApiResponse<AvgPriceResponse>> {\n        return this.websocketBase.sendMessage<AvgPriceResponse>(\n            '/avgPrice'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades\n     * @param {BlockTradesHistoricalRequest} requestParameters Request parameters.\n     * @returns {Promise<BlockTradesHistoricalResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#block-trades-historical Binance API Documentation}\n     */\n    public blockTradesHistorical(\n        requestParameters: BlockTradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<BlockTradesHistoricalResponse>> {\n        return this.websocketBase.sendMessage<BlockTradesHistoricalResponse>(\n            '/blockTrades.historical'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get current order book.\n     *\n     * Note that this request returns limited market depth.\n     *\n     * If you need to continuously monitor order book updates, please consider using WebSocket Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to [maintain a local order book](/products/spot/web-socket-streams#how-to-manage-a-local-order-book-correctly).\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     * @returns {Promise<DepthResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#depth Binance API Documentation}\n     */\n    public depth(requestParameters: DepthRequest): Promise<WebsocketApiResponse<DepthResponse>> {\n        return this.websocketBase.sendMessage<DepthResponse>(\n            '/depth'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get klines (candlestick bars).\n     *\n     * Klines are uniquely identified by their open & close time.\n     *\n     * If you need access to real-time kline updates, please consider using WebSocket Streams:\n     * `<symbol>@kline_<interval>`\n     *\n     * If you need historical kline data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#klines).\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Klines\n     * @param {KlinesRequest} requestParameters Request parameters.\n     * @returns {Promise<KlinesResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#klines Binance API Documentation}\n     */\n    public klines(requestParameters: KlinesRequest): Promise<WebsocketApiResponse<KlinesResponse>> {\n        return this.websocketBase.sendMessage<KlinesResponse>(\n            '/klines'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query Reference Price\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     * @returns {Promise<ReferencePriceResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#reference-price Binance API Documentation}\n     */\n    public referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceResponse>> {\n        return this.websocketBase.sendMessage<ReferencePriceResponse>(\n            '/referencePrice'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Query Reference Price Calculation\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     * @returns {Promise<ReferencePriceCalculationResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#reference-price-calculation Binance API Documentation}\n     */\n    public referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceCalculationResponse>> {\n        return this.websocketBase.sendMessage<ReferencePriceCalculationResponse>(\n            '/referencePrice.calculation'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get rolling window price change statistics with a custom window.\n     *\n     * This request is similar to `ticker.24hr` but statistics are computed on demand using the arbitrary window you specify.\n     *\n     **Note:** Window size precision is limited to 1 minute.\n     * While the `closeTime` is the current time of the request, `openTime` always start on a minute boundary.\n     * As such, the effective window might be up to 59999 ms wider than the requested `windowSize`.\n     *\n     * <details>\n     * <summary>Window computation example</summary>\n     *\n     * For example, a request for `\"windowSize\": \"7d\"` might result in the following window:\n     *\n     * ```javascript\n     * {\n     * \"openTime\": 1659580020000,\n     * \"closeTime\": 1660184865291\n     * }\n     * ```\n     *\n     * Time of the request – `closeTime` – is 1660184865291 (August 11, 2022 02:27:45.291).\n     * Requested window size should put the `openTime` 7 days before that – August 4, 02:27:45.291 –\n     * but due to limited precision it ends up a bit earlier: 1659580020000 (August 4, 2022 02:27:00),\n     * exactly at the start of a minute.\n     * </details>\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     * `<symbol>@ticker_<window_size>` or `!ticker_<window-size>@arr`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * | Symbols | Weight |\n     * |:-------:|:------:|\n     * |    1–50 | 4 per symbol |\n     * |  51–100 |    200 |\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported window sizes:\n     *\n     * Unit    | `windowSize` value\n     * ------- | ------------------\n     * minutes | `1m`, `2m` ... `59m`\n     * hours   | `1h`, `2h` ... `23h`\n     * days    | `1d`, `2d` ... `7d`\n     *\n     * Notes:\n     *\n     * Either `symbol` or `symbols` must be specified.\n     *\n     * Maximum number of symbols in one request: 200.\n     *\n     * Window size units cannot be combined.\n     * E.g., <code>1d 2h</code> is not supported.\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     * @returns {Promise<TickerResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker Binance API Documentation}\n     */\n    public ticker(\n        requestParameters: TickerRequest = {}\n    ): Promise<WebsocketApiResponse<TickerResponse>> {\n        return this.websocketBase.sendMessage<TickerResponse>(\n            '/ticker'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get 24-hour rolling window price change statistics.\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     *\n     * `<symbol>@ticker` or `!ticker@arr`\n     *\n     * `<symbol>@miniTicker` or `!miniTicker@arr`\n     *\n     * If you need different window sizes,\n     *\n     * use the `ticker` request.\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 80|\n     * |symbols| 1-20 |2|\n     * | | 21-100 |40|\n     * | | 101+ |80|\n     * | |omitted| 80|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     * @returns {Promise<Ticker24hrResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker24hr Binance API Documentation}\n     */\n    public ticker24hr(\n        requestParameters: Ticker24hrRequest = {}\n    ): Promise<WebsocketApiResponse<Ticker24hrResponse>> {\n        return this.websocketBase.sendMessage<Ticker24hrResponse>(\n            '/ticker.24hr'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get the current best price and quantity on the order book.\n     *\n     * If you need access to real-time order book ticker updates, please\n     * consider using WebSocket Streams:\n     *\n     * `<symbol>@bookTicker`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookRequest} requestParameters Request parameters.\n     * @returns {Promise<TickerBookResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-book Binance API Documentation}\n     */\n    public tickerBook(\n        requestParameters: TickerBookRequest = {}\n    ): Promise<WebsocketApiResponse<TickerBookResponse>> {\n        return this.websocketBase.sendMessage<TickerBookResponse>(\n            '/ticker.book'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get the latest market price for a symbol.\n     *\n     * If you need access to real-time price updates, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * `<symbol>@trade`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<TickerPriceResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-price Binance API Documentation}\n     */\n    public tickerPrice(\n        requestParameters: TickerPriceRequest = {}\n    ): Promise<WebsocketApiResponse<TickerPriceResponse>> {\n        return this.websocketBase.sendMessage<TickerPriceResponse>(\n            '/ticker.price'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**\n     *\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     *\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     * @returns {Promise<TickerTradingDayResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-trading-day Binance API Documentation}\n     */\n    public tickerTradingDay(\n        requestParameters: TickerTradingDayRequest = {}\n    ): Promise<WebsocketApiResponse<TickerTradingDayResponse>> {\n        return this.websocketBase.sendMessage<TickerTradingDayResponse>(\n            '/ticker.tradingDay'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get aggregate trades.\n     *\n     * An *aggregate trade* (aggtrade) represents one or more individual\n     * trades.\n     *\n     * Trades that fill at the same time, from the same taker order, with the\n     * same price –\n     *\n     * those trades are collected into an aggregate trade with total quantity\n     * of the individual trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * If you need historical aggregate trade data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#aggtrades).\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `fromId` is specified, return aggtrades with aggregate trade ID >= `fromId`. Use `fromId` and `limit` to page through all aggtrades.\n     * - If `startTime` and/or `endTime` are specified, aggtrades are filtered by execution time (`T`). `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If no condition is specified, the most recent aggregate trades are returned.\n     *\n     * @summary Aggregate trades\n     * @param {TradesAggregateRequest} requestParameters Request parameters.\n     * @returns {Promise<TradesAggregateResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-aggregate Binance API Documentation}\n     */\n    public tradesAggregate(\n        requestParameters: TradesAggregateRequest\n    ): Promise<WebsocketApiResponse<TradesAggregateResponse>> {\n        return this.websocketBase.sendMessage<TradesAggregateResponse>(\n            '/trades.aggregate'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get historical trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `fromId` is not specified, the most recent trades are returned.\n     *\n     * @summary Historical trades\n     * @param {TradesHistoricalRequest} requestParameters Request parameters.\n     * @returns {Promise<TradesHistoricalResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-historical Binance API Documentation}\n     */\n    public tradesHistorical(\n        requestParameters: TradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<TradesHistoricalResponse>> {\n        return this.websocketBase.sendMessage<TradesHistoricalResponse>(\n            '/trades.historical'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get recent trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@trade`\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades\n     * @param {TradesRecentRequest} requestParameters Request parameters.\n     * @returns {Promise<TradesRecentResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-recent Binance API Documentation}\n     */\n    public tradesRecent(\n        requestParameters: TradesRecentRequest\n    ): Promise<WebsocketApiResponse<TradesRecentResponse>> {\n        return this.websocketBase.sendMessage<TradesRecentResponse>(\n            '/trades.recent'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Get klines (candlestick bars) optimized for presentation.\n     *\n     * This request is similar to `klines`, having the same parameters and response. `uiKlines` return modified kline data, optimized for presentation of candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UI Klines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     * @returns {Promise<UiKlinesResponse>}\n     * @memberof MarketApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ui-klines Binance API Documentation}\n     */\n    public uiKlines(\n        requestParameters: UiKlinesRequest\n    ): Promise<WebsocketApiResponse<UiKlinesResponse>> {\n        return this.websocketBase.sendMessage<UiKlinesResponse>(\n            '/uiKlines'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n}\n\nexport enum DepthSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum KlinesIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum ReferencePriceCalculationSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum TickerWindowSizeEnum {\n    WINDOW_SIZE_1m = '1m',\n    WINDOW_SIZE_2m = '2m',\n    WINDOW_SIZE_3m = '3m',\n    WINDOW_SIZE_4m = '4m',\n    WINDOW_SIZE_5m = '5m',\n    WINDOW_SIZE_6m = '6m',\n    WINDOW_SIZE_7m = '7m',\n    WINDOW_SIZE_8m = '8m',\n    WINDOW_SIZE_9m = '9m',\n    WINDOW_SIZE_10m = '10m',\n    WINDOW_SIZE_11m = '11m',\n    WINDOW_SIZE_12m = '12m',\n    WINDOW_SIZE_13m = '13m',\n    WINDOW_SIZE_14m = '14m',\n    WINDOW_SIZE_15m = '15m',\n    WINDOW_SIZE_16m = '16m',\n    WINDOW_SIZE_17m = '17m',\n    WINDOW_SIZE_18m = '18m',\n    WINDOW_SIZE_19m = '19m',\n    WINDOW_SIZE_20m = '20m',\n    WINDOW_SIZE_21m = '21m',\n    WINDOW_SIZE_22m = '22m',\n    WINDOW_SIZE_23m = '23m',\n    WINDOW_SIZE_24m = '24m',\n    WINDOW_SIZE_25m = '25m',\n    WINDOW_SIZE_26m = '26m',\n    WINDOW_SIZE_27m = '27m',\n    WINDOW_SIZE_28m = '28m',\n    WINDOW_SIZE_29m = '29m',\n    WINDOW_SIZE_30m = '30m',\n    WINDOW_SIZE_31m = '31m',\n    WINDOW_SIZE_32m = '32m',\n    WINDOW_SIZE_33m = '33m',\n    WINDOW_SIZE_34m = '34m',\n    WINDOW_SIZE_35m = '35m',\n    WINDOW_SIZE_36m = '36m',\n    WINDOW_SIZE_37m = '37m',\n    WINDOW_SIZE_38m = '38m',\n    WINDOW_SIZE_39m = '39m',\n    WINDOW_SIZE_40m = '40m',\n    WINDOW_SIZE_41m = '41m',\n    WINDOW_SIZE_42m = '42m',\n    WINDOW_SIZE_43m = '43m',\n    WINDOW_SIZE_44m = '44m',\n    WINDOW_SIZE_45m = '45m',\n    WINDOW_SIZE_46m = '46m',\n    WINDOW_SIZE_47m = '47m',\n    WINDOW_SIZE_48m = '48m',\n    WINDOW_SIZE_49m = '49m',\n    WINDOW_SIZE_50m = '50m',\n    WINDOW_SIZE_51m = '51m',\n    WINDOW_SIZE_52m = '52m',\n    WINDOW_SIZE_53m = '53m',\n    WINDOW_SIZE_54m = '54m',\n    WINDOW_SIZE_55m = '55m',\n    WINDOW_SIZE_56m = '56m',\n    WINDOW_SIZE_57m = '57m',\n    WINDOW_SIZE_58m = '58m',\n    WINDOW_SIZE_59m = '59m',\n    WINDOW_SIZE_1h = '1h',\n    WINDOW_SIZE_2h = '2h',\n    WINDOW_SIZE_3h = '3h',\n    WINDOW_SIZE_4h = '4h',\n    WINDOW_SIZE_5h = '5h',\n    WINDOW_SIZE_6h = '6h',\n    WINDOW_SIZE_7h = '7h',\n    WINDOW_SIZE_8h = '8h',\n    WINDOW_SIZE_9h = '9h',\n    WINDOW_SIZE_10h = '10h',\n    WINDOW_SIZE_11h = '11h',\n    WINDOW_SIZE_12h = '12h',\n    WINDOW_SIZE_13h = '13h',\n    WINDOW_SIZE_14h = '14h',\n    WINDOW_SIZE_15h = '15h',\n    WINDOW_SIZE_16h = '16h',\n    WINDOW_SIZE_17h = '17h',\n    WINDOW_SIZE_18h = '18h',\n    WINDOW_SIZE_19h = '19h',\n    WINDOW_SIZE_20h = '20h',\n    WINDOW_SIZE_21h = '21h',\n    WINDOW_SIZE_22h = '22h',\n    WINDOW_SIZE_23h = '23h',\n    WINDOW_SIZE_1d = '1d',\n    WINDOW_SIZE_2d = '2d',\n    WINDOW_SIZE_3d = '3d',\n    WINDOW_SIZE_4d = '4d',\n    WINDOW_SIZE_5d = '5d',\n    WINDOW_SIZE_6d = '6d',\n    WINDOW_SIZE_7d = '7d',\n}\n\nexport enum TickerSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum Ticker24hrTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum Ticker24hrSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerBookSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerPriceSymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum TickerTradingDayTypeEnum {\n    FULL = 'FULL',\n    MINI = 'MINI',\n}\n\nexport enum TickerTradingDaySymbolStatusEnum {\n    TRADING = 'TRADING',\n    HALT = 'HALT',\n    BREAK = 'BREAK',\n}\n\nexport enum UiKlinesIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    OpenOrdersCancelAllResponse,\n    OrderAmendKeepPriorityResponse,\n    OrderCancelReplaceResponse,\n    OrderCancelResponse,\n    OrderListCancelResponse,\n    OrderListPlaceOcoResponse,\n    OrderListPlaceOpoResponse,\n    OrderListPlaceOpocoResponse,\n    OrderListPlaceOtoResponse,\n    OrderListPlaceOtocoResponse,\n    OrderListPlaceResponse,\n    OrderPlaceResponse,\n    OrderTestResponse,\n    SorOrderPlaceResponse,\n    SorOrderTestResponse,\n} from '../types';\n\n/**\n * TradeApi - interface\n *\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n    /**\n     * Cancel all open orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel open orders (TRADE)\n     * @param {OpenOrdersCancelAllRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OpenOrdersCancelAllResponse>}\n     * @memberof TradeApiInterface\n     */\n    openOrdersCancelAll(\n        requestParameters: OpenOrdersCancelAllRequest\n    ): Promise<WebsocketApiResponse<OpenOrdersCancelAllResponse>>;\n\n    /**\n     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [Order Amend Keep Priority FAQ](/products/spot/faqs/order_amend_keep_priority) to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderAmendKeepPriorityResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<WebsocketApiResponse<OrderAmendKeepPriorityResponse>>;\n\n    /**\n     * Cancel an active order.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` parameters are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `newClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * If you cancel an order that is a part of an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {OrderCancelRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderCancelResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderCancel(\n        requestParameters: OrderCancelRequest\n    ): Promise<WebsocketApiResponse<OrderCancelResponse>>;\n\n    /**\n     * * Cancel an existing order and immediately place a new order instead of the canceled one.\n     * A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * You can only cancel an individual order from an orderList using this method, but the result is the same as canceling the entire orderList.not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to the [`order.place`](#order-place) request,\n     * additional mandatory parameters (*) are determined by the new order `type`.\n     *\n     * Available `cancelReplaceMode` options:\n     *\n     * `STOP_ON_FAILURE` – if cancellation request fails, new order placement will not be attempted.\n     * `ALLOW_FAILURE` – new order placement will be attempted even if the cancel request fails.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Notes:\n     *\n     * If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `cancelNewClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the placed order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * The new order can reuse old `clientOrderId` of the canceled order.\n     *\n     * This cancel-replace operation is **not transactional**.\n     *\n     * If one operation succeeds but the other one fails, the successful operation is still executed.\n     *\n     * For example, in `STOP_ON_FAILURE` mode, if the new order placement fails, the old order is still canceled.\n     *\n     * Filters and order count limits are evaluated before cancellation and order placement occurs.\n     *\n     * If new order placement is not attempted, your order count is still incremented.\n     *\n     * Like [`order.cancel`](#order-cancel), if you cancel an individual order from an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel and replace order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderCancelReplaceResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<WebsocketApiResponse<OrderCancelReplaceResponse>>;\n\n    /**\n     * Cancel an active order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderListId` and `listClientOrderId` parameters are provided, the `orderListId` is searched first, then the `listClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * Canceling an individual order with [`order.cancel`](#order-cancel) will cancel the entire order list as well.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {OrderListCancelRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListCancelResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListCancel(\n        requestParameters: OrderListCancelRequest\n    ): Promise<WebsocketApiResponse<OrderListCancelResponse>>;\n\n    /**\n     * Send in a new one-cancels-the-other (OCO) pair:\n     * `LIMIT_MAKER` + `STOP_LOSS`/`STOP_LOSS_LIMIT` orders (called *legs*),\n     * where activation of one order immediately cancels the other.\n     *\n     * This adds 1 order to `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * `listClientOrderId` parameter specifies `listClientOrderId` for the OCO pair.\n     *\n     * A new OCO with the same `listClientOrderId` is accepted only when the previous one is filled or completely expired.\n     *\n     * `listClientOrderId` is distinct from `clientOrderId` of individual orders.\n     *\n     * `limitClientOrderId` and `stopClientOrderId` specify `clientOrderId` values for both legs of the OCO.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Price restrictions on the legs:\n     *\n     * | `side` | Price relation |\n     * | ------ | -------------- |\n     * | `BUY`  | `price` < market price < `stopPrice` |\n     * | `SELL` | `price` > market price > `stopPrice` |\n     *\n     * Both legs have the same `quantity`.\n     *\n     * However, you can set different iceberg quantity for individual legs.\n     *\n     * If `stopIcebergQty` is used, `stopLimitTimeInForce` must be `GTC`.\n     *\n     * `trailingDelta` applies only to the `STOP_LOSS`/`STOP_LOSS_LIMIT` leg of the OCO.\n     *\n     * @summary Place new OCO - Deprecated (TRADE)\n     * @param {OrderListPlaceRequest} requestParameters Request parameters.\n     * @deprecated\n     * @returns {Promise<OrderListPlaceResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlace(\n        requestParameters: OrderListPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceResponse>>;\n\n    /**\n     * Send in an one-cancels-the-other (OCO) pair, where activation of one order immediately cancels the other.\n     *\n     * An OCO has 2 orders called the **above order** and **below order**.\n     *\n     * One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be\n     * `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     *\n     * Price restrictions:\n     * If the OCO is on the `SELL` side:\n     * `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT`\n     * `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT\n     * stopPrice`\n     * If the OCO is on the `BUY` side:\n     * `LIMIT_MAKER` `price` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     *  OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Place new Order list - OCO (TRADE)\n     * @param {OrderListPlaceOcoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListPlaceOcoResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlaceOco(\n        requestParameters: OrderListPlaceOcoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOcoResponse>>;\n\n    /**\n     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * OPOs add 2 orders to the EXCHANGE_MAX_NUM_ORDERS filter and MAX_NUM_ORDERS filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPO (TRADE)\n     * @param {OrderListPlaceOpoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListPlaceOpoResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlaceOpo(\n        requestParameters: OrderListPlaceOpoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpoResponse>>;\n\n    /**\n     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPOCO (TRADE)\n     * @param {OrderListPlaceOpocoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListPlaceOpocoResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlaceOpoco(\n        requestParameters: OrderListPlaceOpocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpocoResponse>>;\n\n    /**\n     * Places an OTO.\n     *\n     * An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     *\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the\n     * working order goes on the order book.\n     *\n     * The second order is called the **pending order**. It can be any order type except for `MARKET` orders using\n     * parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets\n     **fully filled**.\n     *\n     * If either the working order or the pending order is cancelled individually, the other order in the order list\n     * will also be canceled or expired.\n     *\n     * When the order list is placed, if the working order gets **immediately fully filled**, the placement response\n     * will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to\n     * query the status of the pending order again to see its updated status.\n     *\n     * OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` =`STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary Place new Order list - OTO (TRADE)\n     * @param {OrderListPlaceOtoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListPlaceOtoResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlaceOto(\n        requestParameters: OrderListPlaceOtoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtoResponse>>;\n\n    /**\n     * Place an OTOCO.\n     *\n     * An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * The behavior of the working order is the same as the [OTO](#order-list-place-oto).\n     * OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-place-oco).\n     * OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`          |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`         |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * `pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary Place new Order list - OTOCO (TRADE)\n     * @param {OrderListPlaceOtocoRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderListPlaceOtocoResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderListPlaceOtoco(\n        requestParameters: OrderListPlaceOtocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtocoResponse>>;\n\n    /**\n     * Send in a new order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * <a id=\"order-type\">Certain parameters (*)</a> become mandatory based on the order `type`:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Mandatory parameters</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <ul>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code> or <code>quoteOrderQty</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Supported order types:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Description</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <p>\n     * Buy or sell <code>quantity</code> at the specified <code>price</code> or better.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <p>\n     * <code>LIMIT</code> order that will be rejected if it immediately matches and trades as a taker.\n     * </p>\n     * <p>\n     * This order type is also known as a POST-ONLY order.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <p>\n     * Buy or sell at the best available market price.\n     * </p>\n     * <ul>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quantity</code> parameter\n     * specifies the amount of the <em>base asset</em> you want to buy or sell.\n     * Actually executed quantity of the quote asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY order on BTCUSDT for <code>\"quantity\": \"0.1000\"</code>\n     * specifies that you want to buy 0.1 BTC at the best available price.\n     * If there is not enough BTC at the best price, keep buying at the next best price,\n     * until either your order is filled, or you run out of USDT, or market runs out of BTC.\n     * </p>\n     * </li>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quoteOrderQty</code> parameter\n     * specifies the amount of the <em>quote asset</em> you want to spend (when buying) or receive (when selling).\n     * Actually executed quantity of the base asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY on BTCUSDT for <code>\"quoteOrderQty\": \"100.00\"</code>\n     * specifies that you want to buy as much BTC as you can for 100 USDT at the best available price.\n     * Similarly, a SELL order will sell as much available BTC as needed for you to receive 100 USDT\n     * (before commission).\n     * </p>\n     * </li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <p>\n     * Execute a <code>MARKET</code> order for given <code>quantity</code> when specified conditions are met.\n     * </p>\n     * <p>\n     * I.e., when <code>stopPrice</code> is reached, or when <code>trailingDelta</code> is activated.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Place a <code>LIMIT</code> order with given parameters when specified conditions are met.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS_LIMIT</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * <a id=\"pegged-orders-info\"></a>\n     * Notes on using parameters for Pegged Orders:\n     *\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * <a id=\"timeInForce\"></a>\n     *\n     * Available `timeInForce` options,\n     * setting how long the order should be active before expiration:\n     *\n     * TIF  | Description\n     * ----- | --------------\n     * `GTC` | **Good 'til Canceled** – the order will remain on the book until you cancel it, or the order is completely filled.\n     * `IOC` | **Immediate or Cancel** – the order will be filled for as much as possible, the unfilled quantity immediately expires.\n     * `FOK` | **Fill or Kill** – the order will expire unless it cannot be immediately filled for the entire quantity.\n     *\n     * Notes:\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Any `LIMIT` or `LIMIT_MAKER` order can be made into an iceberg order by specifying the `icebergQty`.\n     *\n     * An order with an `icebergQty` must have `timeInForce` set to `GTC`.\n     *\n     * Trigger order price rules for `STOP_LOSS`/`TAKE_PROFIT` orders:\n     *\n     * `stopPrice` must be above market price: `STOP_LOSS BUY`, `TAKE_PROFIT SELL`\n     * `stopPrice` must be below market price: `STOP_LOSS SELL`, `TAKE_PROFIT BUY`\n     *\n     * `MARKET` orders using `quoteOrderQty` follow [`LOT_SIZE`](/products/spot/filters#lot_size) filter rules.\n     *\n     * The order will execute a quantity that has notional value as close as possible to requested `quoteOrderQty`.\n     *\n     * @summary Place new order (TRADE)\n     * @param {OrderPlaceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderPlaceResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderPlace(\n        requestParameters: OrderPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderPlaceResponse>>;\n\n    /**\n     * Test order placement.\n     *\n     * Validates new order parameters and verifies your signature\n     * but does not send the order into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<OrderTestResponse>}\n     * @memberof TradeApiInterface\n     */\n    orderTest(\n        requestParameters: OrderTestRequest\n    ): Promise<WebsocketApiResponse<OrderTestResponse>>;\n\n    /**\n     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `sor.order.place` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary Place new order using SOR (TRADE)\n     * @param {SorOrderPlaceRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SorOrderPlaceResponse>}\n     * @memberof TradeApiInterface\n     */\n    sorOrderPlace(\n        requestParameters: SorOrderPlaceRequest\n    ): Promise<WebsocketApiResponse<SorOrderPlaceResponse>>;\n\n    /**\n     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SorOrderTestResponse>}\n     * @memberof TradeApiInterface\n     */\n    sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<WebsocketApiResponse<SorOrderTestResponse>>;\n}\n\n/**\n * Request parameters for openOrdersCancelAll operation in TradeApi.\n * @interface OpenOrdersCancelAllRequest\n */\nexport interface OpenOrdersCancelAllRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOpenOrdersCancelAll\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOpenOrdersCancelAll\n     */\n    readonly id?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOpenOrdersCancelAll\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderAmendKeepPriority operation in TradeApi.\n * @interface OrderAmendKeepPriorityRequest\n */\nexport interface OrderAmendKeepPriorityRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly symbol: string;\n\n    /**\n     * `newQty` must be greater than 0 and less than the order's quantity.\n     * @type {number}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly newQty: number;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly id?: string;\n\n    /**\n     * `orderId` or `origClientOrderId` must be sent\n     * @type {number | bigint}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     * `orderId` or `origClientOrderId` must be sent\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * The new client order ID for the order after being amended. <br> If not sent, one will be randomly generated. <br> It is possible to reuse the current clientOrderId by sending it as the `newClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderAmendKeepPriority\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderCancel operation in TradeApi.\n * @interface OrderCancelRequest\n */\nexport interface OrderCancelRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly id?: string;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly orderId?: number | bigint;\n\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly origClientOrderId?: string;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n     * @type {'ONLY_NEW' | 'ONLY_PARTIALLY_FILLED'}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly cancelRestrictions?: OrderCancelCancelRestrictionsEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderCancel\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderCancelReplace operation in TradeApi.\n * @interface OrderCancelReplaceRequest\n */\nexport interface OrderCancelReplaceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly symbol: string;\n\n    /**\n     * The allowed values are: <br/> `STOP_ON_FAILURE` - If the cancel request fails, the new order placement will not be attempted. <br/> `ALLOW_FAILURE` - new order placement will be attempted even if cancel request fails.\n     * @type {'STOP_ON_FAILURE' | 'ALLOW_FAILURE'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelReplaceMode: OrderCancelReplaceCancelReplaceModeEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly side: OrderCancelReplaceSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly type: OrderCancelReplaceTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly id?: string;\n\n    /**\n     * Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br>If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br>If both conditions are not met the request will be rejected.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelOrderId?: number | bigint;\n\n    /**\n     * Either `cancelOrderId` or `cancelOrigClientOrderId` must be sent. <br></br> If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. <br></br> If both conditions are not met the request will be rejected.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelOrigClientOrderId?: string;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelNewClientOrderId?: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly timeInForce?: OrderCancelReplaceTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly price?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     * Used to identify the new order.\n     * @type {string}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Allowed values: <br/> `ACK`, `RESULT`, `FULL` <br/> `MARKET` and `LIMIT` orders types default to `FULL`; all other orders default to `ACK`\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly newOrderRespType?: OrderCancelReplaceNewOrderRespTypeEnum;\n\n    /**\n     * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly trailingDelta?: number;\n\n    /**\n     * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly icebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly strategyType?: number;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly selfTradePreventionMode?: OrderCancelReplaceSelfTradePreventionModeEnum;\n\n    /**\n     * Supported values: <br>`ONLY_NEW` - Cancel will succeed if the order status is `NEW`.<br> `ONLY_PARTIALLY_FILLED` - Cancel will succeed if order status is `PARTIALLY_FILLED`.\n     * @type {'ONLY_NEW' | 'ONLY_PARTIALLY_FILLED'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly cancelRestrictions?: OrderCancelReplaceCancelRestrictionsEnum;\n\n    /**\n     * Supported values: <br> `DO_NOTHING` (default)- will only attempt to cancel the order if account has not exceeded the unfilled order rate limit<br> `CANCEL_ONLY` - will always cancel the order\n     * @type {'DO_NOTHING' | 'CANCEL_ONLY'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly orderRateLimitExceededMode?: OrderCancelReplaceOrderRateLimitExceededModeEnum;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG` <br> See Pegged Orders\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegPriceType?: OrderCancelReplacePegPriceTypeEnum;\n\n    /**\n     * Price level to peg the price to (max: 100) <br> See Pegged Orders\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported <br> See Pegged Orders\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly pegOffsetType?: OrderCancelReplacePegOffsetTypeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderCancelReplace\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListCancel operation in TradeApi.\n * @interface OrderListCancelRequest\n */\nexport interface OrderListCancelRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly symbol: string;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly id?: string;\n\n    /**\n     * Either `orderListId` or `listClientOrderId` must be provided\n     * @type {number}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly orderListId?: number;\n\n    /**\n     * Either `orderListId` or `listClientOrderId` must be provided\n     * @type {string}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Used to uniquely identify this cancel. Automatically generated by default.\n     * @type {string}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListCancel\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlace operation in TradeApi.\n * @interface OrderListPlaceRequest\n */\nexport interface OrderListPlaceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly side: OrderListPlaceSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly price: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly quantity: number;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly id?: string;\n\n    /**\n     * A unique Id for the entire orderList\n     * @type {string}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * A unique Id for the limit order\n     * @type {string}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly limitClientOrderId?: string;\n\n    /**\n     * Used to make the `LIMIT_MAKER` leg an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly limitIcebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly limitStrategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly limitStrategyType?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopPrice?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly trailingDelta?: number;\n\n    /**\n     * A unique Id for the stop loss/stop loss limit leg\n     * @type {string}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopClientOrderId?: string;\n\n    /**\n     * If provided, `stopLimitTimeInForce` is required.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopLimitPrice?: number;\n\n    /**\n     * Valid values are `GTC`/`FOK`/`IOC`\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopLimitTimeInForce?: OrderListPlaceStopLimitTimeInForceEnum;\n\n    /**\n     * Used with `STOP_LOSS_LIMIT` leg to make an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopIcebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopStrategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly stopStrategyType?: number;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly newOrderRespType?: OrderListPlaceNewOrderRespTypeEnum;\n\n    /**\n     * The allowed values are dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceSelfTradePreventionModeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlace\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlaceOco operation in TradeApi.\n * @interface OrderListPlaceOcoRequest\n */\nexport interface OrderListPlaceOcoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly symbol: string;\n\n    /**\n     * `BUY` or `SELL`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly side: OrderListPlaceOcoSideEnum;\n\n    /**\n     * Quantity for both orders of the order list.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveType: OrderListPlaceOcoAboveTypeEnum;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowType: OrderListPlaceOcoBelowTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly id?: string;\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 `aboveClientOrderId` and the `belowClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Arbitrary unique ID among open orders for the above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveClientOrderId?: string;\n\n    /**\n     * Note that this can only be used if `aboveTimeInForce` is `GTC`.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveIcebergQty?: number | bigint;\n\n    /**\n     * Can be used if `aboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly abovePrice?: number;\n\n    /**\n     * Can be used if `aboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `aboveStopPrice` or `aboveTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveTrailingDelta?: number | bigint;\n\n    /**\n     * Required if `aboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveTimeInForce?: OrderListPlaceOcoAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly aboveStrategyType?: number;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly abovePegPriceType?: OrderListPlaceOcoAbovePegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly abovePegOffsetType?: OrderListPlaceOcoAbovePegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly abovePegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowClientOrderId?: string;\n\n    /**\n     * Note that this can only be used if `belowTimeInForce` is `GTC`.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowIcebergQty?: number | bigint;\n\n    /**\n     * Can be used if `belowType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowPrice?: number;\n\n    /**\n     * Can be used if `belowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `belowStopPrice` or `belowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowTrailingDelta?: number | bigint;\n\n    /**\n     * Required if `belowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowTimeInForce?: OrderListPlaceOcoBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowPegPriceType?: OrderListPlaceOcoBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowPegOffsetType?: OrderListPlaceOcoBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly belowPegOffsetValue?: number;\n\n    /**\n     * Select response format: `ACK`, `RESULT`, `FULL`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly newOrderRespType?: OrderListPlaceOcoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceOcoSelfTradePreventionModeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlaceOpo operation in TradeApi.\n * @interface OrderListPlaceOpoRequest\n */\nexport interface OrderListPlaceOpoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingType: OrderListPlaceOpoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingSide: OrderListPlaceOpoWorkingSideEnum;\n\n    /**\n     * Price for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n     * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingType: OrderListPlaceOpoPendingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingSide: OrderListPlaceOpoPendingSideEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly id?: string;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly newOrderRespType?: OrderListPlaceOpoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceOpoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingTimeInForce?: OrderListPlaceOpoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingPegPriceType?: OrderListPlaceOpoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingPegOffsetType?: OrderListPlaceOpoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingClientOrderId?: string;\n\n    /**\n     * Price for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingPrice?: number;\n\n    /**\n     * Stop price for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingStopPrice?: number;\n\n    /**\n     * Trailing delta for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingTimeInForce` is `GTC` or if `pendingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingTimeInForce?: OrderListPlaceOpoPendingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingPegPriceType?: OrderListPlaceOpoPendingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingPegOffsetType?: OrderListPlaceOpoPendingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly pendingPegOffsetValue?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpo\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlaceOpoco operation in TradeApi.\n * @interface OrderListPlaceOpocoRequest\n */\nexport interface OrderListPlaceOpocoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingType: OrderListPlaceOpocoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingSide: OrderListPlaceOpocoWorkingSideEnum;\n\n    /**\n     * Price for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingSide: OrderListPlaceOpocoPendingSideEnum;\n\n    /**\n     * Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveType: OrderListPlaceOpocoPendingAboveTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly id?: string;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly newOrderRespType?: OrderListPlaceOpocoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceOpocoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingTimeInForce?: OrderListPlaceOpocoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingPegPriceType?: OrderListPlaceOpocoWorkingPegPriceTypeEnum;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingPegOffsetType?: OrderListPlaceOpocoWorkingPegOffsetTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAbovePrice?: number;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingAboveTimeInForce` is `GTC` or `pendingAboveType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveIcebergQty?: number;\n\n    /**\n     * Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveTimeInForce?: OrderListPlaceOpocoPendingAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAboveStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAbovePegPriceType?: OrderListPlaceOpocoPendingAbovePegPriceTypeEnum;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAbovePegOffsetType?: OrderListPlaceOpocoPendingAbovePegOffsetTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingAbovePegOffsetValue?: number;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowType?: OrderListPlaceOpocoPendingBelowTypeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowPrice?: number;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingBelowTimeInForce` is `GTC` or `pendingBelowType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowTimeInForce?: OrderListPlaceOpocoPendingBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowPegPriceType?: OrderListPlaceOpocoPendingBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowPegOffsetType?: OrderListPlaceOpocoPendingBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly pendingBelowPegOffsetValue?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOpoco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlaceOto operation in TradeApi.\n * @interface OrderListPlaceOtoRequest\n */\nexport interface OrderListPlaceOtoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingType: OrderListPlaceOtoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingSide: OrderListPlaceOtoWorkingSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Types](/products/spot/enums#ordertypes). Note that `MARKET` orders using `quoteOrderQty` are not supported.\n     * @type {'LIMIT' | 'MARKET' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingType: OrderListPlaceOtoPendingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingSide: OrderListPlaceOtoPendingSideEnum;\n\n    /**\n     * Sets the quantity for the pending order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingQuantity: number;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly id?: string;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly newOrderRespType?: OrderListPlaceOtoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceOtoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingTimeInForce?: OrderListPlaceOtoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingPegPriceType?: OrderListPlaceOtoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingPegOffsetType?: OrderListPlaceOtoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingClientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingPrice?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingStopPrice?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingTimeInForce` is `GTC` or if `pendingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingTimeInForce?: OrderListPlaceOtoPendingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingStrategyType?: number;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingPegOffsetType?: OrderListPlaceOtoPendingPegOffsetTypeEnum;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingPegPriceType?: OrderListPlaceOtoPendingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly pendingPegOffsetValue?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOto\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderListPlaceOtoco operation in TradeApi.\n * @interface OrderListPlaceOtocoRequest\n */\nexport interface OrderListPlaceOtocoRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly symbol: string;\n\n    /**\n     * Supported values: `LIMIT`, `LIMIT_MAKER`\n     * @type {'LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingType: OrderListPlaceOtocoWorkingTypeEnum;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingSide: OrderListPlaceOtocoWorkingSideEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingPrice: number;\n\n    /**\n     * Sets the quantity for the working order.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingQuantity: number;\n\n    /**\n     * Supported values: [Order Side](/products/spot/enums#side)\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingSide: OrderListPlaceOtocoPendingSideEnum;\n\n    /**\n     * Sets the quantity for the pending orders.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingQuantity: number;\n\n    /**\n     * Supported values: `STOP_LOSS_LIMIT`, `STOP_LOSS`, `LIMIT_MAKER`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS_LIMIT' | 'STOP_LOSS' | 'LIMIT_MAKER' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveType: OrderListPlaceOtocoPendingAboveTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly id?: string;\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` and the `pendingClientOrderId`.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly listClientOrderId?: string;\n\n    /**\n     * Format of the JSON response. Supported values: [Order Response Type](/products/spot/enums#orderresponsetype)\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly newOrderRespType?: OrderListPlaceOtocoNewOrderRespTypeEnum;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly selfTradePreventionMode?: OrderListPlaceOtocoSelfTradePreventionModeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingClientOrderId?: string;\n\n    /**\n     * This can only be used if `workingTimeInForce` is `GTC`, or if `workingType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingIcebergQty?: number;\n\n    /**\n     * Supported values: [Time In Force](/products/spot/enums#timeinforce)\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingTimeInForce?: OrderListPlaceOtocoWorkingTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the working order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the working order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingPegPriceType?: OrderListPlaceOtocoWorkingPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingPegOffsetType?: OrderListPlaceOtocoWorkingPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly workingPegOffsetValue?: number;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS_LIMIT`, `LIMIT_MAKER`, or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAbovePrice?: number;\n\n    /**\n     * Can be used if `pendingAboveType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingAboveTimeInForce` is `GTC` or if `pendingAboveType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveIcebergQty?: number;\n\n    /**\n     * Required if `pendingAboveType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveTimeInForce?: OrderListPlaceOtocoPendingAboveTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending above order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAboveStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAbovePegPriceType?: OrderListPlaceOtocoPendingAbovePegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAbovePegOffsetType?: OrderListPlaceOtocoPendingAbovePegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingAbovePegOffsetValue?: number;\n\n    /**\n     * Supported values: `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`\n     * @type {'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowType?: OrderListPlaceOtocoPendingBelowTypeEnum;\n\n    /**\n     * Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.\n     * @type {string}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowClientOrderId?: string;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT` to specify the limit price.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowPrice?: number;\n\n    /**\n     * Can be used if `pendingBelowType` is `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, `TAKE_PROFIT_LIMIT`. Either `pendingBelowStopPrice` or `pendingBelowTrailingDelta` or both, must be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowStopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowTrailingDelta?: number;\n\n    /**\n     * This can only be used if `pendingBelowTimeInForce` is `GTC`, or if `pendingBelowType` is `LIMIT_MAKER`.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowIcebergQty?: number;\n\n    /**\n     * Required if `pendingBelowType` is `STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowTimeInForce?: OrderListPlaceOtocoPendingBelowTimeInForceEnum;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order within an order strategy.\n     * @type {number | bigint}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowStrategyId?: number | bigint;\n\n    /**\n     * Arbitrary numeric value identifying the pending below order strategy. Values smaller than `1000000` are reserved and cannot be used.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowStrategyType?: number;\n\n    /**\n     * See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowPegPriceType?: OrderListPlaceOtocoPendingBelowPegPriceTypeEnum;\n\n    /**\n     *\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowPegOffsetType?: OrderListPlaceOtocoPendingBelowPegOffsetTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly pendingBelowPegOffsetValue?: number;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderListPlaceOtoco\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderPlace operation in TradeApi.\n * @interface OrderPlaceRequest\n */\nexport interface OrderPlaceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly side: OrderPlaceSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly type: OrderPlaceTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly id?: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly timeInForce?: OrderPlaceTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly price?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly newClientOrderId?: 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 TradeApiOrderPlace\n     */\n    readonly newOrderRespType?: OrderPlaceNewOrderRespTypeEnum;\n\n    /**\n     * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See Trailing Stop order FAQ\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly trailingDelta?: number;\n\n    /**\n     * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly icebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly strategyType?: number;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol.\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly selfTradePreventionMode?: OrderPlaceSelfTradePreventionModeEnum;\n\n    /**\n     * See Pegged Orders Info\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly pegPriceType?: OrderPlacePegPriceTypeEnum;\n\n    /**\n     * Price level to peg the price to (max: 100). See Pegged Orders Info\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported. See Pegged Orders Info\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly pegOffsetType?: OrderPlacePegOffsetTypeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderPlace\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for orderTest operation in TradeApi.\n * @interface OrderTestRequest\n */\nexport interface OrderTestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiOrderTest\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly side: OrderTestSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT' | 'STOP_LOSS' | 'STOP_LOSS_LIMIT' | 'TAKE_PROFIT' | 'TAKE_PROFIT_LIMIT' | 'LIMIT_MAKER'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly type: OrderTestTypeEnum;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiOrderTest\n     */\n    readonly id?: string;\n\n    /**\n     * Default: `false` <br> See [Commissions FAQ](/products/spot/faqs/commission_faq#test-order-diferences) to learn more.\n     * @type {boolean}\n     * @memberof TradeApiOrderTest\n     */\n    readonly computeCommissionRates?: boolean;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly timeInForce?: OrderTestTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly price?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly quantity?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly quoteOrderQty?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiOrderTest\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`; `MARKET` and `LIMIT` order types default to `FULL`, all other orders default to `ACK`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly newOrderRespType?: OrderTestNewOrderRespTypeEnum;\n\n    /**\n     * Used with `STOP_LOSS`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT`, and `TAKE_PROFIT_LIMIT` orders.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly stopPrice?: number;\n\n    /**\n     * See [Trailing Stop order FAQ](/products/spot/faqs/trailing-stop-faq)\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly trailingDelta?: number;\n\n    /**\n     * Used with `LIMIT`, `STOP_LOSS_LIMIT`, and `TAKE_PROFIT_LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly icebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiOrderTest\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly strategyType?: number;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly selfTradePreventionMode?: OrderTestSelfTradePreventionModeEnum;\n\n    /**\n     * `PRIMARY_PEG` or `MARKET_PEG`. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRIMARY_PEG' | 'MARKET_PEG'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegPriceType?: OrderTestPegPriceTypeEnum;\n\n    /**\n     * Price level for pegging (max: 100). See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegOffsetValue?: number;\n\n    /**\n     * Only `PRICE_LEVEL` is supported. See [Pegged Orders](/products/spot/faqs/pegged_orders)\n     * @type {'PRICE_LEVEL'}\n     * @memberof TradeApiOrderTest\n     */\n    readonly pegOffsetType?: OrderTestPegOffsetTypeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiOrderTest\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for sorOrderPlace operation in TradeApi.\n * @interface SorOrderPlaceRequest\n */\nexport interface SorOrderPlaceRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly symbol: string;\n\n    /**\n     * `BUY` or `SELL`\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly side: SorOrderPlaceSideEnum;\n\n    /**\n     * Only `LIMIT` and `MARKET` orders are supported.\n     * @type {'MARKET' | 'LIMIT'}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly type: SorOrderPlaceTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly quantity: number;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly id?: string;\n\n    /**\n     * Applicable only to `LIMIT` order type.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly timeInForce?: SorOrderPlaceTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent.<br/> Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly newOrderRespType?: SorOrderPlaceNewOrderRespTypeEnum;\n\n    /**\n     * Used with `LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly icebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly strategyType?: number;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. The possible supported values are: [STP Modes](/products/spot/enums#stpmodes).\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly selfTradePreventionMode?: SorOrderPlaceSelfTradePreventionModeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiSorOrderPlace\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for sorOrderTest operation in TradeApi.\n * @interface SorOrderTestRequest\n */\nexport interface SorOrderTestRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly symbol: string;\n\n    /**\n     * Please see [Enums](/products/spot/enums#side) for supported values.\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly side: SorOrderTestSideEnum;\n\n    /**\n     * Please see [Enums](/products/spot/enums#ordertypes) for supported values.\n     * @type {'MARKET' | 'LIMIT'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly type: SorOrderTestTypeEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly quantity: number;\n\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly id?: string;\n\n    /**\n     * Default: `false`\n     * @type {boolean}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly computeCommissionRates?: boolean;\n\n    /**\n     * Please see [Enums](/products/spot/enums#timeinforce) for supported values.\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly timeInForce?: SorOrderTestTimeInForceEnum;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly price?: number;\n\n    /**\n     * A unique id among open orders. Automatically generated if not sent. Orders with the same `newClientOrderID` can be accepted only when the previous one is filled, otherwise the order will be rejected.\n     * @type {string}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly newClientOrderId?: string;\n\n    /**\n     * Set the response JSON. `ACK`, `RESULT`, or `FULL`. Default to `FULL`.\n     * @type {'ACK' | 'RESULT' | 'FULL'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly newOrderRespType?: SorOrderTestNewOrderRespTypeEnum;\n\n    /**\n     * Used with `LIMIT` to create an iceberg order.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly icebergQty?: number;\n\n    /**\n     *\n     * @type {number | bigint}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly strategyId?: number | bigint;\n\n    /**\n     * The value cannot be less than `1000000`.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly strategyType?: number;\n\n    /**\n     * The allowed enums is dependent on what is configured on the symbol. Supported values: [STP Modes](/products/spot/enums#stpmodes)\n     * @type {'NONE' | 'EXPIRE_TAKER' | 'EXPIRE_MAKER' | 'EXPIRE_BOTH' | 'DECREMENT' | 'TRANSFER'}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly selfTradePreventionMode?: SorOrderTestSelfTradePreventionModeEnum;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof TradeApiSorOrderTest\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n * @extends {WebsocketAPIBase}\n */\nexport class TradeApi implements TradeApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * Cancel all open orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel open orders (TRADE)\n     * @param {OpenOrdersCancelAllRequest} requestParameters Request parameters.\n     * @returns {Promise<OpenOrdersCancelAllResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#open-orders-cancel-all Binance API Documentation}\n     */\n    public openOrdersCancelAll(\n        requestParameters: OpenOrdersCancelAllRequest\n    ): Promise<WebsocketApiResponse<OpenOrdersCancelAllResponse>> {\n        return this.websocketBase.sendMessage<OpenOrdersCancelAllResponse>(\n            '/openOrders.cancelAll'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [Order Amend Keep Priority FAQ](/products/spot/faqs/order_amend_keep_priority) to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderAmendKeepPriorityResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-amend-keep-priority Binance API Documentation}\n     */\n    public orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<WebsocketApiResponse<OrderAmendKeepPriorityResponse>> {\n        return this.websocketBase.sendMessage<OrderAmendKeepPriorityResponse>(\n            '/order.amend.keepPriority'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` parameters are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `newClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * If you cancel an order that is a part of an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {OrderCancelRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderCancelResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-cancel Binance API Documentation}\n     */\n    public orderCancel(\n        requestParameters: OrderCancelRequest\n    ): Promise<WebsocketApiResponse<OrderCancelResponse>> {\n        return this.websocketBase.sendMessage<OrderCancelResponse>(\n            '/order.cancel'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * * Cancel an existing order and immediately place a new order instead of the canceled one.\n     * A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * You can only cancel an individual order from an orderList using this method, but the result is the same as canceling the entire orderList.not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to the [`order.place`](#order-place) request,\n     * additional mandatory parameters (*) are determined by the new order `type`.\n     *\n     * Available `cancelReplaceMode` options:\n     *\n     * `STOP_ON_FAILURE` – if cancellation request fails, new order placement will not be attempted.\n     * `ALLOW_FAILURE` – new order placement will be attempted even if the cancel request fails.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Notes:\n     *\n     * If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `cancelNewClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the placed order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * The new order can reuse old `clientOrderId` of the canceled order.\n     *\n     * This cancel-replace operation is **not transactional**.\n     *\n     * If one operation succeeds but the other one fails, the successful operation is still executed.\n     *\n     * For example, in `STOP_ON_FAILURE` mode, if the new order placement fails, the old order is still canceled.\n     *\n     * Filters and order count limits are evaluated before cancellation and order placement occurs.\n     *\n     * If new order placement is not attempted, your order count is still incremented.\n     *\n     * Like [`order.cancel`](#order-cancel), if you cancel an individual order from an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel and replace order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderCancelReplaceResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-cancel-replace Binance API Documentation}\n     */\n    public orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<WebsocketApiResponse<OrderCancelReplaceResponse>> {\n        return this.websocketBase.sendMessage<OrderCancelReplaceResponse>(\n            '/order.cancelReplace'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Cancel an active order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderListId` and `listClientOrderId` parameters are provided, the `orderListId` is searched first, then the `listClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * Canceling an individual order with [`order.cancel`](#order-cancel) will cancel the entire order list as well.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {OrderListCancelRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListCancelResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-cancel Binance API Documentation}\n     */\n    public orderListCancel(\n        requestParameters: OrderListCancelRequest\n    ): Promise<WebsocketApiResponse<OrderListCancelResponse>> {\n        return this.websocketBase.sendMessage<OrderListCancelResponse>(\n            '/orderList.cancel'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Send in a new one-cancels-the-other (OCO) pair:\n     * `LIMIT_MAKER` + `STOP_LOSS`/`STOP_LOSS_LIMIT` orders (called *legs*),\n     * where activation of one order immediately cancels the other.\n     *\n     * This adds 1 order to `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * `listClientOrderId` parameter specifies `listClientOrderId` for the OCO pair.\n     *\n     * A new OCO with the same `listClientOrderId` is accepted only when the previous one is filled or completely expired.\n     *\n     * `listClientOrderId` is distinct from `clientOrderId` of individual orders.\n     *\n     * `limitClientOrderId` and `stopClientOrderId` specify `clientOrderId` values for both legs of the OCO.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Price restrictions on the legs:\n     *\n     * | `side` | Price relation |\n     * | ------ | -------------- |\n     * | `BUY`  | `price` < market price < `stopPrice` |\n     * | `SELL` | `price` > market price > `stopPrice` |\n     *\n     * Both legs have the same `quantity`.\n     *\n     * However, you can set different iceberg quantity for individual legs.\n     *\n     * If `stopIcebergQty` is used, `stopLimitTimeInForce` must be `GTC`.\n     *\n     * `trailingDelta` applies only to the `STOP_LOSS`/`STOP_LOSS_LIMIT` leg of the OCO.\n     *\n     * @summary Place new OCO - Deprecated (TRADE)\n     * @param {OrderListPlaceRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place Binance API Documentation}\n     */\n    public orderListPlace(\n        requestParameters: OrderListPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceResponse>(\n            '/orderList.place'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Send in an one-cancels-the-other (OCO) pair, where activation of one order immediately cancels the other.\n     *\n     * An OCO has 2 orders called the **above order** and **below order**.\n     *\n     * One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be\n     * `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     *\n     * Price restrictions:\n     * If the OCO is on the `SELL` side:\n     * `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT`\n     * `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT\n     * stopPrice`\n     * If the OCO is on the `BUY` side:\n     * `LIMIT_MAKER` `price` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     *  OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Place new Order list - OCO (TRADE)\n     * @param {OrderListPlaceOcoRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceOcoResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-oco Binance API Documentation}\n     */\n    public orderListPlaceOco(\n        requestParameters: OrderListPlaceOcoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOcoResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceOcoResponse>(\n            '/orderList.place.oco'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * OPOs add 2 orders to the EXCHANGE_MAX_NUM_ORDERS filter and MAX_NUM_ORDERS filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPO (TRADE)\n     * @param {OrderListPlaceOpoRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceOpoResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-opo Binance API Documentation}\n     */\n    public orderListPlaceOpo(\n        requestParameters: OrderListPlaceOpoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpoResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceOpoResponse>(\n            '/orderList.place.opo'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPOCO (TRADE)\n     * @param {OrderListPlaceOpocoRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceOpocoResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-opoco Binance API Documentation}\n     */\n    public orderListPlaceOpoco(\n        requestParameters: OrderListPlaceOpocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpocoResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceOpocoResponse>(\n            '/orderList.place.opoco'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Places an OTO.\n     *\n     * An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     *\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the\n     * working order goes on the order book.\n     *\n     * The second order is called the **pending order**. It can be any order type except for `MARKET` orders using\n     * parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets\n     **fully filled**.\n     *\n     * If either the working order or the pending order is cancelled individually, the other order in the order list\n     * will also be canceled or expired.\n     *\n     * When the order list is placed, if the working order gets **immediately fully filled**, the placement response\n     * will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to\n     * query the status of the pending order again to see its updated status.\n     *\n     * OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` =`STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary Place new Order list - OTO (TRADE)\n     * @param {OrderListPlaceOtoRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceOtoResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-oto Binance API Documentation}\n     */\n    public orderListPlaceOto(\n        requestParameters: OrderListPlaceOtoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtoResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceOtoResponse>(\n            '/orderList.place.oto'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Place an OTOCO.\n     *\n     * An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * The behavior of the working order is the same as the [OTO](#order-list-place-oto).\n     * OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-place-oco).\n     * OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`          |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`         |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * `pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary Place new Order list - OTOCO (TRADE)\n     * @param {OrderListPlaceOtocoRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderListPlaceOtocoResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-otoco Binance API Documentation}\n     */\n    public orderListPlaceOtoco(\n        requestParameters: OrderListPlaceOtocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtocoResponse>> {\n        return this.websocketBase.sendMessage<OrderListPlaceOtocoResponse>(\n            '/orderList.place.otoco'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * <a id=\"order-type\">Certain parameters (*)</a> become mandatory based on the order `type`:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Mandatory parameters</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <ul>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code> or <code>quoteOrderQty</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Supported order types:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Description</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <p>\n     * Buy or sell <code>quantity</code> at the specified <code>price</code> or better.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <p>\n     * <code>LIMIT</code> order that will be rejected if it immediately matches and trades as a taker.\n     * </p>\n     * <p>\n     * This order type is also known as a POST-ONLY order.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <p>\n     * Buy or sell at the best available market price.\n     * </p>\n     * <ul>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quantity</code> parameter\n     * specifies the amount of the <em>base asset</em> you want to buy or sell.\n     * Actually executed quantity of the quote asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY order on BTCUSDT for <code>\"quantity\": \"0.1000\"</code>\n     * specifies that you want to buy 0.1 BTC at the best available price.\n     * If there is not enough BTC at the best price, keep buying at the next best price,\n     * until either your order is filled, or you run out of USDT, or market runs out of BTC.\n     * </p>\n     * </li>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quoteOrderQty</code> parameter\n     * specifies the amount of the <em>quote asset</em> you want to spend (when buying) or receive (when selling).\n     * Actually executed quantity of the base asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY on BTCUSDT for <code>\"quoteOrderQty\": \"100.00\"</code>\n     * specifies that you want to buy as much BTC as you can for 100 USDT at the best available price.\n     * Similarly, a SELL order will sell as much available BTC as needed for you to receive 100 USDT\n     * (before commission).\n     * </p>\n     * </li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <p>\n     * Execute a <code>MARKET</code> order for given <code>quantity</code> when specified conditions are met.\n     * </p>\n     * <p>\n     * I.e., when <code>stopPrice</code> is reached, or when <code>trailingDelta</code> is activated.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Place a <code>LIMIT</code> order with given parameters when specified conditions are met.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS_LIMIT</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * <a id=\"pegged-orders-info\"></a>\n     * Notes on using parameters for Pegged Orders:\n     *\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * <a id=\"timeInForce\"></a>\n     *\n     * Available `timeInForce` options,\n     * setting how long the order should be active before expiration:\n     *\n     * TIF  | Description\n     * ----- | --------------\n     * `GTC` | **Good 'til Canceled** – the order will remain on the book until you cancel it, or the order is completely filled.\n     * `IOC` | **Immediate or Cancel** – the order will be filled for as much as possible, the unfilled quantity immediately expires.\n     * `FOK` | **Fill or Kill** – the order will expire unless it cannot be immediately filled for the entire quantity.\n     *\n     * Notes:\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Any `LIMIT` or `LIMIT_MAKER` order can be made into an iceberg order by specifying the `icebergQty`.\n     *\n     * An order with an `icebergQty` must have `timeInForce` set to `GTC`.\n     *\n     * Trigger order price rules for `STOP_LOSS`/`TAKE_PROFIT` orders:\n     *\n     * `stopPrice` must be above market price: `STOP_LOSS BUY`, `TAKE_PROFIT SELL`\n     * `stopPrice` must be below market price: `STOP_LOSS SELL`, `TAKE_PROFIT BUY`\n     *\n     * `MARKET` orders using `quoteOrderQty` follow [`LOT_SIZE`](/products/spot/filters#lot_size) filter rules.\n     *\n     * The order will execute a quantity that has notional value as close as possible to requested `quoteOrderQty`.\n     *\n     * @summary Place new order (TRADE)\n     * @param {OrderPlaceRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderPlaceResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-place Binance API Documentation}\n     */\n    public orderPlace(\n        requestParameters: OrderPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderPlaceResponse>> {\n        return this.websocketBase.sendMessage<OrderPlaceResponse>(\n            '/order.place'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Test order placement.\n     *\n     * Validates new order parameters and verifies your signature\n     * but does not send the order into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     * @returns {Promise<OrderTestResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-test Binance API Documentation}\n     */\n    public orderTest(\n        requestParameters: OrderTestRequest\n    ): Promise<WebsocketApiResponse<OrderTestResponse>> {\n        return this.websocketBase.sendMessage<OrderTestResponse>(\n            '/order.test'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `sor.order.place` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary Place new order using SOR (TRADE)\n     * @param {SorOrderPlaceRequest} requestParameters Request parameters.\n     * @returns {Promise<SorOrderPlaceResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#sor-order-place Binance API Documentation}\n     */\n    public sorOrderPlace(\n        requestParameters: SorOrderPlaceRequest\n    ): Promise<WebsocketApiResponse<SorOrderPlaceResponse>> {\n        return this.websocketBase.sendMessage<SorOrderPlaceResponse>(\n            '/sor.order.place'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     * @returns {Promise<SorOrderTestResponse>}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#sor-order-test Binance API Documentation}\n     */\n    public sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<WebsocketApiResponse<SorOrderTestResponse>> {\n        return this.websocketBase.sendMessage<SorOrderTestResponse>(\n            '/sor.order.test'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n}\n\nexport enum OrderCancelCancelRestrictionsEnum {\n    ONLY_NEW = 'ONLY_NEW',\n    ONLY_PARTIALLY_FILLED = 'ONLY_PARTIALLY_FILLED',\n}\n\nexport enum OrderCancelReplaceCancelReplaceModeEnum {\n    STOP_ON_FAILURE = 'STOP_ON_FAILURE',\n    ALLOW_FAILURE = 'ALLOW_FAILURE',\n}\n\nexport enum OrderCancelReplaceSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderCancelReplaceTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 OrderCancelReplaceTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderCancelReplaceNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderCancelReplaceSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderCancelReplaceCancelRestrictionsEnum {\n    ONLY_NEW = 'ONLY_NEW',\n    ONLY_PARTIALLY_FILLED = 'ONLY_PARTIALLY_FILLED',\n}\n\nexport enum OrderCancelReplaceOrderRateLimitExceededModeEnum {\n    DO_NOTHING = 'DO_NOTHING',\n    CANCEL_ONLY = 'CANCEL_ONLY',\n}\n\nexport enum OrderCancelReplacePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderCancelReplacePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceStopLimitTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOcoSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOcoAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListPlaceOcoBelowTypeEnum {\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}\n\nexport enum OrderListPlaceOcoAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOcoAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOcoAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOcoBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOcoBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOcoBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOcoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceOcoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOpoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListPlaceOpoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOpoPendingTypeEnum {\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 OrderListPlaceOpoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOpoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceOpoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOpoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOpoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOpoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOpoPendingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOpoPendingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOpoPendingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOpocoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListPlaceOpocoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOpocoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOpocoPendingAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListPlaceOpocoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceOpocoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOpocoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOpocoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOpocoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOpocoPendingAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOpocoPendingAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOpocoPendingAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOpocoPendingBelowTypeEnum {\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}\n\nexport enum OrderListPlaceOpocoPendingBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOpocoPendingBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOpocoPendingBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOtoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListPlaceOtoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOtoPendingTypeEnum {\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 OrderListPlaceOtoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOtoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceOtoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOtoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOtoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOtoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOtoPendingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOtoPendingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOtoPendingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOtocoWorkingTypeEnum {\n    LIMIT = 'LIMIT',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n}\n\nexport enum OrderListPlaceOtocoWorkingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOtocoPendingSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderListPlaceOtocoPendingAboveTypeEnum {\n    STOP_LOSS_LIMIT = 'STOP_LOSS_LIMIT',\n    STOP_LOSS = 'STOP_LOSS',\n    LIMIT_MAKER = 'LIMIT_MAKER',\n    TAKE_PROFIT = 'TAKE_PROFIT',\n    TAKE_PROFIT_LIMIT = 'TAKE_PROFIT_LIMIT',\n}\n\nexport enum OrderListPlaceOtocoNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderListPlaceOtocoSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderListPlaceOtocoWorkingTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOtocoWorkingPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOtocoWorkingPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOtocoPendingAboveTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOtocoPendingAbovePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOtocoPendingAbovePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderListPlaceOtocoPendingBelowTypeEnum {\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}\n\nexport enum OrderListPlaceOtocoPendingBelowTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderListPlaceOtocoPendingBelowPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderListPlaceOtocoPendingBelowPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderPlaceSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderPlaceTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 OrderPlaceTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderPlaceNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderPlaceSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderPlacePegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderPlacePegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum OrderTestSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum OrderTestTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\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 OrderTestTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum OrderTestNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum OrderTestSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum OrderTestPegPriceTypeEnum {\n    PRIMARY_PEG = 'PRIMARY_PEG',\n    MARKET_PEG = 'MARKET_PEG',\n}\n\nexport enum OrderTestPegOffsetTypeEnum {\n    PRICE_LEVEL = 'PRICE_LEVEL',\n}\n\nexport enum SorOrderPlaceSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum SorOrderPlaceTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\n}\n\nexport enum SorOrderPlaceTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum SorOrderPlaceNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum SorOrderPlaceSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n\nexport enum SorOrderTestSideEnum {\n    BUY = 'BUY',\n    SELL = 'SELL',\n}\n\nexport enum SorOrderTestTypeEnum {\n    MARKET = 'MARKET',\n    LIMIT = 'LIMIT',\n}\n\nexport enum SorOrderTestTimeInForceEnum {\n    GTC = 'GTC',\n    IOC = 'IOC',\n    FOK = 'FOK',\n}\n\nexport enum SorOrderTestNewOrderRespTypeEnum {\n    ACK = 'ACK',\n    RESULT = 'RESULT',\n    FULL = 'FULL',\n}\n\nexport enum SorOrderTestSelfTradePreventionModeEnum {\n    NONE = 'NONE',\n    EXPIRE_TAKER = 'EXPIRE_TAKER',\n    EXPIRE_MAKER = 'EXPIRE_MAKER',\n    EXPIRE_BOTH = 'EXPIRE_BOTH',\n    DECREMENT = 'DECREMENT',\n    TRANSFER = 'TRANSFER',\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, WebsocketApiResponse, WebsocketSendMsgOptions } from '@binance/common';\nimport type {\n    SessionSubscriptionsResponse,\n    UserDataStreamSubscribeResponse,\n    UserDataStreamSubscribeSignatureResponse,\n    UserDataStreamUnsubscribeResponse,\n} from '../types';\n\n/**\n * UserDataStreamApi - interface\n *\n * @interface UserDataStreamApi\n */\nexport interface UserDataStreamApiInterface {\n    /**\n     * **Note:**\n     *\n     * Users should track the corresponding subscription status of related accounts as needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Listing all subscriptions\n     * @param {SessionSubscriptionsRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<SessionSubscriptionsResponse>}\n     * @memberof UserDataStreamApiInterface\n     */\n    sessionSubscriptions(\n        requestParameters?: SessionSubscriptionsRequest\n    ): Promise<WebsocketApiResponse<SessionSubscriptionsResponse>>;\n\n    /**\n     * Subscribe to the User Data Stream in the current WebSocket connection.\n     *\n     **Notes:**\n     * - This method requires an authenticated WebSocket connection using Ed25519 keys. Please refer to [`session.logon`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-logon).\n     * - To check the subscription status, use [`session.status`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-status), see the `userDataStream` flag indicating you have have an active subscription.\n     * - User Data Stream events are available in both JSON and [SBE](/products/spot/faqs/sbe_faq) sessions.\n     * - Please refer to [User Data Streams](/products/spot/user-data-stream) for the event format details.\n     * - For SBE, only SBE schema 2:1 or later is supported.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * @summary Subscribe to User Data Stream\n     * @param {UserDataStreamSubscribeRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<UserDataStreamSubscribeResponse>}\n     * @memberof UserDataStreamApiInterface\n     */\n    userDataStreamSubscribe(\n        requestParameters?: UserDataStreamSubscribeRequest\n    ): Promise<WebsocketApiResponse<UserDataStreamSubscribeResponse>>;\n\n    /**\n     * Weight(IP): 2\n     *\n     * Security Type: USER_STREAM\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Subscribe to User Data Stream through signature subscription (USER_STREAM)\n     * @param {UserDataStreamSubscribeSignatureRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<UserDataStreamSubscribeSignatureResponse>}\n     * @memberof UserDataStreamApiInterface\n     */\n    userDataStreamSubscribeSignature(\n        requestParameters?: UserDataStreamSubscribeSignatureRequest\n    ): Promise<WebsocketApiResponse<UserDataStreamSubscribeSignatureResponse>>;\n\n    /**\n     * Stop listening to the User Data Stream in the current WebSocket\n     * connection.\n     *\n     * Note that `session.logout` will only close the subscription created with `userDataStream.subscribe` but not subscriptions opened with `userDataStream.subscribe.signature`.\n     *\n     * Weight(IP): 2\n     *\n     * @summary WebSocket Unsubscribe from User Data Stream\n     * @param {UserDataStreamUnsubscribeRequest} requestParameters Request parameters.\n     *\n     * @returns {Promise<UserDataStreamUnsubscribeResponse>}\n     * @memberof UserDataStreamApiInterface\n     */\n    userDataStreamUnsubscribe(\n        requestParameters?: UserDataStreamUnsubscribeRequest\n    ): Promise<WebsocketApiResponse<UserDataStreamUnsubscribeResponse>>;\n}\n\n/**\n * Request parameters for sessionSubscriptions operation in UserDataStreamApi.\n * @interface SessionSubscriptionsRequest\n */\nexport interface SessionSubscriptionsRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof UserDataStreamApiSessionSubscriptions\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for userDataStreamSubscribe operation in UserDataStreamApi.\n * @interface UserDataStreamSubscribeRequest\n */\nexport interface UserDataStreamSubscribeRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof UserDataStreamApiUserDataStreamSubscribe\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for userDataStreamSubscribeSignature operation in UserDataStreamApi.\n * @interface UserDataStreamSubscribeSignatureRequest\n */\nexport interface UserDataStreamSubscribeSignatureRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof UserDataStreamApiUserDataStreamSubscribeSignature\n     */\n    readonly id?: string;\n\n    /**\n     * Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified.\n     * @type {number}\n     * @memberof UserDataStreamApiUserDataStreamSubscribeSignature\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for userDataStreamUnsubscribe operation in UserDataStreamApi.\n * @interface UserDataStreamUnsubscribeRequest\n */\nexport interface UserDataStreamUnsubscribeRequest {\n    /**\n     * Client-generated request identifier.\n     * @type {string}\n     * @memberof UserDataStreamApiUserDataStreamUnsubscribe\n     */\n    readonly id?: string;\n\n    /**\n     * When called with no parameter, this will close all subscriptions. When called with the subscriptionId parameter, this will attempt to close the subscription with that subscription id, if it exists.\n     * @type {number}\n     * @memberof UserDataStreamApiUserDataStreamUnsubscribe\n     */\n    readonly subscriptionId?: number;\n}\n\n/**\n * UserDataStreamApi - object-oriented interface\n * @class UserDataStreamApi\n * @extends {WebsocketAPIBase}\n */\nexport class UserDataStreamApi implements UserDataStreamApiInterface {\n    private readonly websocketBase: WebsocketAPIBase;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n    }\n\n    /**\n     * **Note:**\n     *\n     * Users should track the corresponding subscription status of related accounts as needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Listing all subscriptions\n     * @param {SessionSubscriptionsRequest} requestParameters Request parameters.\n     * @returns {Promise<SessionSubscriptionsResponse>}\n     * @memberof UserDataStreamApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#session-subscriptions Binance API Documentation}\n     */\n    public sessionSubscriptions(\n        requestParameters: SessionSubscriptionsRequest = {}\n    ): Promise<WebsocketApiResponse<SessionSubscriptionsResponse>> {\n        return this.websocketBase.sendMessage<SessionSubscriptionsResponse>(\n            '/session.subscriptions'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Subscribe to the User Data Stream in the current WebSocket connection.\n     *\n     **Notes:**\n     * - This method requires an authenticated WebSocket connection using Ed25519 keys. Please refer to [`session.logon`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-logon).\n     * - To check the subscription status, use [`session.status`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-status), see the `userDataStream` flag indicating you have have an active subscription.\n     * - User Data Stream events are available in both JSON and [SBE](/products/spot/faqs/sbe_faq) sessions.\n     * - Please refer to [User Data Streams](/products/spot/user-data-stream) for the event format details.\n     * - For SBE, only SBE schema 2:1 or later is supported.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * @summary Subscribe to User Data Stream\n     * @param {UserDataStreamSubscribeRequest} requestParameters Request parameters.\n     * @returns {Promise<UserDataStreamSubscribeResponse>}\n     * @memberof UserDataStreamApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-subscribe Binance API Documentation}\n     */\n    public userDataStreamSubscribe(\n        requestParameters: UserDataStreamSubscribeRequest = {}\n    ): Promise<WebsocketApiResponse<UserDataStreamSubscribeResponse>> {\n        return this.websocketBase.sendMessage<UserDataStreamSubscribeResponse>(\n            '/userDataStream.subscribe'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n\n    /**\n     * Weight(IP): 2\n     *\n     * Security Type: USER_STREAM\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Subscribe to User Data Stream through signature subscription (USER_STREAM)\n     * @param {UserDataStreamSubscribeSignatureRequest} requestParameters Request parameters.\n     * @returns {Promise<UserDataStreamSubscribeSignatureResponse>}\n     * @memberof UserDataStreamApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-subscribe-signature Binance API Documentation}\n     */\n    public userDataStreamSubscribeSignature(\n        requestParameters: UserDataStreamSubscribeSignatureRequest = {}\n    ): Promise<WebsocketApiResponse<UserDataStreamSubscribeSignatureResponse>> {\n        return this.websocketBase.sendMessage<UserDataStreamSubscribeSignatureResponse>(\n            '/userDataStream.subscribe.signature'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: true, withApiKey: false }\n        );\n    }\n\n    /**\n     * Stop listening to the User Data Stream in the current WebSocket\n     * connection.\n     *\n     * Note that `session.logout` will only close the subscription created with `userDataStream.subscribe` but not subscriptions opened with `userDataStream.subscribe.signature`.\n     *\n     * Weight(IP): 2\n     *\n     * @summary WebSocket Unsubscribe from User Data Stream\n     * @param {UserDataStreamUnsubscribeRequest} requestParameters Request parameters.\n     * @returns {Promise<UserDataStreamUnsubscribeResponse>}\n     * @memberof UserDataStreamApi\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-unsubscribe Binance API Documentation}\n     */\n    public userDataStreamUnsubscribe(\n        requestParameters: UserDataStreamUnsubscribeRequest = {}\n    ): Promise<WebsocketApiResponse<UserDataStreamUnsubscribeResponse>> {\n        return this.websocketBase.sendMessage<UserDataStreamUnsubscribeResponse>(\n            '/userDataStream.unsubscribe'.slice(1),\n            requestParameters as unknown as WebsocketSendMsgOptions,\n            { isSigned: false, withApiKey: false }\n        );\n    }\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    WebsocketAPIBase,\n    WebsocketSendMsgOptions,\n    WebsocketApiResponse,\n    WebsocketStream,\n    createStreamHandler,\n    randomString,\n} from '@binance/common';\nimport { AccountApi } from './modules/account-api';\nimport { AuthApi } from './modules/auth-api';\nimport { GeneralApi } from './modules/general-api';\nimport { MarketApi } from './modules/market-api';\nimport { TradeApi } from './modules/trade-api';\nimport { UserDataStreamApi } from './modules/user-data-stream-api';\n\nimport type { UserDataStreamEventsResponse } from './types';\nimport type {\n    AccountCommissionRequest,\n    AccountRateLimitsOrdersRequest,\n    AccountStatusRequest,\n    AllOrderListsRequest,\n    AllOrdersRequest,\n    MyAllocationsRequest,\n    MyFiltersRequest,\n    MyPreventedMatchesRequest,\n    MyTradesRequest,\n    OpenOrderListsStatusRequest,\n    OpenOrdersStatusRequest,\n    OrderAmendmentsRequest,\n    OrderListStatusRequest,\n    OrderStatusRequest,\n} from './modules/account-api';\nimport type {\n    SessionLogonRequest,\n    SessionLogoutRequest,\n    SessionStatusRequest,\n} from './modules/auth-api';\nimport type {\n    ExchangeInfoRequest,\n    ExecutionRulesRequest,\n    PingRequest,\n    TimeRequest,\n} from './modules/general-api';\nimport type {\n    AvgPriceRequest,\n    BlockTradesHistoricalRequest,\n    DepthRequest,\n    KlinesRequest,\n    ReferencePriceRequest,\n    ReferencePriceCalculationRequest,\n    TickerRequest,\n    Ticker24hrRequest,\n    TickerBookRequest,\n    TickerPriceRequest,\n    TickerTradingDayRequest,\n    TradesAggregateRequest,\n    TradesHistoricalRequest,\n    TradesRecentRequest,\n    UiKlinesRequest,\n} from './modules/market-api';\nimport type {\n    OpenOrdersCancelAllRequest,\n    OrderAmendKeepPriorityRequest,\n    OrderCancelRequest,\n    OrderCancelReplaceRequest,\n    OrderListCancelRequest,\n    OrderListPlaceRequest,\n    OrderListPlaceOcoRequest,\n    OrderListPlaceOpoRequest,\n    OrderListPlaceOpocoRequest,\n    OrderListPlaceOtoRequest,\n    OrderListPlaceOtocoRequest,\n    OrderPlaceRequest,\n    OrderTestRequest,\n    SorOrderPlaceRequest,\n    SorOrderTestRequest,\n} from './modules/trade-api';\nimport type {\n    SessionSubscriptionsRequest,\n    UserDataStreamSubscribeRequest,\n    UserDataStreamSubscribeSignatureRequest,\n    UserDataStreamUnsubscribeRequest,\n} from './modules/user-data-stream-api';\n\nimport type {\n    AccountCommissionResponse,\n    AccountRateLimitsOrdersResponse,\n    AccountStatusResponse,\n    AllOrderListsResponse,\n    AllOrdersResponse,\n    MyAllocationsResponse,\n    MyFiltersResponse,\n    MyPreventedMatchesResponse,\n    MyTradesResponse,\n    OpenOrderListsStatusResponse,\n    OpenOrdersStatusResponse,\n    OrderAmendmentsResponse,\n    OrderListStatusResponse,\n    OrderStatusResponse,\n} from './types';\nimport type { SessionLogonResponse, SessionLogoutResponse, SessionStatusResponse } from './types';\nimport type {\n    ExchangeInfoResponse,\n    ExecutionRulesResponse,\n    PingResponse,\n    TimeResponse,\n} from './types';\nimport type {\n    AvgPriceResponse,\n    BlockTradesHistoricalResponse,\n    DepthResponse,\n    KlinesResponse,\n    ReferencePriceResponse,\n    ReferencePriceCalculationResponse,\n    TickerResponse,\n    Ticker24hrResponse,\n    TickerBookResponse,\n    TickerPriceResponse,\n    TickerTradingDayResponse,\n    TradesAggregateResponse,\n    TradesHistoricalResponse,\n    TradesRecentResponse,\n    UiKlinesResponse,\n} from './types';\nimport type {\n    OpenOrdersCancelAllResponse,\n    OrderAmendKeepPriorityResponse,\n    OrderCancelResponse,\n    OrderCancelReplaceResponse,\n    OrderListCancelResponse,\n    OrderListPlaceResponse,\n    OrderListPlaceOcoResponse,\n    OrderListPlaceOpoResponse,\n    OrderListPlaceOpocoResponse,\n    OrderListPlaceOtoResponse,\n    OrderListPlaceOtocoResponse,\n    OrderPlaceResponse,\n    OrderTestResponse,\n    SorOrderPlaceResponse,\n    SorOrderTestResponse,\n} from './types';\nimport type {\n    SessionSubscriptionsResponse,\n    UserDataStreamSubscribeResponse,\n    UserDataStreamSubscribeSignatureResponse,\n    UserDataStreamUnsubscribeResponse,\n} from './types';\n\nexport class WebsocketAPIConnection {\n    private websocketBase: WebsocketAPIBase;\n    private accountApi: AccountApi;\n    private authApi: AuthApi;\n    private generalApi: GeneralApi;\n    private marketApi: MarketApi;\n    private tradeApi: TradeApi;\n    private userDataStreamApi: UserDataStreamApi;\n\n    constructor(websocketBase: WebsocketAPIBase) {\n        this.websocketBase = websocketBase;\n        this.accountApi = new AccountApi(websocketBase);\n        this.authApi = new AuthApi(websocketBase);\n        this.generalApi = new GeneralApi(websocketBase);\n        this.marketApi = new MarketApi(websocketBase);\n        this.tradeApi = new TradeApi(websocketBase);\n        this.userDataStreamApi = new UserDataStreamApi(websocketBase);\n    }\n\n    on(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.on(event, listener);\n    }\n\n    off(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.off(event, listener);\n    }\n\n    /**\n     * Disconnects from the WebSocket server.\n     * If there is no active connection, a warning is logged.\n     * Otherwise, all connections in the connection pool are closed gracefully,\n     * and a message is logged indicating that the connection has been disconnected.\n     * @returns A Promise that resolves when all connections have been closed.\n     * @throws Error if the WebSocket client is not set.\n     */\n    disconnect() {\n        return this.websocketBase.disconnect();\n    }\n\n    /**\n     * Checks if the WebSocket connection is currently open.\n     * @returns `true` if the connection is open, `false` otherwise.\n     */\n    isConnected() {\n        return this.websocketBase.isConnected();\n    }\n\n    /**\n     * Sends a ping message to all connected Websocket servers in the pool.\n     * If no connections are ready, a warning is logged.\n     * For each active connection, the ping message is sent, and debug logs provide details.\n     * @throws Error if a Websocket client is not set for a connection.\n     */\n    pingServer() {\n        this.websocketBase.pingServer();\n    }\n\n    /**\n     * Sends an unsigned message to the WebSocket server\n     * @param method The API method to call\n     * @param payload Message parameters and options\n     * @returns Promise that resolves with the server response\n     * @throws Error if not connected\n     */\n    sendMessage(method: string, payload: WebsocketSendMsgOptions = {}) {\n        return this.websocketBase.sendMessage(method, payload);\n    }\n\n    /**\n     * Sends a signed message to the WebSocket server with authentication\n     * @param method The API method to call\n     * @param payload Message parameters and options\n     * @returns Promise that resolves with the server response\n     * @throws Error if not connected\n     */\n    sendSignedMessage(method: string, payload: WebsocketSendMsgOptions = {}) {\n        return this.websocketBase.sendMessage(method, payload, { isSigned: true });\n    }\n\n    /**\n     * Get current account commission rates.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account Commission Rates (USER_DATA)\n     * @param {AccountCommissionRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AccountCommissionResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-commission Binance API Documentation}\n     */\n    accountCommission(\n        requestParameters: AccountCommissionRequest\n    ): Promise<WebsocketApiResponse<AccountCommissionResponse>> {\n        return this.accountApi.accountCommission(requestParameters);\n    }\n\n    /**\n     * Query your current unfilled order count for all intervals.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Unfilled Order Count (USER_DATA)\n     * @param {AccountRateLimitsOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AccountRateLimitsOrdersResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-rate-limits-orders Binance API Documentation}\n     */\n    accountRateLimitsOrders(\n        requestParameters: AccountRateLimitsOrdersRequest = {}\n    ): Promise<WebsocketApiResponse<AccountRateLimitsOrdersResponse>> {\n        return this.accountApi.accountRateLimitsOrders(requestParameters);\n    }\n\n    /**\n     * Query information about your account.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * @summary Account information (USER_DATA)\n     * @param {AccountStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AccountStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#account-status Binance API Documentation}\n     */\n    accountStatus(\n        requestParameters: AccountStatusRequest = {}\n    ): Promise<WebsocketApiResponse<AccountStatusResponse>> {\n        return this.accountApi.accountStatus(requestParameters);\n    }\n\n    /**\n     * Query information about all your order lists, filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     * If `startTime` and/or `endTime` are specified, `fromId` is ignored.\n     * Order lists are filtered by `transactionTime` of the last order list execution status update.\n     * If `fromId` is specified, return order lists with order list ID >= `fromId`.\n     * If no condition is specified, the most recent order lists are returned.\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order list history (USER_DATA)\n     * @param {AllOrderListsRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AllOrderListsResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#all-order-lists Binance API Documentation}\n     */\n    allOrderLists(\n        requestParameters: AllOrderListsRequest = {}\n    ): Promise<WebsocketApiResponse<AllOrderListsResponse>> {\n        return this.accountApi.allOrderLists(requestParameters);\n    }\n\n    /**\n     * Query information about all your orders – active, canceled, filled – filtered by time range.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `startTime` and/or `endTime` are specified, `orderId` is ignored.\n     *\n     * Orders are filtered by `time` of the last execution status update.\n     *\n     * If `orderId` is specified, return orders with order ID >= `orderId`.\n     *\n     * If no condition is specified, the most recent orders are returned.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account order history (USER_DATA)\n     * @param {AllOrdersRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AllOrdersResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#all-orders Binance API Documentation}\n     */\n    allOrders(\n        requestParameters: AllOrdersRequest\n    ): Promise<WebsocketApiResponse<AllOrdersResponse>> {\n        return this.accountApi.allOrders(requestParameters);\n    }\n\n    /**\n     * Retrieves allocations resulting from SOR order placement.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported parameter combinations:\n     *\n     * Parameters                                  | Response |\n     * ------------------------------------------- | -------- |\n     * `symbol`                                    | allocations from oldest to newest |\n     * `symbol` + `startTime`                      | oldest allocations since `startTime` |\n     * `symbol` + `endTime`                        | newest allocations until `endTime` |\n     * `symbol` + `startTime` + `endTime`          | allocations within the time range |\n     * `symbol` + `fromAllocationId`               | allocations by allocation ID |\n     * `symbol` + `orderId`                        | allocations related to an order starting with oldest |\n     * `symbol` + `orderId` + `fromAllocationId`   | allocations related to an order by allocation ID |\n     *\n     **Note:** The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account allocations (USER_DATA)\n     * @param {MyAllocationsRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<MyAllocationsResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-allocations Binance API Documentation}\n     */\n    myAllocations(\n        requestParameters: MyAllocationsRequest\n    ): Promise<WebsocketApiResponse<MyAllocationsResponse>> {\n        return this.accountApi.myAllocations(requestParameters);\n    }\n\n    /**\n     * Retrieves the list of [filters](/products/spot/filters) relevant to an account on a given symbol. This is the only method\n     * that shows if an account has [`MAX_ASSET`](/products/spot/filters#max_asset) filters applied to it.\n     *\n     * Weight(IP): 40\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Relevant Filters (USER_DATA)\n     * @param {MyFiltersRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<MyFiltersResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-filters Binance API Documentation}\n     */\n    myFilters(\n        requestParameters: MyFiltersRequest\n    ): Promise<WebsocketApiResponse<MyFiltersResponse>> {\n        return this.accountApi.myFilters(requestParameters);\n    }\n\n    /**\n     * Displays the list of orders that were expired due to STP.\n     *\n     * These are the combinations supported:\n     *\n     * `symbol` + `preventedMatchId`\n     * `symbol` + `orderId`\n     * `symbol` + `orderId` + `fromPreventedMatchId` (`limit` will default to 500)\n     * `symbol` + `orderId` + `fromPreventedMatchId` + `limit`\n     *\n     * Weight: Case                            | Weight\n     * ----                            | -----\n     * If `symbol` is invalid          | 2\n     * Querying by `preventedMatchId`  | 2\n     * Querying by `orderId`           | 20\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Account prevented matches (USER_DATA)\n     * @param {MyPreventedMatchesRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<MyPreventedMatchesResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-prevented-matches Binance API Documentation}\n     */\n    myPreventedMatches(\n        requestParameters: MyPreventedMatchesRequest\n    ): Promise<WebsocketApiResponse<MyPreventedMatchesResponse>> {\n        return this.accountApi.myPreventedMatches(requestParameters);\n    }\n\n    /**\n     * Query information about all your trades, filtered by time range.\n     *\n     * Weight: Condition| Weight|\n     * ---| ---\n     * |Without orderId|20|\n     * |With orderId|5|\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * Notes:\n     * - If `fromId` is specified, return trades with trade ID >= `fromId`.\n     * - If `startTime` and/or `endTime` are specified, trades are filtered by execution time (`time`).\n     * - `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If `orderId` is specified, only trades related to that order are returned.\n     * - `startTime` and `endTime` cannot be used together with `orderId`.\n     * - If no condition is specified, the most recent trades are returned.\n     * - The time between `startTime` and `endTime` can't be longer than 24 hours.\n     *\n     * @summary Account trade history (USER_DATA)\n     * @param {MyTradesRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<MyTradesResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#my-trades Binance API Documentation}\n     */\n    myTrades(requestParameters: MyTradesRequest): Promise<WebsocketApiResponse<MyTradesResponse>> {\n        return this.accountApi.myTrades(requestParameters);\n    }\n\n    /**\n     * Query execution status of all open order lists.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight(IP): 6\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory -> Database\n     *\n     * @summary Current open Order lists (USER_DATA)\n     * @param {OpenOrderListsStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OpenOrderListsStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#open-order-lists-status Binance API Documentation}\n     */\n    openOrderListsStatus(\n        requestParameters: OpenOrderListsStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OpenOrderListsStatusResponse>> {\n        return this.accountApi.openOrderListsStatus(requestParameters);\n    }\n\n    /**\n     * Query execution status of all open orders.\n     *\n     * If you need to continuously monitor order status updates, please consider using WebSocket Streams:\n     *\n     * `userDataStream.subscribe` if on an authenticated session\n     * `userDataStream.subscribe.signature` if subscribing through signature subscription\n     *\n     * Weight: | Parameter | Weight |\n     * | --------- | ------ |\n     * | `symbol`  |      6 |\n     * | none      |     80 |\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     * Data Source: Memory => Database\n     *\n     * @summary Current open orders (USER_DATA)\n     * @param {OpenOrdersStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OpenOrdersStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#open-orders-status Binance API Documentation}\n     */\n    openOrdersStatus(\n        requestParameters: OpenOrdersStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OpenOrdersStatusResponse>> {\n        return this.accountApi.openOrdersStatus(requestParameters);\n    }\n\n    /**\n     * Queries all amendments of a single order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * @summary Query Order Amendments (USER_DATA)\n     * @param {OrderAmendmentsRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderAmendmentsResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-amendments Binance API Documentation}\n     */\n    orderAmendments(\n        requestParameters: OrderAmendmentsRequest\n    ): Promise<WebsocketApiResponse<OrderAmendmentsResponse>> {\n        return this.accountApi.orderAmendments(requestParameters);\n    }\n\n    /**\n     * Check execution status of an Order list.\n     *\n     * For execution status of individual orders, use `order.status`.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * `origClientOrderId` refers to `listClientOrderId` of the order list itself.\n     *\n     * If both `origClientOrderId` and `orderListId` parameters are specified,\n     * only `origClientOrderId` is used and `orderListId` is ignored.\n     *\n     * @summary Query Order list (USER_DATA)\n     * @param {OrderListStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-list-status Binance API Documentation}\n     */\n    orderListStatus(\n        requestParameters: OrderListStatusRequest = {}\n    ): Promise<WebsocketApiResponse<OrderListStatusResponse>> {\n        return this.accountApi.orderListStatus(requestParameters);\n    }\n\n    /**\n     * Check execution status of an order.\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory => Database\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * For some historical orders the `cummulativeQuoteQty` response field may be negative,\n     * meaning the data is not available at this time.\n     *\n     * @summary Query order (USER_DATA)\n     * @param {OrderStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/account#order-status Binance API Documentation}\n     */\n    orderStatus(\n        requestParameters: OrderStatusRequest\n    ): Promise<WebsocketApiResponse<OrderStatusResponse>> {\n        return this.accountApi.orderStatus(requestParameters);\n    }\n\n    /**\n     * Authenticate WebSocket connection using the provided API key.\n     *\n     * After calling `session.logon`, you can omit `apiKey` and `signature` parameters for future requests that require them.\n     *\n     * Note that only one API key can be authenticated.\n     *\n     * Calling `session.logon` multiple times changes the current authenticated API key.\n     *\n     **Note:** Only Ed25519 keys are supported for this feature.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: USER_DATA\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log in with API key (USER_DATA)\n     * @param {SessionLogonRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SessionLogonResponse>[]>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-logon Binance API Documentation}\n     */\n    sessionLogon(\n        requestParameters: SessionLogonRequest = {}\n    ): Promise<WebsocketApiResponse<SessionLogonResponse>[]> {\n        return this.authApi.sessionLogon(requestParameters);\n    }\n\n    /**\n     * Forget the API key previously authenticated. If the connection is not authenticated, this request does nothing.\n     *\n     * Note that the WebSocket connection stays open after `session.logout` request. You can continue using the connection, but now you will have to explicitly provide the `apiKey` and `signature` parameters where needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Log out of the session\n     * @param {SessionLogoutRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SessionLogoutResponse>[]>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-logout Binance API Documentation}\n     */\n    sessionLogout(\n        requestParameters: SessionLogoutRequest = {}\n    ): Promise<WebsocketApiResponse<SessionLogoutResponse>[]> {\n        return this.authApi.sessionLogout(requestParameters);\n    }\n\n    /**\n     * Query the status of the WebSocket connection,\n     * inspecting which API key (if any) is used to authorize requests.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query session status\n     * @param {SessionStatusRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SessionStatusResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/auth#session-status Binance API Documentation}\n     */\n    sessionStatus(\n        requestParameters: SessionStatusRequest = {}\n    ): Promise<WebsocketApiResponse<SessionStatusResponse>> {\n        return this.authApi.sessionStatus(requestParameters);\n    }\n\n    /**\n     * Query current exchange trading rules, rate limits, and symbol\n     * information.\n     *\n     * Weight(IP): 20\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Notes:**\n     * If the value provided to `symbol` or `symbols` do not exist, the endpoint will throw an error saying the symbol is invalid.\n     * All parameters are optional.\n     * Only one of `symbol`, `symbols`, `permissions` parameters can be specified.\n     * Without parameters, `exchangeInfo` displays all symbols with `[\"SPOT\", \"MARGIN\", \"LEVERAGED\"]` permissions.\n     * In order to list *all* active symbols on the exchange, you need to explicitly request all permissions.\n     * `permissions` accepts either a list of permissions, or a single permission name. E.g. `\"SPOT\"`.\n     *\n     **Examples of Symbol Permissions Interpretation from the Response:**\n     *\n     * `[[\"A\",\"B\"]]` means you may place an order if your account has either permission \"A\" **or** permission \"B\".\n     * `[[\"A\"],[\"B\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\".\n     * `[[\"A\"],[\"B\",\"C\"]]` means you can place an order if your account has permission \"A\" **and** permission \"B\" or permission \"C\". (Inclusive or is applied here, not exclusive or, so your account may have both permission \"B\" and permission \"C\".)\n     *\n     * @summary Exchange information\n     * @param {ExchangeInfoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<ExchangeInfoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#exchange-info Binance API Documentation}\n     */\n    exchangeInfo(\n        requestParameters: ExchangeInfoRequest = {}\n    ): Promise<WebsocketApiResponse<ExchangeInfoResponse>> {\n        return this.generalApi.exchangeInfo(requestParameters);\n    }\n\n    /**\n     * Query execution rules for symbols.\n     *\n     * Weight: Parameter | Weight\n     * --- | ---\n     * `symbol` | 2\n     * `symbols` | 2 for each `symbol`, capped at a max of 40\n     * `symbolStatus` | 40\n     * None | 40\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     **Note:** No combination of multiple parameters is allowed.\n     *\n     * @summary Query Execution Rules\n     * @param {ExecutionRulesRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<ExecutionRulesResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#execution-rules Binance API Documentation}\n     */\n    executionRules(\n        requestParameters: ExecutionRulesRequest = {}\n    ): Promise<WebsocketApiResponse<ExecutionRulesResponse>> {\n        return this.generalApi.executionRules(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the WebSocket API.\n     *\n     * Note: You can use regular WebSocket ping frames to test connectivity as well, WebSocket API will respond with pong frames as soon as possible. ping request along with time is a safe way to test request-response handling in your application.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test connectivity\n     * @param {PingRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<PingResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#ping Binance API Documentation}\n     */\n    ping(requestParameters: PingRequest = {}): Promise<WebsocketApiResponse<PingResponse>> {\n        return this.generalApi.ping(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the WebSocket API and get the current server time.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Check server time\n     * @param {TimeRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TimeResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/general#time Binance API Documentation}\n     */\n    time(requestParameters: TimeRequest = {}): Promise<WebsocketApiResponse<TimeResponse>> {\n        return this.generalApi.time(requestParameters);\n    }\n\n    /**\n     * Get current average price for a symbol.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Current average price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<AvgPriceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#avg-price Binance API Documentation}\n     */\n    avgPrice(requestParameters: AvgPriceRequest): Promise<WebsocketApiResponse<AvgPriceResponse>> {\n        return this.marketApi.avgPrice(requestParameters);\n    }\n\n    /**\n     * Get block trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     * - Data Source: Database\n     *\n     * @summary Historical Block Trades\n     * @param {BlockTradesHistoricalRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<BlockTradesHistoricalResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#block-trades-historical Binance API Documentation}\n     */\n    blockTradesHistorical(\n        requestParameters: BlockTradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<BlockTradesHistoricalResponse>> {\n        return this.marketApi.blockTradesHistorical(requestParameters);\n    }\n\n    /**\n     * Get current order book.\n     *\n     * Note that this request returns limited market depth.\n     *\n     * If you need to continuously monitor order book updates, please consider using WebSocket Streams:\n     * `<symbol>@depth<levels>`\n     * `<symbol>@depth`\n     *\n     * You can use `depth` request together with `<symbol>@depth` streams to [maintain a local order book](/products/spot/web-socket-streams#how-to-manage-a-local-order-book-correctly).\n     *\n     * Weight: Adjusted based on the limit:\n     *\n     * |Limit|Request Weight\n     * ------|-------\n     * 1-100|  5\n     * 101-500| 25\n     * 501-1000| 50\n     * 1001-5000| 250\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Order book\n     * @param {DepthRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<DepthResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#depth Binance API Documentation}\n     */\n    depth(requestParameters: DepthRequest): Promise<WebsocketApiResponse<DepthResponse>> {\n        return this.marketApi.depth(requestParameters);\n    }\n\n    /**\n     * Get klines (candlestick bars).\n     *\n     * Klines are uniquely identified by their open & close time.\n     *\n     * If you need access to real-time kline updates, please consider using WebSocket Streams:\n     * `<symbol>@kline_<interval>`\n     *\n     * If you need historical kline data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#klines).\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported kline intervals (case-sensitive):\n     *\n     * Interval  | `interval` value\n     * --------- | ----------------\n     * seconds   | `1s`\n     * minutes   | `1m`, `3m`, `5m`, `15m`, `30m`\n     * hours     | `1h`, `2h`, `4h`, `6h`, `8h`, `12h`\n     * days      | `1d`, `3d`\n     * weeks     | `1w`\n     * months    | `1M`\n     *\n     **Notes:**\n     *\n     * If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     * Accepted range is strictly [-12:00 to +14:00] inclusive\n     * If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary Klines\n     * @param {KlinesRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<KlinesResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#klines Binance API Documentation}\n     */\n    klines(requestParameters: KlinesRequest): Promise<WebsocketApiResponse<KlinesResponse>> {\n        return this.marketApi.klines(requestParameters);\n    }\n\n    /**\n     * Query Reference Price\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<ReferencePriceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#reference-price Binance API Documentation}\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceResponse>> {\n        return this.marketApi.referencePrice(requestParameters);\n    }\n\n    /**\n     * Query Reference Price Calculation\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Query Reference Price Calculation\n     * @param {ReferencePriceCalculationRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<ReferencePriceCalculationResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#reference-price-calculation Binance API Documentation}\n     */\n    referencePriceCalculation(\n        requestParameters: ReferencePriceCalculationRequest\n    ): Promise<WebsocketApiResponse<ReferencePriceCalculationResponse>> {\n        return this.marketApi.referencePriceCalculation(requestParameters);\n    }\n\n    /**\n     * Get rolling window price change statistics with a custom window.\n     *\n     * This request is similar to `ticker.24hr` but statistics are computed on demand using the arbitrary window you specify.\n     *\n     **Note:** Window size precision is limited to 1 minute.\n     * While the `closeTime` is the current time of the request, `openTime` always start on a minute boundary.\n     * As such, the effective window might be up to 59999 ms wider than the requested `windowSize`.\n     *\n     * <details>\n     * <summary>Window computation example</summary>\n     *\n     * For example, a request for `\"windowSize\": \"7d\"` might result in the following window:\n     *\n     * ```javascript\n     * {\n     * \"openTime\": 1659580020000,\n     * \"closeTime\": 1660184865291\n     * }\n     * ```\n     *\n     * Time of the request – `closeTime` – is 1660184865291 (August 11, 2022 02:27:45.291).\n     * Requested window size should put the `openTime` 7 days before that – August 4, 02:27:45.291 –\n     * but due to limited precision it ends up a bit earlier: 1659580020000 (August 4, 2022 02:27:00),\n     * exactly at the start of a minute.\n     * </details>\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     * `<symbol>@ticker_<window_size>` or `!ticker_<window-size>@arr`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * | Symbols | Weight |\n     * |:-------:|:------:|\n     * |    1–50 | 4 per symbol |\n     * |  51–100 |    200 |\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Supported window sizes:\n     *\n     * Unit    | `windowSize` value\n     * ------- | ------------------\n     * minutes | `1m`, `2m` ... `59m`\n     * hours   | `1h`, `2h` ... `23h`\n     * days    | `1d`, `2d` ... `7d`\n     *\n     * Notes:\n     *\n     * Either `symbol` or `symbols` must be specified.\n     *\n     * Maximum number of symbols in one request: 200.\n     *\n     * Window size units cannot be combined.\n     * E.g., <code>1d 2h</code> is not supported.\n     *\n     * @summary Rolling window price change statistics\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TickerResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker Binance API Documentation}\n     */\n    ticker(requestParameters: TickerRequest = {}): Promise<WebsocketApiResponse<TickerResponse>> {\n        return this.marketApi.ticker(requestParameters);\n    }\n\n    /**\n     * Get 24-hour rolling window price change statistics.\n     *\n     * If you need to continuously monitor trading statistics, please consider using WebSocket Streams:\n     *\n     * `<symbol>@ticker` or `!ticker@arr`\n     *\n     * `<symbol>@miniTicker` or `!miniTicker@arr`\n     *\n     * If you need different window sizes,\n     *\n     * use the `ticker` request.\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 80|\n     * |symbols| 1-20 |2|\n     * | | 21-100 |40|\n     * | | 101+ |80|\n     * | |omitted| 80|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary 24hr ticker price change statistics\n     * @param {Ticker24hrRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<Ticker24hrResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker24hr Binance API Documentation}\n     */\n    ticker24hr(\n        requestParameters: Ticker24hrRequest = {}\n    ): Promise<WebsocketApiResponse<Ticker24hrResponse>> {\n        return this.marketApi.ticker24hr(requestParameters);\n    }\n\n    /**\n     * Get the current best price and quantity on the order book.\n     *\n     * If you need access to real-time order book ticker updates, please\n     * consider using WebSocket Streams:\n     *\n     * `<symbol>@bookTicker`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol order book ticker\n     * @param {TickerBookRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TickerBookResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-book Binance API Documentation}\n     */\n    tickerBook(\n        requestParameters: TickerBookRequest = {}\n    ): Promise<WebsocketApiResponse<TickerBookResponse>> {\n        return this.marketApi.tickerBook(requestParameters);\n    }\n\n    /**\n     * Get the latest market price for a symbol.\n     *\n     * If you need access to real-time price updates, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * `<symbol>@trade`\n     *\n     * Weight: Adjusted based on the number of requested symbols:\n     *\n     * |Parameter|Symbols Provided|Weight|\n     * |---|---|---|\n     * |symbol| 1 |2|\n     * | |omitted| 4|\n     * |symbols| Any |4|\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * Notes:\n     *\n     * `symbol` and `symbols` cannot be used together.\n     *\n     * If no symbol is specified, returns information about all symbols currently trading on the exchange.\n     *\n     * @summary Symbol price ticker\n     * @param {TickerPriceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TickerPriceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-price Binance API Documentation}\n     */\n    tickerPrice(\n        requestParameters: TickerPriceRequest = {}\n    ): Promise<WebsocketApiResponse<TickerPriceResponse>> {\n        return this.marketApi.tickerPrice(requestParameters);\n    }\n\n    /**\n     * Price change statistics for a trading day.\n     *\n     * Weight: 4 for each requested symbol regardless of windowSize. The weight for this request will cap at 200 once the number of symbols in the request is more than 50.\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     **Notes:**\n     *\n     * Supported values for `timeZone`:\n     * Hours and minutes (e.g. `-1:00`, `05:45`)\n     * Only hours (e.g. `0`, `8`, `4`)\n     *\n     *\n     * @summary Trading Day Ticker\n     * @param {TickerTradingDayRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TickerTradingDayResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ticker-trading-day Binance API Documentation}\n     */\n    tickerTradingDay(\n        requestParameters: TickerTradingDayRequest = {}\n    ): Promise<WebsocketApiResponse<TickerTradingDayResponse>> {\n        return this.marketApi.tickerTradingDay(requestParameters);\n    }\n\n    /**\n     * Get aggregate trades.\n     *\n     * An *aggregate trade* (aggtrade) represents one or more individual\n     * trades.\n     *\n     * Trades that fill at the same time, from the same taker order, with the\n     * same price –\n     *\n     * those trades are collected into an aggregate trade with total quantity\n     * of the individual trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@aggTrade`\n     *\n     * If you need historical aggregate trade data, please consider using [data.binance.vision](https://github.com/binance/binance-public-data/#aggtrades).\n     *\n     * Weight(IP): 4\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `fromId` is specified, return aggtrades with aggregate trade ID >= `fromId`. Use `fromId` and `limit` to page through all aggtrades.\n     * - If `startTime` and/or `endTime` are specified, aggtrades are filtered by execution time (`T`). `fromId` cannot be used together with `startTime` and `endTime`.\n     * - If no condition is specified, the most recent aggregate trades are returned.\n     *\n     * @summary Aggregate trades\n     * @param {TradesAggregateRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TradesAggregateResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-aggregate Binance API Documentation}\n     */\n    tradesAggregate(\n        requestParameters: TradesAggregateRequest\n    ): Promise<WebsocketApiResponse<TradesAggregateResponse>> {\n        return this.marketApi.tradesAggregate(requestParameters);\n    }\n\n    /**\n     * Get historical trades.\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * Notes:\n     *\n     * If `fromId` is not specified, the most recent trades are returned.\n     *\n     * @summary Historical trades\n     * @param {TradesHistoricalRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TradesHistoricalResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-historical Binance API Documentation}\n     */\n    tradesHistorical(\n        requestParameters: TradesHistoricalRequest\n    ): Promise<WebsocketApiResponse<TradesHistoricalResponse>> {\n        return this.marketApi.tradesHistorical(requestParameters);\n    }\n\n    /**\n     * Get recent trades.\n     *\n     * If you need access to real-time trading activity, please consider using\n     * WebSocket Streams:\n     *\n     * `<symbol>@trade`\n     *\n     * Weight(IP): 25\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Recent trades\n     * @param {TradesRecentRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<TradesRecentResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#trades-recent Binance API Documentation}\n     */\n    tradesRecent(\n        requestParameters: TradesRecentRequest\n    ): Promise<WebsocketApiResponse<TradesRecentResponse>> {\n        return this.marketApi.tradesRecent(requestParameters);\n    }\n\n    /**\n     * Get klines (candlestick bars) optimized for presentation.\n     *\n     * This request is similar to `klines`, having the same parameters and response. `uiKlines` return modified kline data, optimized for presentation of candlestick charts.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Database\n     *\n     * - If `startTime` and `endTime` are not sent, the most recent klines are returned.\n     * - Supported values for `timeZone`:\n     * - Hours and minutes (e.g. `-1:00`, `05:45`)\n     * - Only hours (e.g. `0`, `8`, `4`)\n     * - Accepted range is strictly [-12:00 to +14:00] inclusive\n     * - If `timeZone` provided, kline intervals are interpreted in that timezone instead of UTC.\n     * - Note that `startTime` and `endTime` are always interpreted in UTC, regardless of `timeZone`.\n     *\n     * @summary UI Klines\n     * @param {UiKlinesRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<UiKlinesResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/market#ui-klines Binance API Documentation}\n     */\n    uiKlines(requestParameters: UiKlinesRequest): Promise<WebsocketApiResponse<UiKlinesResponse>> {\n        return this.marketApi.uiKlines(requestParameters);\n    }\n\n    /**\n     * Cancel all open orders on a symbol.\n     * This includes orders that are part of an order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Cancel open orders (TRADE)\n     * @param {OpenOrdersCancelAllRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OpenOrdersCancelAllResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#open-orders-cancel-all Binance API Documentation}\n     */\n    openOrdersCancelAll(\n        requestParameters: OpenOrdersCancelAllRequest\n    ): Promise<WebsocketApiResponse<OpenOrdersCancelAllResponse>> {\n        return this.tradeApi.openOrdersCancelAll(requestParameters);\n    }\n\n    /**\n     * Reduce the quantity of an existing open order.\n     *\n     * This adds 0 orders to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [Order Amend Keep Priority FAQ](/products/spot/faqs/order_amend_keep_priority) to learn more.\n     *\n     * Weight(IP): 4\n     *\n     * Unfilled Order Count: 0\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Order Amend Keep Priority (TRADE)\n     * @param {OrderAmendKeepPriorityRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderAmendKeepPriorityResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-amend-keep-priority Binance API Documentation}\n     */\n    orderAmendKeepPriority(\n        requestParameters: OrderAmendKeepPriorityRequest\n    ): Promise<WebsocketApiResponse<OrderAmendKeepPriorityResponse>> {\n        return this.tradeApi.orderAmendKeepPriority(requestParameters);\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderId` and `origClientOrderId` parameters are provided, the `orderId` is searched first, then the `origClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `newClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * If you cancel an order that is a part of an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel order (TRADE)\n     * @param {OrderCancelRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderCancelResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-cancel Binance API Documentation}\n     */\n    orderCancel(\n        requestParameters: OrderCancelRequest\n    ): Promise<WebsocketApiResponse<OrderCancelResponse>> {\n        return this.tradeApi.orderCancel(requestParameters);\n    }\n\n    /**\n     * * Cancel an existing order and immediately place a new order instead of the canceled one.\n     * A new order that was not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     * You can only cancel an individual order from an orderList using this method, but the result is the same as canceling the entire orderList.not attempted (i.e. when `newOrderResult: NOT_ATTEMPTED`), will still increase the unfilled order count by 1.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Similar to the [`order.place`](#order-place) request,\n     * additional mandatory parameters (*) are determined by the new order `type`.\n     *\n     * Available `cancelReplaceMode` options:\n     *\n     * `STOP_ON_FAILURE` – if cancellation request fails, new order placement will not be attempted.\n     * `ALLOW_FAILURE` – new order placement will be attempted even if the cancel request fails.\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th colspan=3 align=left>Request</th>\n     * <th colspan=3 align=left>Response</th>\n     * </tr>\n     * <tr>\n     * <th><code>cancelReplaceMode</code></th>\n     * <th><code>orderRateLimitExceededMode</code></th>\n     * <th>Unfilled Order Count</th>\n     * <th><code>cancelResult</code></th>\n     * <th><code>newOrderResult</code></th>\n     * <th><code>status</code></th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td rowspan=\"11\"><code>STOP_ON_FAILURE</code></td>\n     * <td rowspan=\"6\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"3\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"5\"><code>CANCEL_ONLY</code></td>\n     * <td rowspan=\"3\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"2\">Exceeds Limits</td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>➖ <code>NOT_ATTEMPTED</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>429</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"16\"><code>ALLOW_FAILURE</code></td>\n     * <td rowspan=\"8\"><code>DO_NOTHING</code></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"8\"><CODE>CANCEL_ONLY</CODE></td>\n     * <td rowspan=\"4\">Within Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * <tr>\n     * <td rowspan=\"4\">Exceeds Limits</td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right><code>200</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>400</code></td>\n     * </tr>\n     * <tr>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td align=right>N/A</td>\n     * </tr>\n     * <tr>\n     * <td>✅ <code>SUCCESS</code></td>\n     * <td>❌ <code>FAILURE</code></td>\n     * <td align=right><code>409</code></td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Notes:\n     *\n     * If both `cancelOrderId` and `cancelOrigClientOrderId` parameters are provided, the `cancelOrderId` is searched first, then the `cancelOrigClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * `cancelNewClientOrderId` will replace `clientOrderId` of the canceled order, freeing it up for new orders.\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the placed order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * The new order can reuse old `clientOrderId` of the canceled order.\n     *\n     * This cancel-replace operation is **not transactional**.\n     *\n     * If one operation succeeds but the other one fails, the successful operation is still executed.\n     *\n     * For example, in `STOP_ON_FAILURE` mode, if the new order placement fails, the old order is still canceled.\n     *\n     * Filters and order count limits are evaluated before cancellation and order placement occurs.\n     *\n     * If new order placement is not attempted, your order count is still incremented.\n     *\n     * Like [`order.cancel`](#order-cancel), if you cancel an individual order from an order list, the entire order list is canceled.\n     *\n     * The performance for canceling an order (single cancel or as part of a cancel-replace) is always better when only `orderId` is sent. Sending `origClientOrderId` or both `orderId` + `origClientOrderId` will be slower.\n     *\n     * @summary Cancel and replace order (TRADE)\n     * @param {OrderCancelReplaceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderCancelReplaceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-cancel-replace Binance API Documentation}\n     */\n    orderCancelReplace(\n        requestParameters: OrderCancelReplaceRequest\n    ): Promise<WebsocketApiResponse<OrderCancelReplaceResponse>> {\n        return this.tradeApi.orderCancelReplace(requestParameters);\n    }\n\n    /**\n     * Cancel an active order list.\n     *\n     * Weight(IP): 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * If both `orderListId` and `listClientOrderId` parameters are provided, the `orderListId` is searched first, then the `listClientOrderId` from that result is checked against that order. If both conditions are not met the request will be rejected.\n     *\n     * Canceling an individual order with [`order.cancel`](#order-cancel) will cancel the entire order list as well.\n     *\n     * @summary Cancel Order list (TRADE)\n     * @param {OrderListCancelRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListCancelResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-cancel Binance API Documentation}\n     */\n    orderListCancel(\n        requestParameters: OrderListCancelRequest\n    ): Promise<WebsocketApiResponse<OrderListCancelResponse>> {\n        return this.tradeApi.orderListCancel(requestParameters);\n    }\n\n    /**\n     * Send in a new one-cancels-the-other (OCO) pair:\n     * `LIMIT_MAKER` + `STOP_LOSS`/`STOP_LOSS_LIMIT` orders (called *legs*),\n     * where activation of one order immediately cancels the other.\n     *\n     * This adds 1 order to `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * Notes:\n     *\n     * `listClientOrderId` parameter specifies `listClientOrderId` for the OCO pair.\n     *\n     * A new OCO with the same `listClientOrderId` is accepted only when the previous one is filled or completely expired.\n     *\n     * `listClientOrderId` is distinct from `clientOrderId` of individual orders.\n     *\n     * `limitClientOrderId` and `stopClientOrderId` specify `clientOrderId` values for both legs of the OCO.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Price restrictions on the legs:\n     *\n     * | `side` | Price relation |\n     * | ------ | -------------- |\n     * | `BUY`  | `price` < market price < `stopPrice` |\n     * | `SELL` | `price` > market price > `stopPrice` |\n     *\n     * Both legs have the same `quantity`.\n     *\n     * However, you can set different iceberg quantity for individual legs.\n     *\n     * If `stopIcebergQty` is used, `stopLimitTimeInForce` must be `GTC`.\n     *\n     * `trailingDelta` applies only to the `STOP_LOSS`/`STOP_LOSS_LIMIT` leg of the OCO.\n     *\n     * @summary Place new OCO - Deprecated (TRADE)\n     * @param {OrderListPlaceRequest} requestParameters Request parameters.\n     * @deprecated\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place Binance API Documentation}\n     */\n    orderListPlace(\n        requestParameters: OrderListPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceResponse>> {\n        return this.tradeApi.orderListPlace(requestParameters);\n    }\n\n    /**\n     * Send in an one-cancels-the-other (OCO) pair, where activation of one order immediately cancels the other.\n     *\n     * An OCO has 2 orders called the **above order** and **below order**.\n     *\n     * One of the orders must be a `LIMIT_MAKER/TAKE_PROFIT/TAKE_PROFIT_LIMIT` order and the other must be\n     * `STOP_LOSS` or `STOP_LOSS_LIMIT` order.\n     *\n     * Price restrictions:\n     * If the OCO is on the `SELL` side:\n     * `LIMIT_MAKER/TAKE_PROFIT_LIMIT` `price` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT`\n     * `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT\n     * stopPrice`\n     * If the OCO is on the `BUY` side:\n     * `LIMIT_MAKER` `price` < Last Traded Price < `STOP_LOSS/STOP_LOSS_LIMIT` `stopPrice`\n     * `TAKE_PROFIT stopPrice` > Last Traded Price > `STOP_LOSS/STOP_LOSS_LIMIT stopPrice`\n     *  OCOs add **2 orders** to the `EXCHANGE_MAX_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary Place new Order list - OCO (TRADE)\n     * @param {OrderListPlaceOcoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceOcoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-oco Binance API Documentation}\n     */\n    orderListPlaceOco(\n        requestParameters: OrderListPlaceOcoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOcoResponse>> {\n        return this.tradeApi.orderListPlaceOco(requestParameters);\n    }\n\n    /**\n     * Place an [OPO](/products/spot/faqs/opo).\n     *\n     * OPOs add 2 orders to the EXCHANGE_MAX_NUM_ORDERS filter and MAX_NUM_ORDERS filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPO (TRADE)\n     * @param {OrderListPlaceOpoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceOpoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-opo Binance API Documentation}\n     */\n    orderListPlaceOpo(\n        requestParameters: OrderListPlaceOpoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpoResponse>> {\n        return this.tradeApi.orderListPlaceOpo(requestParameters);\n    }\n\n    /**\n     * Place an [OPOCO](/products/spot/faqs/opo).\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * @summary OPOCO (TRADE)\n     * @param {OrderListPlaceOpocoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceOpocoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-opoco Binance API Documentation}\n     */\n    orderListPlaceOpoco(\n        requestParameters: OrderListPlaceOpocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOpocoResponse>> {\n        return this.tradeApi.orderListPlaceOpoco(requestParameters);\n    }\n\n    /**\n     * Places an OTO.\n     *\n     * An OTO (One-Triggers-the-Other) is an order list comprised of 2 orders.\n     *\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the\n     * working order goes on the order book.\n     *\n     * The second order is called the **pending order**. It can be any order type except for `MARKET` orders using\n     * parameter `quoteOrderQty`. The pending order is only placed on the order book when the working order gets\n     **fully filled**.\n     *\n     * If either the working order or the pending order is cancelled individually, the other order in the order list\n     * will also be canceled or expired.\n     *\n     * When the order list is placed, if the working order gets **immediately fully filled**, the placement response\n     * will show the working order as `FILLED` but the pending order will still appear as `PENDING_NEW`. You need to\n     * query the status of the pending order again to see its updated status.\n     *\n     * OTOs add **2 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 2\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingType` or `workingType`**\n     *\n     * Depending on the `pendingType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                  |Additional mandatory parameters|Additional information|\n     * |----                                                  |----                           |------\n     * |`workingType` = `LIMIT`                               |`workingTimeInForce`           |\n     * |`pendingType` = `LIMIT`                                |`pendingPrice`, `pendingTimeInForce`          |\n     * |`pendingType` = `STOP_LOSS` or `TAKE_PROFIT`           |`pendingStopPrice` and/or `pendingTrailingDelta`|\n     * |`pendingType` =`STOP_LOSS_LIMIT` or `TAKE_PROFIT_LIMIT`|`pendingPrice`, `pendingStopPrice` and/or `pendingTrailingDelta`, `pendingTimeInForce`|\n     *\n     * @summary Place new Order list - OTO (TRADE)\n     * @param {OrderListPlaceOtoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceOtoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-oto Binance API Documentation}\n     */\n    orderListPlaceOto(\n        requestParameters: OrderListPlaceOtoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtoResponse>> {\n        return this.tradeApi.orderListPlaceOto(requestParameters);\n    }\n\n    /**\n     * Place an OTOCO.\n     *\n     * An OTOCO (One-Triggers-One-Cancels-the-Other) is an order list comprised of 3 orders.\n     * The first order is called the **working order** and must be `LIMIT` or `LIMIT_MAKER`. Initially, only the working order goes on the order book.\n     * The behavior of the working order is the same as the [OTO](#order-list-place-oto).\n     * OTOCO has 2 pending orders (pending above and pending below), forming an OCO pair. The pending orders are only placed on the order book when the working order gets **fully filled**.\n     * The rules of the pending above and pending below follow the same rules as the [Order list OCO](#order-list-place-oco).\n     * OTOCOs add **3 orders** to the `EXCHANGE_MAX_NUM_ORDERS` filter and `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 3\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Mandatory parameters based on `pendingAboveType`, `pendingBelowType` or `workingType`**\n     *\n     * Depending on the `pendingAboveType`/`pendingBelowType` or `workingType`, some optional parameters will become mandatory.\n     *\n     * |Type                                                       |Additional mandatory parameters|Additional information|\n     * |----                                                       |----                           |------\n     * |`workingType` = `LIMIT`                                    |`workingTimeInForce`           |\n     * |`pendingAboveType`= `LIMIT_MAKER`                                |`pendingAbovePrice`          |\n     * |`pendingAboveType` = `STOP_LOSS/TAKE_PROFIT`         |`pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`|\n     * |`pendingAboveType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingAbovePrice`, `pendingAboveStopPrice` and/or `pendingAboveTrailingDelta`, `pendingAboveTimeInForce`|\n     * |`pendingBelowType`= `LIMIT_MAKER`                                |`pendingBelowPrice`          |\n     * `pendingBelowType= STOP_LOSS/TAKE_PROFIT`         |`pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`|\n     * |`pendingBelowType=STOP_LOSS_LIMIT/TAKE_PROFIT_LIMIT`|`pendingBelowPrice`, `pendingBelowStopPrice` and/or `pendingBelowTrailingDelta`, `pendingBelowTimeInForce`|\n     *\n     * @summary Place new Order list - OTOCO (TRADE)\n     * @param {OrderListPlaceOtocoRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderListPlaceOtocoResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-list-place-otoco Binance API Documentation}\n     */\n    orderListPlaceOtoco(\n        requestParameters: OrderListPlaceOtocoRequest\n    ): Promise<WebsocketApiResponse<OrderListPlaceOtocoResponse>> {\n        return this.tradeApi.orderListPlaceOtoco(requestParameters);\n    }\n\n    /**\n     * Send in a new order.\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     * <a id=\"order-type\">Certain parameters (*)</a> become mandatory based on the order `type`:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Mandatory parameters</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <ul>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code> or <code>quoteOrderQty</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <ul>\n     * <li><code>timeInForce</code></li>\n     * <li><code>price</code></li>\n     * <li><code>quantity</code></li>\n     * <li><code>stopPrice</code> or <code>trailingDelta</code></li>\n     * </ul>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * Supported order types:\n     *\n     * <table>\n     * <thead>\n     * <tr>\n     * <th>Order <code>type</code></th>\n     * <th>Description</th>\n     * </tr>\n     * </thead>\n     * <tbody>\n     * <tr>\n     * <td><code>LIMIT</code></td>\n     * <td>\n     * <p>\n     * Buy or sell <code>quantity</code> at the specified <code>price</code> or better.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>LIMIT_MAKER</code></td>\n     * <td>\n     * <p>\n     * <code>LIMIT</code> order that will be rejected if it immediately matches and trades as a taker.\n     * </p>\n     * <p>\n     * This order type is also known as a POST-ONLY order.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>MARKET</code></td>\n     * <td>\n     * <p>\n     * Buy or sell at the best available market price.\n     * </p>\n     * <ul>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quantity</code> parameter\n     * specifies the amount of the <em>base asset</em> you want to buy or sell.\n     * Actually executed quantity of the quote asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY order on BTCUSDT for <code>\"quantity\": \"0.1000\"</code>\n     * specifies that you want to buy 0.1 BTC at the best available price.\n     * If there is not enough BTC at the best price, keep buying at the next best price,\n     * until either your order is filled, or you run out of USDT, or market runs out of BTC.\n     * </p>\n     * </li>\n     * <li>\n     * <p>\n     * <code>MARKET</code> order with <code>quoteOrderQty</code> parameter\n     * specifies the amount of the <em>quote asset</em> you want to spend (when buying) or receive (when selling).\n     * Actually executed quantity of the base asset will be determined by available market liquidity.\n     * </p>\n     * <p>\n     * E.g., a MARKET BUY on BTCUSDT for <code>\"quoteOrderQty\": \"100.00\"</code>\n     * specifies that you want to buy as much BTC as you can for 100 USDT at the best available price.\n     * Similarly, a SELL order will sell as much available BTC as needed for you to receive 100 USDT\n     * (before commission).\n     * </p>\n     * </li>\n     * </ul>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS</code></td>\n     * <td>\n     * <p>\n     * Execute a <code>MARKET</code> order for given <code>quantity</code> when specified conditions are met.\n     * </p>\n     * <p>\n     * I.e., when <code>stopPrice</code> is reached, or when <code>trailingDelta</code> is activated.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>STOP_LOSS_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Place a <code>LIMIT</code> order with given parameters when specified conditions are met.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * <tr>\n     * <td><code>TAKE_PROFIT_LIMIT</code></td>\n     * <td>\n     * <p>\n     * Like <code>STOP_LOSS_LIMIT</code> but activates when market price moves in the favorable direction.\n     * </p>\n     * </td>\n     * </tr>\n     * </tbody>\n     * </table>\n     *\n     * <a id=\"pegged-orders-info\"></a>\n     * Notes on using parameters for Pegged Orders:\n     *\n     * These parameters are allowed for `LIMIT`, `LIMIT_MAKER`, `STOP_LOSS_LIMIT`, `TAKE_PROFIT_LIMIT` orders.\n     * If `pegPriceType` is specified, `price` becomes optional. Otherwise, it is still mandatory.\n     * `pegPriceType=PRIMARY_PEG` means the primary peg, that is the best price on the same side of the order book as your order.\n     * `pegPriceType=MARKET_PEG` means the market peg, that is the best price on the opposite side of the order book from your order.\n     * Use `pegOffsetType` and `pegOffsetValue` to request a price level other than the best one. These parameters must be specified together.\n     *\n     * <a id=\"timeInForce\"></a>\n     *\n     * Available `timeInForce` options,\n     * setting how long the order should be active before expiration:\n     *\n     * TIF  | Description\n     * ----- | --------------\n     * `GTC` | **Good 'til Canceled** – the order will remain on the book until you cancel it, or the order is completely filled.\n     * `IOC` | **Immediate or Cancel** – the order will be filled for as much as possible, the unfilled quantity immediately expires.\n     * `FOK` | **Fill or Kill** – the order will expire unless it cannot be immediately filled for the entire quantity.\n     *\n     * Notes:\n     *\n     * `newClientOrderId` specifies `clientOrderId` value for the order.\n     *\n     * A new order with the same `clientOrderId` is accepted only when the previous one is filled or expired.\n     *\n     * Any `LIMIT` or `LIMIT_MAKER` order can be made into an iceberg order by specifying the `icebergQty`.\n     *\n     * An order with an `icebergQty` must have `timeInForce` set to `GTC`.\n     *\n     * Trigger order price rules for `STOP_LOSS`/`TAKE_PROFIT` orders:\n     *\n     * `stopPrice` must be above market price: `STOP_LOSS BUY`, `TAKE_PROFIT SELL`\n     * `stopPrice` must be below market price: `STOP_LOSS SELL`, `TAKE_PROFIT BUY`\n     *\n     * `MARKET` orders using `quoteOrderQty` follow [`LOT_SIZE`](/products/spot/filters#lot_size) filter rules.\n     *\n     * The order will execute a quantity that has notional value as close as possible to requested `quoteOrderQty`.\n     *\n     * @summary Place new order (TRADE)\n     * @param {OrderPlaceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderPlaceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-place Binance API Documentation}\n     */\n    orderPlace(\n        requestParameters: OrderPlaceRequest\n    ): Promise<WebsocketApiResponse<OrderPlaceResponse>> {\n        return this.tradeApi.orderPlace(requestParameters);\n    }\n\n    /**\n     * Test order placement.\n     *\n     * Validates new order parameters and verifies your signature\n     * but does not send the order into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order (TRADE)\n     * @param {OrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<OrderTestResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#order-test Binance API Documentation}\n     */\n    orderTest(\n        requestParameters: OrderTestRequest\n    ): Promise<WebsocketApiResponse<OrderTestResponse>> {\n        return this.tradeApi.orderTest(requestParameters);\n    }\n\n    /**\n     * Places an order using smart order routing (SOR).\n     *\n     * This adds 1 order to the `EXCHANGE_MAX_ORDERS` filter and the `MAX_NUM_ORDERS` filter.\n     *\n     * Read [SOR FAQ](/products/spot/faqs/sor_faq) to learn more.\n     *\n     * Weight(IP): 1\n     *\n     * Unfilled Order Count: 1\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Matching Engine\n     *\n     **Note:** `sor.order.place` only supports `LIMIT` and `MARKET` orders. `quoteOrderQty` is not supported.\n     *\n     * @summary Place new order using SOR (TRADE)\n     * @param {SorOrderPlaceRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SorOrderPlaceResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#sor-order-place Binance API Documentation}\n     */\n    sorOrderPlace(\n        requestParameters: SorOrderPlaceRequest\n    ): Promise<WebsocketApiResponse<SorOrderPlaceResponse>> {\n        return this.tradeApi.sorOrderPlace(requestParameters);\n    }\n\n    /**\n     * Test new order creation and signature/recvWindow using smart order routing (SOR).\n     * Creates and validates a new order but does not send it into the matching engine.\n     *\n     * Weight: | Condition | Request Weight |\n     * | --- | --- |\n     * | Without `computeCommissionRates` | 1 |\n     * | With `computeCommissionRates` | 20 |\n     *\n     * Security Type: TRADE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Test new order using SOR (TRADE)\n     * @param {SorOrderTestRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SorOrderTestResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/trade#sor-order-test Binance API Documentation}\n     */\n    sorOrderTest(\n        requestParameters: SorOrderTestRequest\n    ): Promise<WebsocketApiResponse<SorOrderTestResponse>> {\n        return this.tradeApi.sorOrderTest(requestParameters);\n    }\n\n    /**\n     * **Note:**\n     *\n     * Users should track the corresponding subscription status of related accounts as needed.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Listing all subscriptions\n     * @param {SessionSubscriptionsRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<SessionSubscriptionsResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#session-subscriptions Binance API Documentation}\n     */\n    sessionSubscriptions(\n        requestParameters: SessionSubscriptionsRequest = {}\n    ): Promise<WebsocketApiResponse<SessionSubscriptionsResponse>> {\n        return this.userDataStreamApi.sessionSubscriptions(requestParameters);\n    }\n\n    /**\n     * Subscribe to the User Data Stream in the current WebSocket connection.\n     *\n     **Notes:**\n     * - This method requires an authenticated WebSocket connection using Ed25519 keys. Please refer to [`session.logon`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-logon).\n     * - To check the subscription status, use [`session.status`](/catalog/core-trading-spot-trading/api/ws-api/auth#session-status), see the `userDataStream` flag indicating you have have an active subscription.\n     * - User Data Stream events are available in both JSON and [SBE](/products/spot/faqs/sbe_faq) sessions.\n     * - Please refer to [User Data Streams](/products/spot/user-data-stream) for the event format details.\n     * - For SBE, only SBE schema 2:1 or later is supported.\n     *\n     * Weight(IP): 2\n     *\n     * Security Type: NONE\n     *\n     * @summary Subscribe to User Data Stream\n     * @param {UserDataStreamSubscribeRequest} requestParameters Request parameters.\n     * @param {string} [id] Optional custom stream identifier.\n     *\n     * @returns Promise<{response: WebsocketApiResponse<UserDataStreamSubscribeResponse>, stream: WebsocketStream<object>}>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-subscribe Binance API Documentation}\n     */\n    userDataStreamSubscribe(\n        requestParameters: UserDataStreamSubscribeRequest = {},\n        id?: string\n    ): Promise<{\n        response: WebsocketApiResponse<UserDataStreamSubscribeResponse>;\n        stream: WebsocketStream<UserDataStreamEventsResponse>;\n    }> {\n        return this.userDataStreamApi\n            .userDataStreamSubscribe(requestParameters)\n            .then((response) => {\n                const identifier = id || randomString();\n                const stream = createStreamHandler<UserDataStreamEventsResponse>(\n                    this.websocketBase,\n                    identifier\n                );\n                return { response, stream };\n            })\n            .catch((error) => {\n                throw error;\n            });\n    }\n\n    /**\n     * Weight(IP): 2\n     *\n     * Security Type: USER_STREAM\n     *\n     * Notes:\n     **Data Source:** Memory\n     *\n     * @summary Subscribe to User Data Stream through signature subscription (USER_STREAM)\n     * @param {UserDataStreamSubscribeSignatureRequest} requestParameters Request parameters.\n     * @param {string} [id] Optional custom stream identifier.\n     *\n     * @returns Promise<{response: WebsocketApiResponse<UserDataStreamSubscribeSignatureResponse>, stream: WebsocketStream<object>}>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-subscribe-signature Binance API Documentation}\n     */\n    userDataStreamSubscribeSignature(\n        requestParameters: UserDataStreamSubscribeSignatureRequest = {},\n        id?: string\n    ): Promise<{\n        response: WebsocketApiResponse<UserDataStreamSubscribeSignatureResponse>;\n        stream: WebsocketStream<UserDataStreamEventsResponse>;\n    }> {\n        return this.userDataStreamApi\n            .userDataStreamSubscribeSignature(requestParameters)\n            .then((response) => {\n                const identifier = id || randomString();\n                const stream = createStreamHandler<UserDataStreamEventsResponse>(\n                    this.websocketBase,\n                    identifier\n                );\n                return { response, stream };\n            })\n            .catch((error) => {\n                throw error;\n            });\n    }\n\n    /**\n     * Stop listening to the User Data Stream in the current WebSocket\n     * connection.\n     *\n     * Note that `session.logout` will only close the subscription created with `userDataStream.subscribe` but not subscriptions opened with `userDataStream.subscribe.signature`.\n     *\n     * Weight(IP): 2\n     *\n     * @summary WebSocket Unsubscribe from User Data Stream\n     * @param {UserDataStreamUnsubscribeRequest} requestParameters Request parameters.\n     *\n     * @returns Promise<WebsocketApiResponse<UserDataStreamUnsubscribeResponse>>\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-api/user-data-stream#user-data-stream-unsubscribe Binance API Documentation}\n     */\n    userDataStreamUnsubscribe(\n        requestParameters: UserDataStreamUnsubscribeRequest = {}\n    ): Promise<WebsocketApiResponse<UserDataStreamUnsubscribeResponse>> {\n        return this.userDataStreamApi.userDataStreamUnsubscribe(requestParameters);\n    }\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketAPIBase, ConfigurationWebsocketAPI } from '@binance/common';\nimport { WebsocketAPIConnection } from './websocket-api-connection';\n\nexport class WebsocketAPI {\n    private configuration: ConfigurationWebsocketAPI;\n\n    constructor(configuration: ConfigurationWebsocketAPI) {\n        this.configuration = configuration;\n    }\n\n    /**\n     * Connects to the Binance WebSocket API and returns a `WebsocketAPIConnection` instance.\n     *\n     * @param {object} [options] - Optional connection options.\n     * @param {string} [options.mode='single'] - The connection mode, either 'single' or 'pool'. Overrides the `mode` property in the configuration.\n     * @param {number} [options.poolSize=1] - The number of connections to use in pool mode. Overrides the `poolSize` property in the configuration.\n     * @returns {Promise<WebsocketAPIConnection>} - A promise that resolves to a `WebsocketAPIConnection` instance.\n     */\n    async connect({\n        mode,\n        poolSize,\n    }: { mode?: 'single' | 'pool'; poolSize?: number } = {}): Promise<WebsocketAPIConnection> {\n        const websocketBase = new WebsocketAPIBase({\n            ...this.configuration,\n            ...(mode && { mode }),\n            ...(poolSize && { poolSize }),\n        });\n        const websocketAPIConnection = new WebsocketAPIConnection(websocketBase);\n        await websocketBase.connect();\n        return websocketAPIConnection;\n    }\n}\n","/**\n * Spot WebSocket API\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './websocket-api';\nexport * from './websocket-api-connection';\n","/**\n * Spot WebSocket Market Streams\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    WebsocketStreamsBase,\n    WebsocketStream,\n    assertParamExists,\n    replaceWebsocketStreamsPlaceholders,\n    createStreamHandler,\n} from '@binance/common';\nimport type {\n    AggTradeResponse,\n    AllMarketRollingWindowTickerResponse,\n    AllMiniTickerResponse,\n    AvgPriceResponse,\n    BlockTradeResponse,\n    BookTickerResponse,\n    DiffBookDepthResponse,\n    KlineOffsetResponse,\n    KlineResponse,\n    MiniTickerResponse,\n    PartialBookDepthResponse,\n    ReferencePriceResponse,\n    RollingWindowTickerResponse,\n    TickerResponse,\n    TradeResponse,\n} from '../types';\n\nconst ApiParamCreator = function () {\n    return {\n        /**\n         * The Aggregate Trade Streams push trade information that is aggregated\n         * for a single taker order.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Aggregate Trade Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        aggTrade: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('aggTrade', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@aggTrade'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Rolling window ticker statistics for all market symbols, computed over\n         * multiple windows.\n         *\n         * Note that only tickers that have changed will be present in the array.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary All Market Rolling Window Statistics Streams\n         * @param {AllMarketRollingWindowTickerWindowSizeEnum} windowSize\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allMarketRollingWindowTicker: (\n            windowSize: AllMarketRollingWindowTickerWindowSizeEnum,\n            id?: string\n        ): string => {\n            // verify required parameter 'windowSize' is not null or undefined\n            assertParamExists('allMarketRollingWindowTicker', 'windowSize', windowSize);\n\n            return replaceWebsocketStreamsPlaceholders('/!ticker_<windowSize>@arr'.slice(1), {\n                windowSize,\n                id,\n            });\n        },\n        /**\n         * 24hr rolling window mini-ticker statistics for all symbols that changed\n         * in an array. These are NOT the statistics of the UTC day, but a 24hr\n         * rolling window for the previous 24hrs. Note that only tickers that have\n         * changed will be present in the array.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary All Market Mini Tickers Stream\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        allMiniTicker: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/!miniTicker@arr'.slice(1), { id });\n        },\n        /**\n         * Average price streams push changes in the average price over a fixed time interval.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Average Price\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        avgPrice: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('avgPrice', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@avgPrice'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Block Trade Streams push block trade information in real-time.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Block Trade Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        blockTrade: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('blockTrade', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@blockTrade'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Pushes any update to the best bid or ask's price or quantity in\n         * real-time for a specified symbol.\n         *\n         * Multiple `<symbol>@bookTicker` streams can be subscribed to over one\n         * connection.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Individual Symbol Book Ticker Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        bookTicker: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('bookTicker', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@bookTicker'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Order book price and quantity depth updates used to locally manage an order book.\n         *\n         * Update Speed: 1000ms or 100ms\n         *\n         * @summary Diff. Depth Stream\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {DiffBookDepthUpdateSpeedEnum} [updateSpeed] Optional stream update speed suffix\n         *\n         * @throws {RequiredError}\n         */\n        diffBookDepth: (\n            symbol: string,\n            id?: string,\n            updateSpeed?: DiffBookDepthUpdateSpeedEnum\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('diffBookDepth', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@depth@<updateSpeed>'.slice(1), {\n                symbol,\n                id,\n                updateSpeed,\n            });\n        },\n        /**\n         * The Kline/Candlestick Stream push updates to the current\n         * klines/candlestick every second in `UTC+0` timezone\n         *\n         * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n         *\n         * @summary Kline/Candlestick Streams for UTC\n         * @param {string} symbol Symbol to query\n         * @param {KlineIntervalEnum} interval\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        kline: (symbol: string, interval: KlineIntervalEnum, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('kline', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('kline', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@kline_<interval>'.slice(1), {\n                symbol,\n                interval,\n                id,\n            });\n        },\n        /**\n         * The Kline/Candlestick Stream push updates to the current\n         * klines/candlestick every second in `UTC+8` timezone\n         *\n         **Kline/Candlestick chart intervals:**\n         *\n         * Supported intervals: See Kline/Candlestick chart intervals\n         *\n         **UTC+8 timezone offset:**\n         * - Kline intervals open and close in the UTC+8 timezone. For example the 1d klines will open at the beginning of the UTC+8 day, and close at the end of the UTC+8 day.\n         * - Note that E (event time), t (start time) and T (close time) in the payload are Unix timestamps, which are always interpreted in UTC.\n         *\n         * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n         *\n         * @summary Kline/Candlestick Streams with timezone offset\n         * @param {string} symbol Symbol to query\n         * @param {KlineOffsetIntervalEnum} interval\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        klineOffset: (symbol: string, interval: KlineOffsetIntervalEnum, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klineOffset', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klineOffset', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@kline_<interval>@+08:00'.slice(1),\n                { symbol, interval, id }\n            );\n        },\n        /**\n         * 24hr rolling window mini-ticker statistics. These are NOT the statistics\n         * of the UTC day, but a 24hr rolling window for the previous 24hrs.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Individual Symbol Mini Ticker Stream\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        miniTicker: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('miniTicker', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@miniTicker'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Top **\\<levels\\>** bids and asks, pushed every second.\n         *\n         * Update Speed: 1000ms or 100ms\n         *\n         * @summary WebSocket Partial Book Depth Streams\n         * @param {string} symbol Symbol to query\n         * @param {PartialBookDepthLevelsEnum} levels\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {PartialBookDepthUpdateSpeedEnum} [updateSpeed] Optional stream update speed suffix\n         *\n         * @throws {RequiredError}\n         */\n        partialBookDepth: (\n            symbol: string,\n            levels: PartialBookDepthLevelsEnum,\n            id?: string,\n            updateSpeed?: PartialBookDepthUpdateSpeedEnum\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('partialBookDepth', 'symbol', symbol);\n            // verify required parameter 'levels' is not null or undefined\n            assertParamExists('partialBookDepth', 'levels', levels);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@depth<levels>@<updateSpeed>'.slice(1),\n                { symbol, levels, id, updateSpeed }\n            );\n        },\n        /**\n         * Reference price stream for a symbol.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Reference Price Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        referencePrice: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('referencePrice', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@referencePrice'.slice(1), {\n                symbol,\n                id,\n            });\n        },\n        /**\n         * Rolling window ticker statistics for a single symbol, computed over\n         * multiple windows.\n         *\n         **Note:** This stream is different from the `<symbol>@ticker` stream. The open time `\"O\"` always starts on a minute, while the closing time `\"C\"` is the current time\n         * of the update. As such, the effective window might be up to 59999ms wider than `<window_size>`.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Individual Symbol Rolling Window Statistics Streams\n         * @param {string} symbol Symbol to query\n         * @param {RollingWindowTickerWindowSizeEnum} windowSize\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        rollingWindowTicker: (\n            symbol: string,\n            windowSize: RollingWindowTickerWindowSizeEnum,\n            id?: string\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('rollingWindowTicker', 'symbol', symbol);\n            // verify required parameter 'windowSize' is not null or undefined\n            assertParamExists('rollingWindowTicker', 'windowSize', windowSize);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@ticker_<windowSize>'.slice(1), {\n                symbol,\n                windowSize,\n                id,\n            });\n        },\n        /**\n         * 24hr rolling window ticker statistics for a single symbol. These are NOT\n         * the statistics of the UTC day, but a 24hr rolling window for the\n         * previous 24hrs.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Individual Symbol Ticker Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        ticker: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('ticker', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@ticker'.slice(1), { symbol, id });\n        },\n        /**\n         * The Trade Streams push raw trade information; each trade has a unique\n         * buyer and seller.\n         *\n         * Update Speed: Real-time\n         *\n         * @summary Trade Streams\n         * @param {string} symbol Symbol to query\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        trade: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('trade', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@trade'.slice(1), { symbol, id });\n        },\n    };\n};\n\n/**\n * Api - interface\n * @interface Api\n */\nexport interface ApiInterface {\n    /**\n     * The Aggregate Trade Streams push trade information that is aggregated\n     * for a single taker order.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggTradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AggTradeResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    aggTrade(requestParameters: AggTradeRequest): WebsocketStream<AggTradeResponse>;\n\n    /**\n     * Rolling window ticker statistics for all market symbols, computed over\n     * multiple windows.\n     *\n     * Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Rolling Window Statistics Streams\n     * @param {AllMarketRollingWindowTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMarketRollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    allMarketRollingWindowTicker(\n        requestParameters: AllMarketRollingWindowTickerRequest\n    ): WebsocketStream<AllMarketRollingWindowTickerResponse>;\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols that changed\n     * in an array. These are NOT the statistics of the UTC day, but a 24hr\n     * rolling window for the previous 24hrs. Note that only tickers that have\n     * changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMiniTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMiniTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    allMiniTicker(requestParameters?: AllMiniTickerRequest): WebsocketStream<AllMiniTickerResponse>;\n\n    /**\n     * Average price streams push changes in the average price over a fixed time interval.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Average Price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AvgPriceResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    avgPrice(requestParameters: AvgPriceRequest): WebsocketStream<AvgPriceResponse>;\n\n    /**\n     * Block Trade Streams push block trade information in real-time.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Block Trade Streams\n     * @param {BlockTradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<BlockTradeResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    blockTrade(requestParameters: BlockTradeRequest): WebsocketStream<BlockTradeResponse>;\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in\n     * real-time for a specified symbol.\n     *\n     * Multiple `<symbol>@bookTicker` streams can be subscribed to over one\n     * connection.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {BookTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<BookTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    bookTicker(requestParameters: BookTickerRequest): WebsocketStream<BookTickerResponse>;\n\n    /**\n     * Order book price and quantity depth updates used to locally manage an order book.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary Diff. Depth Stream\n     * @param {DiffBookDepthRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<DiffBookDepthResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    diffBookDepth(requestParameters: DiffBookDepthRequest): WebsocketStream<DiffBookDepthResponse>;\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+0` timezone\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams for UTC\n     * @param {KlineRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    kline(requestParameters: KlineRequest): WebsocketStream<KlineResponse>;\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+8` timezone\n     *\n     **Kline/Candlestick chart intervals:**\n     *\n     * Supported intervals: See Kline/Candlestick chart intervals\n     *\n     **UTC+8 timezone offset:**\n     * - Kline intervals open and close in the UTC+8 timezone. For example the 1d klines will open at the beginning of the UTC+8 day, and close at the end of the UTC+8 day.\n     * - Note that E (event time), t (start time) and T (close time) in the payload are Unix timestamps, which are always interpreted in UTC.\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams with timezone offset\n     * @param {KlineOffsetRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineOffsetResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    klineOffset(requestParameters: KlineOffsetRequest): WebsocketStream<KlineOffsetResponse>;\n\n    /**\n     * 24hr rolling window mini-ticker statistics. These are NOT the statistics\n     * of the UTC day, but a 24hr rolling window for the previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {MiniTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MiniTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    miniTicker(requestParameters: MiniTickerRequest): WebsocketStream<MiniTickerResponse>;\n\n    /**\n     * Top **\\<levels\\>** bids and asks, pushed every second.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary WebSocket Partial Book Depth Streams\n     * @param {PartialBookDepthRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<PartialBookDepthResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    partialBookDepth(\n        requestParameters: PartialBookDepthRequest\n    ): WebsocketStream<PartialBookDepthResponse>;\n\n    /**\n     * Reference price stream for a symbol.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Reference Price Streams\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<ReferencePriceResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): WebsocketStream<ReferencePriceResponse>;\n\n    /**\n     * Rolling window ticker statistics for a single symbol, computed over\n     * multiple windows.\n     *\n     **Note:** This stream is different from the `<symbol>@ticker` stream. The open time `\"O\"` always starts on a minute, while the closing time `\"C\"` is the current time\n     * of the update. As such, the effective window might be up to 59999ms wider than `<window_size>`.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Rolling Window Statistics Streams\n     * @param {RollingWindowTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<RollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    rollingWindowTicker(\n        requestParameters: RollingWindowTickerRequest\n    ): WebsocketStream<RollingWindowTickerResponse>;\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT\n     * the statistics of the UTC day, but a 24hr rolling window for the\n     * previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<TickerResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    ticker(requestParameters: TickerRequest): WebsocketStream<TickerResponse>;\n\n    /**\n     * The Trade Streams push raw trade information; each trade has a unique\n     * buyer and seller.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Trade Streams\n     * @param {TradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<TradeResponse>}\n     * @throws {RequiredError}\n     * @memberof ApiInterface\n     */\n    trade(requestParameters: TradeRequest): WebsocketStream<TradeResponse>;\n}\n\n/**\n * Request parameters for aggTrade operation in Api.\n * @interface AggTradeRequest\n */\nexport interface AggTradeRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiAggTrade\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiAggTrade\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allMarketRollingWindowTicker operation in Api.\n * @interface AllMarketRollingWindowTickerRequest\n */\nexport interface AllMarketRollingWindowTickerRequest {\n    /**\n     *\n     * @type {'1h' | '4h' | '1d'}\n     * @memberof ApiAllMarketRollingWindowTicker\n     */\n    readonly windowSize: AllMarketRollingWindowTickerWindowSizeEnum;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiAllMarketRollingWindowTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for allMiniTicker operation in Api.\n * @interface AllMiniTickerRequest\n */\nexport interface AllMiniTickerRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiAllMiniTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for avgPrice operation in Api.\n * @interface AvgPriceRequest\n */\nexport interface AvgPriceRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiAvgPrice\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiAvgPrice\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for blockTrade operation in Api.\n * @interface BlockTradeRequest\n */\nexport interface BlockTradeRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiBlockTrade\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiBlockTrade\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for bookTicker operation in Api.\n * @interface BookTickerRequest\n */\nexport interface BookTickerRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiBookTicker\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiBookTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for diffBookDepth operation in Api.\n * @interface DiffBookDepthRequest\n */\nexport interface DiffBookDepthRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiDiffBookDepth\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiDiffBookDepth\n     */\n    readonly id?: string;\n\n    /**\n     * Optional stream update speed suffix\n     * @type {'100ms'}\n     * @memberof ApiDiffBookDepth\n     */\n    readonly updateSpeed?: DiffBookDepthUpdateSpeedEnum;\n}\n\n/**\n * Request parameters for kline operation in Api.\n * @interface KlineRequest\n */\nexport interface KlineRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiKline\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof ApiKline\n     */\n    readonly interval: KlineIntervalEnum;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiKline\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for klineOffset operation in Api.\n * @interface KlineOffsetRequest\n */\nexport interface KlineOffsetRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiKlineOffset\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M'}\n     * @memberof ApiKlineOffset\n     */\n    readonly interval: KlineOffsetIntervalEnum;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiKlineOffset\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for miniTicker operation in Api.\n * @interface MiniTickerRequest\n */\nexport interface MiniTickerRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiMiniTicker\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiMiniTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for partialBookDepth operation in Api.\n * @interface PartialBookDepthRequest\n */\nexport interface PartialBookDepthRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiPartialBookDepth\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'5' | '10' | '20'}\n     * @memberof ApiPartialBookDepth\n     */\n    readonly levels: PartialBookDepthLevelsEnum;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiPartialBookDepth\n     */\n    readonly id?: string;\n\n    /**\n     * Optional stream update speed suffix\n     * @type {'100ms'}\n     * @memberof ApiPartialBookDepth\n     */\n    readonly updateSpeed?: PartialBookDepthUpdateSpeedEnum;\n}\n\n/**\n * Request parameters for referencePrice operation in Api.\n * @interface ReferencePriceRequest\n */\nexport interface ReferencePriceRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiReferencePrice\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiReferencePrice\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for rollingWindowTicker operation in Api.\n * @interface RollingWindowTickerRequest\n */\nexport interface RollingWindowTickerRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiRollingWindowTicker\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {'1h' | '4h' | '1d'}\n     * @memberof ApiRollingWindowTicker\n     */\n    readonly windowSize: RollingWindowTickerWindowSizeEnum;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiRollingWindowTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for ticker operation in Api.\n * @interface TickerRequest\n */\nexport interface TickerRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiTicker\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiTicker\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for trade operation in Api.\n * @interface TradeRequest\n */\nexport interface TradeRequest {\n    /**\n     * Symbol to query\n     * @type {string}\n     * @memberof ApiTrade\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof ApiTrade\n     */\n    readonly id?: string;\n}\n\n/**\n * Api - interface\n * @class Api\n * @extends {WebsocketStreamsBase}\n */\nexport class Api implements ApiInterface {\n    private readonly websocketBase: WebsocketStreamsBase;\n    private localVarParamCreator;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.localVarParamCreator = ApiParamCreator();\n    }\n\n    /**\n     * The Aggregate Trade Streams push trade information that is aggregated\n     * for a single taker order.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggTradeRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AggTradeResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#agg-trade Binance API Documentation}\n     */\n    public aggTrade(requestParameters: AggTradeRequest): WebsocketStream<AggTradeResponse> {\n        const stream = this.localVarParamCreator.aggTrade(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<AggTradeResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Rolling window ticker statistics for all market symbols, computed over\n     * multiple windows.\n     *\n     * Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Rolling Window Statistics Streams\n     * @param {AllMarketRollingWindowTickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMarketRollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#all-market-rolling-window-ticker Binance API Documentation}\n     */\n    public allMarketRollingWindowTicker(\n        requestParameters: AllMarketRollingWindowTickerRequest\n    ): WebsocketStream<AllMarketRollingWindowTickerResponse> {\n        const stream = this.localVarParamCreator.allMarketRollingWindowTicker(\n            requestParameters?.windowSize,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<AllMarketRollingWindowTickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols that changed\n     * in an array. These are NOT the statistics of the UTC day, but a 24hr\n     * rolling window for the previous 24hrs. Note that only tickers that have\n     * changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMiniTickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AllMiniTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#all-mini-ticker Binance API Documentation}\n     */\n    public allMiniTicker(\n        requestParameters: AllMiniTickerRequest = {}\n    ): WebsocketStream<AllMiniTickerResponse> {\n        const stream = this.localVarParamCreator.allMiniTicker(requestParameters?.id);\n\n        return createStreamHandler<AllMiniTickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Average price streams push changes in the average price over a fixed time interval.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Average Price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<AvgPriceResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#avg-price Binance API Documentation}\n     */\n    public avgPrice(requestParameters: AvgPriceRequest): WebsocketStream<AvgPriceResponse> {\n        const stream = this.localVarParamCreator.avgPrice(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<AvgPriceResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Block Trade Streams push block trade information in real-time.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Block Trade Streams\n     * @param {BlockTradeRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<BlockTradeResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#block-trade Binance API Documentation}\n     */\n    public blockTrade(requestParameters: BlockTradeRequest): WebsocketStream<BlockTradeResponse> {\n        const stream = this.localVarParamCreator.blockTrade(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<BlockTradeResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in\n     * real-time for a specified symbol.\n     *\n     * Multiple `<symbol>@bookTicker` streams can be subscribed to over one\n     * connection.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {BookTickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<BookTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#book-ticker Binance API Documentation}\n     */\n    public bookTicker(requestParameters: BookTickerRequest): WebsocketStream<BookTickerResponse> {\n        const stream = this.localVarParamCreator.bookTicker(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<BookTickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Order book price and quantity depth updates used to locally manage an order book.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary Diff. Depth Stream\n     * @param {DiffBookDepthRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<DiffBookDepthResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#diff-book-depth Binance API Documentation}\n     */\n    public diffBookDepth(\n        requestParameters: DiffBookDepthRequest\n    ): WebsocketStream<DiffBookDepthResponse> {\n        const stream = this.localVarParamCreator.diffBookDepth(\n            requestParameters?.symbol,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<DiffBookDepthResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+0` timezone\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams for UTC\n     * @param {KlineRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#kline Binance API Documentation}\n     */\n    public kline(requestParameters: KlineRequest): WebsocketStream<KlineResponse> {\n        const stream = this.localVarParamCreator.kline(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<KlineResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+8` timezone\n     *\n     **Kline/Candlestick chart intervals:**\n     *\n     * Supported intervals: See Kline/Candlestick chart intervals\n     *\n     **UTC+8 timezone offset:**\n     * - Kline intervals open and close in the UTC+8 timezone. For example the 1d klines will open at the beginning of the UTC+8 day, and close at the end of the UTC+8 day.\n     * - Note that E (event time), t (start time) and T (close time) in the payload are Unix timestamps, which are always interpreted in UTC.\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams with timezone offset\n     * @param {KlineOffsetRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineOffsetResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#kline-offset Binance API Documentation}\n     */\n    public klineOffset(\n        requestParameters: KlineOffsetRequest\n    ): WebsocketStream<KlineOffsetResponse> {\n        const stream = this.localVarParamCreator.klineOffset(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<KlineOffsetResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics. These are NOT the statistics\n     * of the UTC day, but a 24hr rolling window for the previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {MiniTickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MiniTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#mini-ticker Binance API Documentation}\n     */\n    public miniTicker(requestParameters: MiniTickerRequest): WebsocketStream<MiniTickerResponse> {\n        const stream = this.localVarParamCreator.miniTicker(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<MiniTickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Top **\\<levels\\>** bids and asks, pushed every second.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary WebSocket Partial Book Depth Streams\n     * @param {PartialBookDepthRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<PartialBookDepthResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#partial-book-depth Binance API Documentation}\n     */\n    public partialBookDepth(\n        requestParameters: PartialBookDepthRequest\n    ): WebsocketStream<PartialBookDepthResponse> {\n        const stream = this.localVarParamCreator.partialBookDepth(\n            requestParameters?.symbol,\n            requestParameters?.levels,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<PartialBookDepthResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Reference price stream for a symbol.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Reference Price Streams\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<ReferencePriceResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#reference-price Binance API Documentation}\n     */\n    public referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): WebsocketStream<ReferencePriceResponse> {\n        const stream = this.localVarParamCreator.referencePrice(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<ReferencePriceResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Rolling window ticker statistics for a single symbol, computed over\n     * multiple windows.\n     *\n     **Note:** This stream is different from the `<symbol>@ticker` stream. The open time `\"O\"` always starts on a minute, while the closing time `\"C\"` is the current time\n     * of the update. As such, the effective window might be up to 59999ms wider than `<window_size>`.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Rolling Window Statistics Streams\n     * @param {RollingWindowTickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<RollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#rolling-window-ticker Binance API Documentation}\n     */\n    public rollingWindowTicker(\n        requestParameters: RollingWindowTickerRequest\n    ): WebsocketStream<RollingWindowTickerResponse> {\n        const stream = this.localVarParamCreator.rollingWindowTicker(\n            requestParameters?.symbol,\n            requestParameters?.windowSize,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<RollingWindowTickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT\n     * the statistics of the UTC day, but a 24hr rolling window for the\n     * previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {TickerRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<TickerResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#ticker Binance API Documentation}\n     */\n    public ticker(requestParameters: TickerRequest): WebsocketStream<TickerResponse> {\n        const stream = this.localVarParamCreator.ticker(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<TickerResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Trade Streams push raw trade information; each trade has a unique\n     * buyer and seller.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Trade Streams\n     * @param {TradeRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<TradeResponse>}\n     * @throws {RequiredError}\n     * @memberof Api\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#trade Binance API Documentation}\n     */\n    public trade(requestParameters: TradeRequest): WebsocketStream<TradeResponse> {\n        const stream = this.localVarParamCreator.trade(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<TradeResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n}\n\nexport enum AllMarketRollingWindowTickerWindowSizeEnum {\n    WINDOW_SIZE_1h = '1h',\n    WINDOW_SIZE_4h = '4h',\n    WINDOW_SIZE_1d = '1d',\n}\n\nexport enum DiffBookDepthUpdateSpeedEnum {\n    UPDATE_SPEED_100ms = '100ms',\n}\n\nexport enum KlineIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum KlineOffsetIntervalEnum {\n    INTERVAL_1s = '1s',\n    INTERVAL_1m = '1m',\n    INTERVAL_3m = '3m',\n    INTERVAL_5m = '5m',\n    INTERVAL_15m = '15m',\n    INTERVAL_30m = '30m',\n    INTERVAL_1h = '1h',\n    INTERVAL_2h = '2h',\n    INTERVAL_4h = '4h',\n    INTERVAL_6h = '6h',\n    INTERVAL_8h = '8h',\n    INTERVAL_12h = '12h',\n    INTERVAL_1d = '1d',\n    INTERVAL_3d = '3d',\n    INTERVAL_1w = '1w',\n    INTERVAL_1M = '1M',\n}\n\nexport enum PartialBookDepthLevelsEnum {\n    LEVELS_5 = '5',\n    LEVELS_10 = '10',\n    LEVELS_20 = '20',\n}\n\nexport enum PartialBookDepthUpdateSpeedEnum {\n    UPDATE_SPEED_100ms = '100ms',\n}\n\nexport enum RollingWindowTickerWindowSizeEnum {\n    WINDOW_SIZE_1h = '1h',\n    WINDOW_SIZE_4h = '4h',\n    WINDOW_SIZE_1d = '1d',\n}\n","/**\n * Spot WebSocket Market Streams\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketStreamsBase, WebsocketStream, createStreamHandler } from '@binance/common';\nimport { Api } from './modules/api';\n\nimport type { UserDataStreamEventsResponse } from './types';\n\nimport type {\n    AggTradeRequest,\n    AllMarketRollingWindowTickerRequest,\n    AllMiniTickerRequest,\n    AvgPriceRequest,\n    BlockTradeRequest,\n    BookTickerRequest,\n    DiffBookDepthRequest,\n    KlineRequest,\n    KlineOffsetRequest,\n    MiniTickerRequest,\n    PartialBookDepthRequest,\n    ReferencePriceRequest,\n    RollingWindowTickerRequest,\n    TickerRequest,\n    TradeRequest,\n} from './modules/api';\n\nimport type {\n    AggTradeResponse,\n    AllMarketRollingWindowTickerResponse,\n    AllMiniTickerResponse,\n    AvgPriceResponse,\n    BlockTradeResponse,\n    BookTickerResponse,\n    DiffBookDepthResponse,\n    KlineResponse,\n    KlineOffsetResponse,\n    MiniTickerResponse,\n    PartialBookDepthResponse,\n    ReferencePriceResponse,\n    RollingWindowTickerResponse,\n    TickerResponse,\n    TradeResponse,\n} from './types';\n\nexport class WebsocketStreamsConnection {\n    private websocketBase: WebsocketStreamsBase;\n    private api: Api;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.api = new Api(websocketBase);\n    }\n\n    /**\n     * Adds an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to listen for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function to be executed when the event is triggered. The function can accept any number of arguments.\n     */\n    on(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.on(event, listener);\n    }\n\n    /**\n     * Removes an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to stop listening for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function that was previously added as the event listener.\n     */\n    off(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.off(event, listener);\n    }\n\n    /**\n     * Disconnects from the WebSocket server.\n     * If there is no active connection, a warning is logged.\n     * Otherwise, all connections in the connection pool are closed gracefully,\n     * and a message is logged indicating that the connection has been disconnected.\n     * @returns A Promise that resolves when all connections have been closed.\n     * @throws Error if the WebSocket client is not set.\n     */\n    disconnect(): Promise<void> {\n        return this.websocketBase.disconnect();\n    }\n\n    /**\n     * Checks if the WebSocket connection is currently open.\n     * @returns `true` if the connection is open, `false` otherwise.\n     */\n    isConnected(): boolean {\n        return this.websocketBase.isConnected();\n    }\n\n    /**\n     * Sends a ping message to all connected Websocket servers in the pool.\n     * If no connections are ready, a warning is logged.\n     * For each active connection, the ping message is sent, and debug logs provide details.\n     * @throws Error if a Websocket client is not set for a connection.\n     */\n    pingServer(): void {\n        this.websocketBase.pingServer();\n    }\n\n    /**\n     * Subscribes to one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to subscribe to\n     * @param id Optional subscription ID\n     * @returns void\n     */\n    subscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.subscribe(stream, id);\n    }\n\n    /**\n     * Unsubscribes from one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to unsubscribe from\n     * @param id Optional unsubscription ID\n     * @returns void\n     */\n    unsubscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.unsubscribe(stream, id);\n    }\n\n    /**\n     * Checks if the WebSocket connection is subscribed to the specified stream.\n     * @param stream The name of the WebSocket stream to check.\n     * @returns `true` if the connection is subscribed to the stream, `false` otherwise.\n     */\n    isSubscribed(stream: string): boolean {\n        return this.websocketBase.isSubscribed(stream);\n    }\n\n    /**\n     * Subscribes to the user data WebSocket stream using the provided listen key.\n     * @param listenKey - The listen key for the user data WebSocket stream.\n     * @param id - Optional user data stream ID\n     * @returns A WebSocket stream handler for the user data stream.\n     */\n    userData(listenKey: string, id?: string): WebsocketStream<UserDataStreamEventsResponse> {\n        return createStreamHandler<UserDataStreamEventsResponse>(this.websocketBase, listenKey, id);\n    }\n\n    /**\n     * The Aggregate Trade Streams push trade information that is aggregated\n     * for a single taker order.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Aggregate Trade Streams\n     * @param {AggTradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AggTradeResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#agg-trade Binance API Documentation}\n     */\n    aggTrade(requestParameters: AggTradeRequest): WebsocketStream<AggTradeResponse> {\n        return this.api.aggTrade(requestParameters);\n    }\n\n    /**\n     * Rolling window ticker statistics for all market symbols, computed over\n     * multiple windows.\n     *\n     * Note that only tickers that have changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Rolling Window Statistics Streams\n     * @param {AllMarketRollingWindowTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMarketRollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#all-market-rolling-window-ticker Binance API Documentation}\n     */\n    allMarketRollingWindowTicker(\n        requestParameters: AllMarketRollingWindowTickerRequest\n    ): WebsocketStream<AllMarketRollingWindowTickerResponse> {\n        return this.api.allMarketRollingWindowTicker(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics for all symbols that changed\n     * in an array. These are NOT the statistics of the UTC day, but a 24hr\n     * rolling window for the previous 24hrs. Note that only tickers that have\n     * changed will be present in the array.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary All Market Mini Tickers Stream\n     * @param {AllMiniTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AllMiniTickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#all-mini-ticker Binance API Documentation}\n     */\n    allMiniTicker(\n        requestParameters: AllMiniTickerRequest = {}\n    ): WebsocketStream<AllMiniTickerResponse> {\n        return this.api.allMiniTicker(requestParameters);\n    }\n\n    /**\n     * Average price streams push changes in the average price over a fixed time interval.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Average Price\n     * @param {AvgPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<AvgPriceResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#avg-price Binance API Documentation}\n     */\n    avgPrice(requestParameters: AvgPriceRequest): WebsocketStream<AvgPriceResponse> {\n        return this.api.avgPrice(requestParameters);\n    }\n\n    /**\n     * Block Trade Streams push block trade information in real-time.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Block Trade Streams\n     * @param {BlockTradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<BlockTradeResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#block-trade Binance API Documentation}\n     */\n    blockTrade(requestParameters: BlockTradeRequest): WebsocketStream<BlockTradeResponse> {\n        return this.api.blockTrade(requestParameters);\n    }\n\n    /**\n     * Pushes any update to the best bid or ask's price or quantity in\n     * real-time for a specified symbol.\n     *\n     * Multiple `<symbol>@bookTicker` streams can be subscribed to over one\n     * connection.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Individual Symbol Book Ticker Streams\n     * @param {BookTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<BookTickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#book-ticker Binance API Documentation}\n     */\n    bookTicker(requestParameters: BookTickerRequest): WebsocketStream<BookTickerResponse> {\n        return this.api.bookTicker(requestParameters);\n    }\n\n    /**\n     * Order book price and quantity depth updates used to locally manage an order book.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary Diff. Depth Stream\n     * @param {DiffBookDepthRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<DiffBookDepthResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#diff-book-depth Binance API Documentation}\n     */\n    diffBookDepth(requestParameters: DiffBookDepthRequest): WebsocketStream<DiffBookDepthResponse> {\n        return this.api.diffBookDepth(requestParameters);\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+0` timezone\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams for UTC\n     * @param {KlineRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#kline Binance API Documentation}\n     */\n    kline(requestParameters: KlineRequest): WebsocketStream<KlineResponse> {\n        return this.api.kline(requestParameters);\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current\n     * klines/candlestick every second in `UTC+8` timezone\n     *\n     **Kline/Candlestick chart intervals:**\n     *\n     * Supported intervals: See Kline/Candlestick chart intervals\n     *\n     **UTC+8 timezone offset:**\n     * - Kline intervals open and close in the UTC+8 timezone. For example the 1d klines will open at the beginning of the UTC+8 day, and close at the end of the UTC+8 day.\n     * - Note that E (event time), t (start time) and T (close time) in the payload are Unix timestamps, which are always interpreted in UTC.\n     *\n     * Update Speed: 1000ms for `1s`, 2000ms for the other intervals\n     *\n     * @summary Kline/Candlestick Streams with timezone offset\n     * @param {KlineOffsetRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineOffsetResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#kline-offset Binance API Documentation}\n     */\n    klineOffset(requestParameters: KlineOffsetRequest): WebsocketStream<KlineOffsetResponse> {\n        return this.api.klineOffset(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window mini-ticker statistics. These are NOT the statistics\n     * of the UTC day, but a 24hr rolling window for the previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Mini Ticker Stream\n     * @param {MiniTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MiniTickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#mini-ticker Binance API Documentation}\n     */\n    miniTicker(requestParameters: MiniTickerRequest): WebsocketStream<MiniTickerResponse> {\n        return this.api.miniTicker(requestParameters);\n    }\n\n    /**\n     * Top **\\<levels\\>** bids and asks, pushed every second.\n     *\n     * Update Speed: 1000ms or 100ms\n     *\n     * @summary WebSocket Partial Book Depth Streams\n     * @param {PartialBookDepthRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<PartialBookDepthResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#partial-book-depth Binance API Documentation}\n     */\n    partialBookDepth(\n        requestParameters: PartialBookDepthRequest\n    ): WebsocketStream<PartialBookDepthResponse> {\n        return this.api.partialBookDepth(requestParameters);\n    }\n\n    /**\n     * Reference price stream for a symbol.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Reference Price Streams\n     * @param {ReferencePriceRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<ReferencePriceResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#reference-price Binance API Documentation}\n     */\n    referencePrice(\n        requestParameters: ReferencePriceRequest\n    ): WebsocketStream<ReferencePriceResponse> {\n        return this.api.referencePrice(requestParameters);\n    }\n\n    /**\n     * Rolling window ticker statistics for a single symbol, computed over\n     * multiple windows.\n     *\n     **Note:** This stream is different from the `<symbol>@ticker` stream. The open time `\"O\"` always starts on a minute, while the closing time `\"C\"` is the current time\n     * of the update. As such, the effective window might be up to 59999ms wider than `<window_size>`.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Rolling Window Statistics Streams\n     * @param {RollingWindowTickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<RollingWindowTickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#rolling-window-ticker Binance API Documentation}\n     */\n    rollingWindowTicker(\n        requestParameters: RollingWindowTickerRequest\n    ): WebsocketStream<RollingWindowTickerResponse> {\n        return this.api.rollingWindowTicker(requestParameters);\n    }\n\n    /**\n     * 24hr rolling window ticker statistics for a single symbol. These are NOT\n     * the statistics of the UTC day, but a 24hr rolling window for the\n     * previous 24hrs.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Individual Symbol Ticker Streams\n     * @param {TickerRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<TickerResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#ticker Binance API Documentation}\n     */\n    ticker(requestParameters: TickerRequest): WebsocketStream<TickerResponse> {\n        return this.api.ticker(requestParameters);\n    }\n\n    /**\n     * The Trade Streams push raw trade information; each trade has a unique\n     * buyer and seller.\n     *\n     * Update Speed: Real-time\n     *\n     * @summary Trade Streams\n     * @param {TradeRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<TradeResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/en/docs/catalog/core-trading-spot-trading/api/ws-streams/~#trade Binance API Documentation}\n     */\n    trade(requestParameters: TradeRequest): WebsocketStream<TradeResponse> {\n        return this.api.trade(requestParameters);\n    }\n}\n","/**\n * Spot WebSocket Market Streams\n *\n * Access market data, manage accounts, and trade on Binance Spot.\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 * Spot WebSocket Market Streams\n *\n * Access market data, manage accounts, and trade on Binance Spot.\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './websocket-streams';\nexport * from './websocket-streams-connection';\n","import {\n    buildUserAgent,\n    ConfigurationRestAPI,\n    ConfigurationWebsocketAPI,\n    ConfigurationWebsocketStreams,\n    SPOT_REST_API_PROD_URL,\n    SPOT_WS_API_PROD_URL,\n    SPOT_WS_STREAMS_PROD_URL,\n} from '@binance/common';\nimport { name, version } from '../package.json';\nimport { RestAPI } from './rest-api';\nimport { WebsocketAPI } from './websocket-api';\nimport { WebsocketStreams } from './websocket-streams';\n\nexport interface ConfigurationSpot {\n    configurationRestAPI?: ConfigurationRestAPI;\n    configurationWebsocketAPI?: ConfigurationWebsocketAPI;\n    configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class Spot {\n    public restAPI!: RestAPI;\n    public websocketAPI!: WebsocketAPI;\n    public websocketStreams!: WebsocketStreams;\n\n    constructor(config: ConfigurationSpot) {\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 || SPOT_REST_API_PROD_URL;\n            configRestAPI.baseOptions = configRestAPI.baseOptions || {};\n            configRestAPI.baseOptions.headers = {\n                ...(configRestAPI.baseOptions.headers || {}),\n                'User-Agent': userAgent,\n            };\n            this.restAPI = new RestAPI(configRestAPI);\n        }\n        if (config?.configurationWebsocketAPI) {\n            const configWebsocketAPI = new ConfigurationWebsocketAPI(\n                config.configurationWebsocketAPI\n            ) as ConfigurationWebsocketAPI & {\n                userAgent: string;\n            };\n            configWebsocketAPI.wsURL = configWebsocketAPI.wsURL || SPOT_WS_API_PROD_URL;\n            configWebsocketAPI.userAgent = userAgent;\n            this.websocketAPI = new WebsocketAPI(configWebsocketAPI);\n        }\n        if (config?.configurationWebsocketStreams) {\n            const configWebsocketStreams = new ConfigurationWebsocketStreams(\n                config.configurationWebsocketStreams\n            ) as ConfigurationWebsocketStreams & {\n                userAgent: string;\n            };\n            configWebsocketStreams.wsURL = configWebsocketStreams.wsURL || SPOT_WS_STREAMS_PROD_URL;\n            configWebsocketStreams.userAgent = userAgent;\n            this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n        }\n    }\n}\n"],"mappings":"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mBAAmB,aACtB;AACD,SAAO,YACH,KAAK,eACL,kBAAkB,UAClB,kBAAkB,QAClB,kBAAkB,aAClB,kBAAkB,YAClB,kBAAkB,cAClB,mBAAmB,UACnB,EAAE,UAAU,OAAO,CACtB;;;;;;;;;;;;;;;;;;;;;;;;CAyBL,MAAa,iBACT,oBAA6C,EAAE,EACG;EAClD,MAAM,oBAAoB,MAAM,KAAK,0BAA0B,iBAC3D,mBAAmB,QACnB,mBAAmB,SACnB,mBAAmB,UACnB,mBAAmB,MACnB,mBAAmB,aACtB;AACD,SAAO,YACH,KAAK,eACL,kBAAkB,UAClB,kBAAkB,QAClB,kBAAkB,aAClB,kBAAkB,YAClB,kBAAkB,cAClB,mBAAmB,UACnB,EAAE,UAAU,OAAO,CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCL,MAAa,SACT,mBAC0C;EAC1C,MAAM,oBAAoB,MAAM,KAAK,0BAA0B,SAC3D,mBAAmB,QACnB,mBAAmB,UACnB,mBAAmB,WACnB,mBAAmB,SACnB,mBAAmB,UACnB,mBAAmB,MACtB;AACD,SAAO,YACH,KAAK,eACL,kBAAkB,UAClB,kBAAkB,QAClB,kBAAkB,aAClB,kBAAkB,YAClB,kBAAkB,cAClB,mBAAmB,UACnB,EAAE,UAAU,OAAO,CACtB;;;AAIT,IAAYC,4EAAL;AACH;AACA;AACA;;;AAGJ,IAAYC,sEAAL;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGJ,IAAYC,oHAAL;AACH;AACA;AACA;;;AAGJ,IAAYC,0EAAL;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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BACA;GAAE,UAAU;GAAO,YAAY;GAAO,CACzC;;;;;;;;;;;;;;;;;;;;;;;CAwBL,AAAO,aACH,mBACmD;AACnD,SAAO,KAAK,cAAc,YACtB,iBAAiB,MAAM,EAAE,EACzB,mBACA;GAAE,UAAU;GAAO,YAAY;GAAO,CACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BL,AAAO,SACH,mBAC+C;AAC/C,SAAO,KAAK,cAAc,YACtB,YAAY,MAAM,EAAE,EACpB,mBACA;GAAE,UAAU;GAAO,YAAY;GAAO,CACzC;;;AAIT,IAAY,0EAAL;AACH;AACA;AACA;;;AAGJ,IAAY,oEAAL;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGJ,IAAY,kHAAL;AACH;AACA;AACA;;;AAGJ,IAAY,4DAAL;AACH;AACA;;;AAGJ,IAAY,wEAAL;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGJ,IAAY,4EAAL;AACH;AACA;AACA;;;AAGJ,IAAY,oEAAL;AACH;AACA;;;AAGJ,IAAY,oFAAL;AACH;AACA;AACA;;;AAGJ,IAAY,oFAAL;AACH;AACA;AACA;;;AAGJ,IAAY,sFAAL;AACH;AACA;AACA;;;AAGJ,IAAY,gFAAL;AACH;AACA;;;AAGJ,IAAY,gGAAL;AACH;AACA;AACA;;;AAGJ,IAAY,wEAAL;AAC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"}