{"version":3,"sources":["../src/derivatives-trading-options.ts","../package.json","../src/rest-api/index.ts","../src/rest-api/types/place-multiple-orders-orders-parameter-inner.ts","../src/rest-api/modules/account-api.ts","../src/rest-api/modules/market-data-api.ts","../src/rest-api/modules/market-maker-block-trade-api.ts","../src/rest-api/modules/market-maker-endpoints-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/modules/user-data-streams-api.ts","../src/rest-api/rest-api.ts","../src/websocket-streams/index.ts","../src/websocket-streams/modules/websocket-market-streams-api.ts","../src/websocket-streams/websocket-streams.ts","../src/websocket-streams/websocket-streams-connection.ts","../src/index.ts"],"sourcesContent":["import { platform, arch } from 'os';\nimport {\n    ConfigurationRestAPI,\n    ConfigurationWebsocketStreams,\n    DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL,\n} from '@binance/common';\nimport { name, version } from '../package.json';\nimport { RestAPI } from './rest-api';\n\nimport { WebsocketStreams } from './websocket-streams';\n\nexport interface ConfigurationDerivativesTradingOptions {\n    configurationRestAPI?: ConfigurationRestAPI;\n\n    configurationWebsocketStreams?: ConfigurationWebsocketStreams;\n}\n\nexport class DerivativesTradingOptions {\n    public restAPI!: RestAPI;\n\n    public websocketStreams!: WebsocketStreams;\n\n    constructor(config: ConfigurationDerivativesTradingOptions) {\n        if (config?.configurationRestAPI) {\n            const configRestAPI = new ConfigurationRestAPI(config.configurationRestAPI);\n            configRestAPI.basePath =\n                configRestAPI.basePath || DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL;\n            configRestAPI.baseOptions = configRestAPI.baseOptions || {};\n            configRestAPI.baseOptions.headers = {\n                ...(configRestAPI.baseOptions.headers || {}),\n                'User-Agent': `${name}/${version} (Node.js/${process.version}; ${platform()}; ${arch()})`,\n            };\n            this.restAPI = new RestAPI(configRestAPI);\n        }\n        if (config?.configurationWebsocketStreams) {\n            const configWebsocketStreams = new ConfigurationWebsocketStreams(\n                config.configurationWebsocketStreams\n            );\n            configWebsocketStreams.wsURL =\n                configWebsocketStreams.wsURL || DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL;\n            this.websocketStreams = new WebsocketStreams(configWebsocketStreams);\n        }\n    }\n}\n","{\n    \"name\": \"@binance/derivatives-trading-options\",\n    \"description\": \"Official Binance Derivatives Trading (COIN-M Futures) Connector - A lightweight library that provides a convenient interface to Binance's COINN-M Futures REST API, WebSocket API and WebSocket Streams.\",\n    \"version\": \"1.0.0\",\n    \"main\": \"./dist/index.js\",\n    \"module\": \"./dist/index.mjs\",\n    \"types\": \"./dist/index.d.ts\",\n    \"scripts\": {\n        \"prepublishOnly\": \"npm run build\",\n        \"build\": \"tsup\",\n        \"typecheck\": \"tsc --noEmit\",\n        \"clean\": \"rm -rf dist\",\n        \"test\": \"npx jest --maxWorkers=4 --bail\",\n        \"test:watch\": \"npx jest --watch\",\n        \"format\": \"npx prettier --ignore-path .prettierignore --write .\",\n        \"lint\": \"npx eslint '**/*.ts' --fix\"\n    },\n    \"keywords\": [\n        \"Binance\",\n        \"API\",\n        \"Derivatives\",\n        \"Futures\",\n        \"Coin-M\",\n        \"Connector\",\n        \"REST\",\n        \"WebSocket\",\n        \"Trading\"\n    ],\n    \"author\": \"Binance\",\n    \"license\": \"MIT\",\n    \"files\": [\n        \"dist\"\n    ],\n    \"devDependencies\": {\n        \"@types/jest\": \"^29.5.4\",\n        \"@types/node\": \"^20.17.24\",\n        \"@types/ws\": \"^8.5.5\",\n        \"eslint\": \"8.57.0\",\n        \"jest\": \"^29.6.4\",\n        \"prettier\": \"^3.3.3\",\n        \"ts-jest\": \"^29.1.1\",\n        \"ts-node\": \"^10.9.1\",\n        \"tsup\": \"^7.2.0\",\n        \"typescript\": \"^5.7.2\",\n        \"typescript-eslint\": \"^8.24.0\"\n    },\n    \"dependencies\": {\n        \"@binance/common\": \"1.0.0\",\n        \"axios\": \"^1.7.4\",\n        \"ws\": \"^8.17.1\"\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './rest-api';\n","/* tslint:disable */\n\n/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n/**\n *\n * @export\n * @interface PlaceMultipleOrdersOrdersParameterInner\n */\nexport interface PlaceMultipleOrdersOrdersParameterInner {\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    symbol?: string;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    side?: PlaceMultipleOrdersOrdersParameterInnerSideEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    type?: PlaceMultipleOrdersOrdersParameterInnerTypeEnum;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    quantity?: number;\n    /**\n     *\n     * @type {number}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    price?: number;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    timeInForce?: PlaceMultipleOrdersOrdersParameterInnerTimeInForceEnum;\n    /**\n     *\n     * @type {boolean}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    reduceOnly?: boolean;\n    /**\n     *\n     * @type {boolean}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    postOnly?: boolean;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    newOrderRespType?: PlaceMultipleOrdersOrdersParameterInnerNewOrderRespTypeEnum;\n    /**\n     *\n     * @type {string}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    clientOrderId?: string;\n    /**\n     *\n     * @type {boolean}\n     * @memberof PlaceMultipleOrdersOrdersParameterInner\n     */\n    isMmp?: boolean;\n}\n\nexport const PlaceMultipleOrdersOrdersParameterInnerSideEnum = {\n    BUY: 'BUY',\n    SELL: 'SELL',\n} as const;\n\nexport type PlaceMultipleOrdersOrdersParameterInnerSideEnum =\n    (typeof PlaceMultipleOrdersOrdersParameterInnerSideEnum)[keyof typeof PlaceMultipleOrdersOrdersParameterInnerSideEnum];\nexport const PlaceMultipleOrdersOrdersParameterInnerTypeEnum = {\n    LIMIT: 'LIMIT',\n} as const;\n\nexport type PlaceMultipleOrdersOrdersParameterInnerTypeEnum =\n    (typeof PlaceMultipleOrdersOrdersParameterInnerTypeEnum)[keyof typeof PlaceMultipleOrdersOrdersParameterInnerTypeEnum];\nexport const PlaceMultipleOrdersOrdersParameterInnerTimeInForceEnum = {\n    GTC: 'GTC',\n    IOC: 'IOC',\n    FOK: 'FOK',\n} as const;\n\nexport type PlaceMultipleOrdersOrdersParameterInnerTimeInForceEnum =\n    (typeof PlaceMultipleOrdersOrdersParameterInnerTimeInForceEnum)[keyof typeof PlaceMultipleOrdersOrdersParameterInnerTimeInForceEnum];\nexport const PlaceMultipleOrdersOrdersParameterInnerNewOrderRespTypeEnum = {\n    ACK: 'ACK',\n    RESULT: 'RESULT',\n} as const;\n\nexport type PlaceMultipleOrdersOrdersParameterInnerNewOrderRespTypeEnum =\n    (typeof PlaceMultipleOrdersOrdersParameterInnerNewOrderRespTypeEnum)[keyof typeof PlaceMultipleOrdersOrdersParameterInnerNewOrderRespTypeEnum];\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AccountFundingFlowResponse,\n    GetDownloadIdForOptionTransactionHistoryResponse,\n    GetOptionTransactionHistoryDownloadLinkByIdResponse,\n    OptionAccountInformationResponse,\n} from '../types';\n\n/**\n * AccountApi - axios parameter creator\n */\nconst AccountApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Query account funding flows.\n         *\n         * Weight: 1\n         *\n         * @summary Account Funding Flow (USER_DATA)\n         * @param {string} currency Asset type, only support USDT  as of now\n         * @param {number} [recordId] Return the recordId and subsequent data, the latest data is returned by default, e.g 100000\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountFundingFlow: async (\n            currency: string,\n            recordId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'currency' is not null or undefined\n            assertParamExists('accountFundingFlow', 'currency', currency);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (currency !== undefined && currency !== null) {\n                localVarQueryParameter['currency'] = currency;\n            }\n\n            if (recordId !== undefined && recordId !== null) {\n                localVarQueryParameter['recordId'] = recordId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/bill',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get download id for option transaction history\n         *\n         * Request Limitation is 5 times per month, shared by > front end download page and rest api\n         * The time between `startTime` and `endTime` can not be longer than 1 year\n         *\n         * Weight: 5\n         *\n         * @summary Get Download Id For Option Transaction History (USER_DATA)\n         * @param {number} startTime Timestamp in ms\n         * @param {number} endTime Timestamp in ms\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getDownloadIdForOptionTransactionHistory: async (\n            startTime: number,\n            endTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'startTime' is not null or undefined\n            assertParamExists('getDownloadIdForOptionTransactionHistory', 'startTime', startTime);\n            // verify required parameter 'endTime' is not null or undefined\n            assertParamExists('getDownloadIdForOptionTransactionHistory', 'endTime', endTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/income/asyn',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get option transaction history download Link by Id\n         *\n         * Download link expiration: 24h\n         *\n         * Weight: 5\n         *\n         * @summary Get Option Transaction History Download Link by Id (USER_DATA)\n         * @param {string} downloadId get by download id api\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getOptionTransactionHistoryDownloadLinkById: async (\n            downloadId: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'downloadId' is not null or undefined\n            assertParamExists(\n                'getOptionTransactionHistoryDownloadLinkById',\n                'downloadId',\n                downloadId\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (downloadId !== undefined && downloadId !== null) {\n                localVarQueryParameter['downloadId'] = downloadId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/income/asyn/id',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account information.\n         *\n         * Weight: 3\n         *\n         * @summary Option Account Information(TRADE)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        optionAccountInformation: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/account',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * AccountApi - interface\n * @interface AccountApi\n */\nexport interface AccountApiInterface {\n    /**\n     * Query account funding flows.\n     *\n     * Weight: 1\n     *\n     * @summary Account Funding Flow (USER_DATA)\n     * @param {AccountFundingFlowRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    accountFundingFlow(\n        requestParameters: AccountFundingFlowRequest\n    ): Promise<RestApiResponse<AccountFundingFlowResponse>>;\n    /**\n     * Get download id for option transaction history\n     *\n     * Request Limitation is 5 times per month, shared by > front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 5\n     *\n     * @summary Get Download Id For Option Transaction History (USER_DATA)\n     * @param {GetDownloadIdForOptionTransactionHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getDownloadIdForOptionTransactionHistory(\n        requestParameters: GetDownloadIdForOptionTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForOptionTransactionHistoryResponse>>;\n    /**\n     * Get option transaction history download Link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 5\n     *\n     * @summary Get Option Transaction History Download Link by Id (USER_DATA)\n     * @param {GetOptionTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    getOptionTransactionHistoryDownloadLinkById(\n        requestParameters: GetOptionTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetOptionTransactionHistoryDownloadLinkByIdResponse>>;\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Account Information(TRADE)\n     * @param {OptionAccountInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApiInterface\n     */\n    optionAccountInformation(\n        requestParameters?: OptionAccountInformationRequest\n    ): Promise<RestApiResponse<OptionAccountInformationResponse>>;\n}\n\n/**\n * Request parameters for accountFundingFlow operation in AccountApi.\n * @interface AccountFundingFlowRequest\n */\nexport interface AccountFundingFlowRequest {\n    /**\n     * Asset type, only support USDT  as of now\n     * @type {string}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly currency: string;\n\n    /**\n     * Return the recordId and subsequent data, the latest data is returned by default, e.g 100000\n     * @type {number}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly recordId?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiAccountFundingFlow\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getDownloadIdForOptionTransactionHistory operation in AccountApi.\n * @interface GetDownloadIdForOptionTransactionHistoryRequest\n */\nexport interface GetDownloadIdForOptionTransactionHistoryRequest {\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForOptionTransactionHistory\n     */\n    readonly startTime: number;\n\n    /**\n     * Timestamp in ms\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForOptionTransactionHistory\n     */\n    readonly endTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetDownloadIdForOptionTransactionHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getOptionTransactionHistoryDownloadLinkById operation in AccountApi.\n * @interface GetOptionTransactionHistoryDownloadLinkByIdRequest\n */\nexport interface GetOptionTransactionHistoryDownloadLinkByIdRequest {\n    /**\n     * get by download id api\n     * @type {string}\n     * @memberof AccountApiGetOptionTransactionHistoryDownloadLinkById\n     */\n    readonly downloadId: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiGetOptionTransactionHistoryDownloadLinkById\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for optionAccountInformation operation in AccountApi.\n * @interface OptionAccountInformationRequest\n */\nexport interface OptionAccountInformationRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof AccountApiOptionAccountInformation\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     * Query account funding flows.\n     *\n     * Weight: 1\n     *\n     * @summary Account Funding Flow (USER_DATA)\n     * @param {AccountFundingFlowRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountFundingFlowResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Account-Funding-Flow Binance API Documentation}\n     */\n    public async accountFundingFlow(\n        requestParameters: AccountFundingFlowRequest\n    ): Promise<RestApiResponse<AccountFundingFlowResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountFundingFlow(\n            requestParameters?.currency,\n            requestParameters?.recordId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountFundingFlowResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get download id for option transaction history\n     *\n     * Request Limitation is 5 times per month, shared by > front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 5\n     *\n     * @summary Get Download Id For Option Transaction History (USER_DATA)\n     * @param {GetDownloadIdForOptionTransactionHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForOptionTransactionHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Get-Download-Id-For-Option-Transaction-History Binance API Documentation}\n     */\n    public async getDownloadIdForOptionTransactionHistory(\n        requestParameters: GetDownloadIdForOptionTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForOptionTransactionHistoryResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getDownloadIdForOptionTransactionHistory(\n                requestParameters?.startTime,\n                requestParameters?.endTime,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetDownloadIdForOptionTransactionHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get option transaction history download Link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 5\n     *\n     * @summary Get Option Transaction History Download Link by Id (USER_DATA)\n     * @param {GetOptionTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOptionTransactionHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Get-Option-Transaction-History-Download-Link-by-Id Binance API Documentation}\n     */\n    public async getOptionTransactionHistoryDownloadLinkById(\n        requestParameters: GetOptionTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetOptionTransactionHistoryDownloadLinkByIdResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getOptionTransactionHistoryDownloadLinkById(\n                requestParameters?.downloadId,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetOptionTransactionHistoryDownloadLinkByIdResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Account Information(TRADE)\n     * @param {OptionAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof AccountApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Option-Account-Information Binance API Documentation}\n     */\n    public async optionAccountInformation(\n        requestParameters: OptionAccountInformationRequest = {}\n    ): Promise<RestApiResponse<OptionAccountInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.optionAccountInformation(\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OptionAccountInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    CheckServerTimeResponse,\n    ExchangeInformationResponse,\n    HistoricalExerciseRecordsResponse,\n    KlineCandlestickDataResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OptionMarkPriceResponse,\n    OrderBookResponse,\n    RecentBlockTradesListResponse,\n    RecentTradesListResponse,\n    SymbolPriceTickerResponse,\n    Ticker24hrPriceChangeStatisticsResponse,\n} from '../types';\n\n/**\n * MarketDataApi - axios parameter creator\n */\nconst MarketDataApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Test connectivity to the Rest API and get the current server time.\n         *\n         * Weight: 1\n         *\n         * @summary Check Server Time\n         *\n         * @throws {RequiredError}\n         */\n        checkServerTime: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/time',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Current exchange trading rules and symbol information\n         *\n         * Weight: 1\n         *\n         * @summary Exchange Information\n         *\n         * @throws {RequiredError}\n         */\n        exchangeInformation: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/exchangeInfo',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get historical exercise records.\n         * REALISTIC_VALUE_STRICKEN -> Exercised\n         * EXTRINSIC_VALUE_EXPIRED -> Expired OTM\n         *\n         * Weight: 3\n         *\n         * @summary Historical Exercise Records\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        historicalExerciseRecords: async (\n            underlying?: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/exerciseHistory',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Kline/candlestick bars for an option symbol.\n         * Klines are uniquely identified by their open time.\n         *\n         * If startTime and endTime are not sent, the most recent klines are returned.\n         *\n         * Weight: 1\n         *\n         * @summary Kline/Candlestick Data\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {string} interval Time interval\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        klineCandlestickData: async (\n            symbol: string,\n            interval: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klineCandlestickData', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klineCandlestickData', 'interval', interval);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (interval !== undefined && interval !== null) {\n                localVarQueryParameter['interval'] = interval;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/klines',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get older market historical trades.\n         *\n         * Weight: 20\n         *\n         * @summary Old Trades Lookup (MARKET_DATA)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [fromId] The UniqueId ID from which to return. The latest deal record is returned by default\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        oldTradesLookup: async (\n            symbol: string,\n            fromId?: number,\n            limit?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('oldTradesLookup', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/historicalTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get open interest for specific underlying asset on specific expiration date.\n         *\n         * Weight: 0\n         *\n         * @summary Open Interest\n         * @param {string} underlyingAsset underlying asset, e.g ETH/BTC\n         * @param {string} expiration expiration date, e.g 221225\n         *\n         * @throws {RequiredError}\n         */\n        openInterest: async (underlyingAsset: string, expiration: string): Promise<RequestArgs> => {\n            // verify required parameter 'underlyingAsset' is not null or undefined\n            assertParamExists('openInterest', 'underlyingAsset', underlyingAsset);\n            // verify required parameter 'expiration' is not null or undefined\n            assertParamExists('openInterest', 'expiration', expiration);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlyingAsset !== undefined && underlyingAsset !== null) {\n                localVarQueryParameter['underlyingAsset'] = underlyingAsset;\n            }\n\n            if (expiration !== undefined && expiration !== null) {\n                localVarQueryParameter['expiration'] = expiration;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/openInterest',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Option mark price and greek info.\n         *\n         * Weight: 5\n         *\n         * @summary Option Mark Price\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         *\n         * @throws {RequiredError}\n         */\n        optionMarkPrice: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/mark',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check orderbook depth on specific symbol\n         *\n         * Weight: limit         | weight\n         * ------------  | ------------\n         * 5, 10, 20, 50 | 2\n         * 100           | 5\n         * 500           | 10\n         * 1000          | 20\n         *\n         * @summary Order Book\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        orderBook: async (symbol: string, limit?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('orderBook', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/depth',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get recent block trades\n         *\n         * Weight: 5\n         *\n         * @summary Recent Block Trades List\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        recentBlockTradesList: async (symbol?: string, limit?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/blockTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get recent market trades\n         *\n         * Weight: 5\n         *\n         * @summary Recent Trades List\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         *\n         * @throws {RequiredError}\n         */\n        recentTradesList: async (symbol: string, limit?: number): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('recentTradesList', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/trades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get spot index price for option underlying.\n         *\n         * Weight: 1\n         *\n         * @summary Symbol Price Ticker\n         * @param {string} underlying Option underlying, e.g BTCUSDT\n         *\n         * @throws {RequiredError}\n         */\n        symbolPriceTicker: async (underlying: string): Promise<RequestArgs> => {\n            // verify required parameter 'underlying' is not null or undefined\n            assertParamExists('symbolPriceTicker', 'underlying', underlying);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/index',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Test connectivity to the Rest API.\n         *\n         * Weight: 1\n         *\n         * @summary Test Connectivity\n         *\n         * @throws {RequiredError}\n         */\n        testConnectivity: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/ping',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * 24 hour rolling window price change statistics.\n         *\n         * Weight: 5\n         *\n         * @summary 24hr Ticker Price Change Statistics\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         *\n         * @throws {RequiredError}\n         */\n        ticker24hrPriceChangeStatistics: async (symbol?: string): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/ticker',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * MarketDataApi - interface\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>>;\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>>;\n    /**\n     * Get historical exercise records.\n     * REALISTIC_VALUE_STRICKEN -> Exercised\n     * EXTRINSIC_VALUE_EXPIRED -> Expired OTM\n     *\n     * Weight: 3\n     *\n     * @summary Historical Exercise Records\n     * @param {HistoricalExerciseRecordsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    historicalExerciseRecords(\n        requestParameters?: HistoricalExerciseRecordsRequest\n    ): Promise<RestApiResponse<HistoricalExerciseRecordsResponse>>;\n    /**\n     * Kline/candlestick bars for an option symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: 1\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>>;\n    /**\n     * Get older market historical trades.\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>>;\n    /**\n     * Get open interest for specific underlying asset on specific expiration date.\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>>;\n    /**\n     * Option mark price and greek info.\n     *\n     * Weight: 5\n     *\n     * @summary Option Mark Price\n     * @param {OptionMarkPriceRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    optionMarkPrice(\n        requestParameters?: OptionMarkPriceRequest\n    ): Promise<RestApiResponse<OptionMarkPriceResponse>>;\n    /**\n     * Check orderbook depth on specific symbol\n     *\n     * Weight: limit         | weight\n     * ------------  | ------------\n     * 5, 10, 20, 50 | 2\n     * 100           | 5\n     * 500           | 10\n     * 1000          | 20\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    orderBook(requestParameters: OrderBookRequest): Promise<RestApiResponse<OrderBookResponse>>;\n    /**\n     * Get recent block trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Block Trades List\n     * @param {RecentBlockTradesListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    recentBlockTradesList(\n        requestParameters?: RecentBlockTradesListRequest\n    ): Promise<RestApiResponse<RecentBlockTradesListResponse>>;\n    /**\n     * Get recent market trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>>;\n    /**\n     * Get spot index price for option underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>>;\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    testConnectivity(): Promise<RestApiResponse<void>>;\n    /**\n     * 24 hour rolling window price change statistics.\n     *\n     * Weight: 5\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApiInterface\n     */\n    ticker24hrPriceChangeStatistics(\n        requestParameters?: Ticker24hrPriceChangeStatisticsRequest\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>;\n}\n\n/**\n * Request parameters for historicalExerciseRecords operation in MarketDataApi.\n * @interface HistoricalExerciseRecordsRequest\n */\nexport interface HistoricalExerciseRecordsRequest {\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketDataApiHistoricalExerciseRecords\n     */\n    readonly underlying?: string;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof MarketDataApiHistoricalExerciseRecords\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof MarketDataApiHistoricalExerciseRecords\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiHistoricalExerciseRecords\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for klineCandlestickData operation in MarketDataApi.\n * @interface KlineCandlestickDataRequest\n */\nexport interface KlineCandlestickDataRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly symbol: string;\n\n    /**\n     * Time interval\n     * @type {string}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly interval: string;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiKlineCandlestickData\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for oldTradesLookup operation in MarketDataApi.\n * @interface OldTradesLookupRequest\n */\nexport interface OldTradesLookupRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly symbol: string;\n\n    /**\n     * The UniqueId ID from which to return. The latest deal record is returned by default\n     * @type {number}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly fromId?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiOldTradesLookup\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for openInterest operation in MarketDataApi.\n * @interface OpenInterestRequest\n */\nexport interface OpenInterestRequest {\n    /**\n     * underlying asset, e.g ETH/BTC\n     * @type {string}\n     * @memberof MarketDataApiOpenInterest\n     */\n    readonly underlyingAsset: string;\n\n    /**\n     * expiration date, e.g 221225\n     * @type {string}\n     * @memberof MarketDataApiOpenInterest\n     */\n    readonly expiration: string;\n}\n\n/**\n * Request parameters for optionMarkPrice operation in MarketDataApi.\n * @interface OptionMarkPriceRequest\n */\nexport interface OptionMarkPriceRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiOptionMarkPrice\n     */\n    readonly symbol?: string;\n}\n\n/**\n * Request parameters for orderBook operation in MarketDataApi.\n * @interface OrderBookRequest\n */\nexport interface OrderBookRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly symbol: string;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiOrderBook\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for recentBlockTradesList operation in MarketDataApi.\n * @interface RecentBlockTradesListRequest\n */\nexport interface RecentBlockTradesListRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiRecentBlockTradesList\n     */\n    readonly symbol?: string;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiRecentBlockTradesList\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for recentTradesList operation in MarketDataApi.\n * @interface RecentTradesListRequest\n */\nexport interface RecentTradesListRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiRecentTradesList\n     */\n    readonly symbol: string;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof MarketDataApiRecentTradesList\n     */\n    readonly limit?: number;\n}\n\n/**\n * Request parameters for symbolPriceTicker operation in MarketDataApi.\n * @interface SymbolPriceTickerRequest\n */\nexport interface SymbolPriceTickerRequest {\n    /**\n     * Option underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketDataApiSymbolPriceTicker\n     */\n    readonly underlying: string;\n}\n\n/**\n * Request parameters for ticker24hrPriceChangeStatistics operation in MarketDataApi.\n * @interface Ticker24hrPriceChangeStatisticsRequest\n */\nexport interface Ticker24hrPriceChangeStatisticsRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketDataApiTicker24hrPriceChangeStatistics\n     */\n    readonly symbol?: string;\n}\n\n/**\n * MarketDataApi - object-oriented interface\n * @class MarketDataApi\n */\nexport class MarketDataApi implements MarketDataApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = MarketDataApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     * @returns {Promise<RestApiResponse<CheckServerTimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Check-Server-Time Binance API Documentation}\n     */\n    public async checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.checkServerTime();\n        return sendRequest<CheckServerTimeResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     * @returns {Promise<RestApiResponse<ExchangeInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Exchange-Information Binance API Documentation}\n     */\n    public async exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.exchangeInformation();\n        return sendRequest<ExchangeInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get historical exercise records.\n     * REALISTIC_VALUE_STRICKEN -> Exercised\n     * EXTRINSIC_VALUE_EXPIRED -> Expired OTM\n     *\n     * Weight: 3\n     *\n     * @summary Historical Exercise Records\n     * @param {HistoricalExerciseRecordsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<HistoricalExerciseRecordsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Historical-Exercise-Records Binance API Documentation}\n     */\n    public async historicalExerciseRecords(\n        requestParameters: HistoricalExerciseRecordsRequest = {}\n    ): Promise<RestApiResponse<HistoricalExerciseRecordsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.historicalExerciseRecords(\n            requestParameters?.underlying,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<HistoricalExerciseRecordsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Kline/candlestick bars for an option symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: 1\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<KlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Kline-Candlestick-Data Binance API Documentation}\n     */\n    public async klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.klineCandlestickData(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit\n        );\n        return sendRequest<KlineCandlestickDataResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get older market historical trades.\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OldTradesLookupResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Old-Trades-Lookup Binance API Documentation}\n     */\n    public async oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.oldTradesLookup(\n            requestParameters?.symbol,\n            requestParameters?.fromId,\n            requestParameters?.limit\n        );\n        return sendRequest<OldTradesLookupResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get open interest for specific underlying asset on specific expiration date.\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Open-Interest Binance API Documentation}\n     */\n    public async openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.openInterest(\n            requestParameters?.underlyingAsset,\n            requestParameters?.expiration\n        );\n        return sendRequest<OpenInterestResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Option mark price and greek info.\n     *\n     * Weight: 5\n     *\n     * @summary Option Mark Price\n     * @param {OptionMarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionMarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Option-Mark-Price Binance API Documentation}\n     */\n    public async optionMarkPrice(\n        requestParameters: OptionMarkPriceRequest = {}\n    ): Promise<RestApiResponse<OptionMarkPriceResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.optionMarkPrice(\n            requestParameters?.symbol\n        );\n        return sendRequest<OptionMarkPriceResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Check orderbook depth on specific symbol\n     *\n     * Weight: limit         | weight\n     * ------------  | ------------\n     * 5, 10, 20, 50 | 2\n     * 100           | 5\n     * 500           | 10\n     * 1000          | 20\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderBookResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Order-Book Binance API Documentation}\n     */\n    public async orderBook(\n        requestParameters: OrderBookRequest\n    ): Promise<RestApiResponse<OrderBookResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderBook(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<OrderBookResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get recent block trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Block Trades List\n     * @param {RecentBlockTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentBlockTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Recent-Block-Trade-List Binance API Documentation}\n     */\n    public async recentBlockTradesList(\n        requestParameters: RecentBlockTradesListRequest = {}\n    ): Promise<RestApiResponse<RecentBlockTradesListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.recentBlockTradesList(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<RecentBlockTradesListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get recent market trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Recent-Trades-List Binance API Documentation}\n     */\n    public async recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.recentTradesList(\n            requestParameters?.symbol,\n            requestParameters?.limit\n        );\n        return sendRequest<RecentTradesListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Get spot index price for option underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Symbol-Price-Ticker Binance API Documentation}\n     */\n    public async symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.symbolPriceTicker(\n            requestParameters?.underlying\n        );\n        return sendRequest<SymbolPriceTickerResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Test-Connectivity Binance API Documentation}\n     */\n    public async testConnectivity(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.testConnectivity();\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * 24 hour rolling window price change statistics.\n     *\n     * Weight: 5\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketDataApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/24hr-Ticker-Price-Change-Statistics Binance API Documentation}\n     */\n    public async ticker24hrPriceChangeStatistics(\n        requestParameters: Ticker24hrPriceChangeStatisticsRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.ticker24hrPriceChangeStatistics(\n                requestParameters?.symbol\n            );\n        return sendRequest<Ticker24hrPriceChangeStatisticsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AcceptBlockTradeOrderResponse,\n    AccountBlockTradeListResponse,\n    ExtendBlockTradeOrderResponse,\n    NewBlockTradeOrderResponse,\n    QueryBlockTradeDetailsResponse,\n    QueryBlockTradeOrderResponse,\n} from '../types';\n\n/**\n * MarketMakerBlockTradeApi - axios parameter creator\n */\nconst MarketMakerBlockTradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Accept a block trade order\n         *\n         * Weight: 5\n         *\n         * @summary Accept Block Trade Order (TRADE)\n         * @param {string} blockOrderMatchingKey\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        acceptBlockTradeOrder: async (\n            blockOrderMatchingKey: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'blockOrderMatchingKey' is not null or undefined\n            assertParamExists(\n                'acceptBlockTradeOrder',\n                'blockOrderMatchingKey',\n                blockOrderMatchingKey\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (blockOrderMatchingKey !== undefined && blockOrderMatchingKey !== null) {\n                localVarQueryParameter['blockOrderMatchingKey'] = blockOrderMatchingKey;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/execute',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Gets block trades for a specific account.\n         *\n         * Weight: 5\n         *\n         * @summary Account Block Trade List (USER_DATA)\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountBlockTradeList: async (\n            endTime?: number,\n            startTime?: number,\n            underlying?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/user-trades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel a block trade order.\n         *\n         * Weight: 5\n         *\n         * @summary Cancel Block Trade Order (TRADE)\n         * @param {string} blockOrderMatchingKey\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelBlockTradeOrder: async (\n            blockOrderMatchingKey: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'blockOrderMatchingKey' is not null or undefined\n            assertParamExists(\n                'cancelBlockTradeOrder',\n                'blockOrderMatchingKey',\n                blockOrderMatchingKey\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (blockOrderMatchingKey !== undefined && blockOrderMatchingKey !== null) {\n                localVarQueryParameter['blockOrderMatchingKey'] = blockOrderMatchingKey;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/create',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Extends a block trade expire time by 30 mins from the current time.\n         *\n         * Weight: 5\n         *\n         * @summary Extend Block Trade Order (TRADE)\n         * @param {string} blockOrderMatchingKey\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        extendBlockTradeOrder: async (\n            blockOrderMatchingKey: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'blockOrderMatchingKey' is not null or undefined\n            assertParamExists(\n                'extendBlockTradeOrder',\n                'blockOrderMatchingKey',\n                blockOrderMatchingKey\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (blockOrderMatchingKey !== undefined && blockOrderMatchingKey !== null) {\n                localVarQueryParameter['blockOrderMatchingKey'] = blockOrderMatchingKey;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/create',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send in a new block trade order.\n         *\n         * Weight: 5\n         *\n         * @summary New Block Trade Order (TRADE)\n         * @param {string} liquidity Taker or Maker\n         * @param {Array<object>} legs Max 1 (only single leg supported), list of legs parameters in JSON; example: eapi/v1/block/order/create?orders=[{\"symbol\":\"BTC-210115-35000-C\", \"price\":\"100\",\"quantity\":\"0.0002\",\"side\":\"BUY\",\"type\":\"LIMIT\"}]\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {NewBlockTradeOrderSideEnum} side BUY or SELL\n         * @param {number} price Order Price\n         * @param {number} quantity Order Quantity\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        newBlockTradeOrder: async (\n            liquidity: string,\n            legs: Array<object>,\n            symbol: string,\n            side: NewBlockTradeOrderSideEnum,\n            price: number,\n            quantity: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'liquidity' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'liquidity', liquidity);\n            // verify required parameter 'legs' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'legs', legs);\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'symbol', symbol);\n            // verify required parameter 'side' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'side', side);\n            // verify required parameter 'price' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'price', price);\n            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('newBlockTradeOrder', 'quantity', quantity);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (liquidity !== undefined && liquidity !== null) {\n                localVarQueryParameter['liquidity'] = liquidity;\n            }\n\n            if (legs) {\n                localVarQueryParameter['legs'] = legs;\n            }\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/create',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query block trade details; returns block trade details from counterparty's perspective.\n         *\n         * Weight: 5\n         *\n         * @summary Query Block Trade Details (USER_DATA)\n         * @param {string} blockOrderMatchingKey\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryBlockTradeDetails: async (\n            blockOrderMatchingKey: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'blockOrderMatchingKey' is not null or undefined\n            assertParamExists(\n                'queryBlockTradeDetails',\n                'blockOrderMatchingKey',\n                blockOrderMatchingKey\n            );\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (blockOrderMatchingKey !== undefined && blockOrderMatchingKey !== null) {\n                localVarQueryParameter['blockOrderMatchingKey'] = blockOrderMatchingKey;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/execute',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check block trade order status.\n         *\n         * Weight: 5\n         *\n         * @summary Query Block Trade Order (TRADE)\n         * @param {string} [blockOrderMatchingKey] If specified, returns the specific block trade associated with the blockOrderMatchingKey\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryBlockTradeOrder: async (\n            blockOrderMatchingKey?: string,\n            endTime?: number,\n            startTime?: number,\n            underlying?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (blockOrderMatchingKey !== undefined && blockOrderMatchingKey !== null) {\n                localVarQueryParameter['blockOrderMatchingKey'] = blockOrderMatchingKey;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/block/order/orders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * MarketMakerBlockTradeApi - interface\n * @interface MarketMakerBlockTradeApi\n */\nexport interface MarketMakerBlockTradeApiInterface {\n    /**\n     * Accept a block trade order\n     *\n     * Weight: 5\n     *\n     * @summary Accept Block Trade Order (TRADE)\n     * @param {AcceptBlockTradeOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    acceptBlockTradeOrder(\n        requestParameters: AcceptBlockTradeOrderRequest\n    ): Promise<RestApiResponse<AcceptBlockTradeOrderResponse>>;\n    /**\n     * Gets block trades for a specific account.\n     *\n     * Weight: 5\n     *\n     * @summary Account Block Trade List (USER_DATA)\n     * @param {AccountBlockTradeListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    accountBlockTradeList(\n        requestParameters?: AccountBlockTradeListRequest\n    ): Promise<RestApiResponse<AccountBlockTradeListResponse>>;\n    /**\n     * Cancel a block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary Cancel Block Trade Order (TRADE)\n     * @param {CancelBlockTradeOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    cancelBlockTradeOrder(\n        requestParameters: CancelBlockTradeOrderRequest\n    ): Promise<RestApiResponse<void>>;\n    /**\n     * Extends a block trade expire time by 30 mins from the current time.\n     *\n     * Weight: 5\n     *\n     * @summary Extend Block Trade Order (TRADE)\n     * @param {ExtendBlockTradeOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    extendBlockTradeOrder(\n        requestParameters: ExtendBlockTradeOrderRequest\n    ): Promise<RestApiResponse<ExtendBlockTradeOrderResponse>>;\n    /**\n     * Send in a new block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary New Block Trade Order (TRADE)\n     * @param {NewBlockTradeOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    newBlockTradeOrder(\n        requestParameters: NewBlockTradeOrderRequest\n    ): Promise<RestApiResponse<NewBlockTradeOrderResponse>>;\n    /**\n     * Query block trade details; returns block trade details from counterparty's perspective.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Details (USER_DATA)\n     * @param {QueryBlockTradeDetailsRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    queryBlockTradeDetails(\n        requestParameters: QueryBlockTradeDetailsRequest\n    ): Promise<RestApiResponse<QueryBlockTradeDetailsResponse>>;\n    /**\n     * Check block trade order status.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Order (TRADE)\n     * @param {QueryBlockTradeOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApiInterface\n     */\n    queryBlockTradeOrder(\n        requestParameters?: QueryBlockTradeOrderRequest\n    ): Promise<RestApiResponse<QueryBlockTradeOrderResponse>>;\n}\n\n/**\n * Request parameters for acceptBlockTradeOrder operation in MarketMakerBlockTradeApi.\n * @interface AcceptBlockTradeOrderRequest\n */\nexport interface AcceptBlockTradeOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiAcceptBlockTradeOrder\n     */\n    readonly blockOrderMatchingKey: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiAcceptBlockTradeOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for accountBlockTradeList operation in MarketMakerBlockTradeApi.\n * @interface AccountBlockTradeListRequest\n */\nexport interface AccountBlockTradeListRequest {\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiAccountBlockTradeList\n     */\n    readonly endTime?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiAccountBlockTradeList\n     */\n    readonly startTime?: number;\n\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiAccountBlockTradeList\n     */\n    readonly underlying?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiAccountBlockTradeList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelBlockTradeOrder operation in MarketMakerBlockTradeApi.\n * @interface CancelBlockTradeOrderRequest\n */\nexport interface CancelBlockTradeOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiCancelBlockTradeOrder\n     */\n    readonly blockOrderMatchingKey: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiCancelBlockTradeOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for extendBlockTradeOrder operation in MarketMakerBlockTradeApi.\n * @interface ExtendBlockTradeOrderRequest\n */\nexport interface ExtendBlockTradeOrderRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiExtendBlockTradeOrder\n     */\n    readonly blockOrderMatchingKey: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiExtendBlockTradeOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for newBlockTradeOrder operation in MarketMakerBlockTradeApi.\n * @interface NewBlockTradeOrderRequest\n */\nexport interface NewBlockTradeOrderRequest {\n    /**\n     * Taker or Maker\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly liquidity: string;\n\n    /**\n     * Max 1 (only single leg supported), list of legs parameters in JSON; example: eapi/v1/block/order/create?orders=[{\"symbol\":\"BTC-210115-35000-C\", \"price\":\"100\",\"quantity\":\"0.0002\",\"side\":\"BUY\",\"type\":\"LIMIT\"}]\n     * @type {Array<object>}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly legs: Array<object>;\n\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * BUY or SELL\n     * @type {'BUY' | 'SELL'}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly side: NewBlockTradeOrderSideEnum;\n\n    /**\n     * Order Price\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly price: number;\n\n    /**\n     * Order Quantity\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly quantity: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiNewBlockTradeOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryBlockTradeDetails operation in MarketMakerBlockTradeApi.\n * @interface QueryBlockTradeDetailsRequest\n */\nexport interface QueryBlockTradeDetailsRequest {\n    /**\n     *\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeDetails\n     */\n    readonly blockOrderMatchingKey: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeDetails\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryBlockTradeOrder operation in MarketMakerBlockTradeApi.\n * @interface QueryBlockTradeOrderRequest\n */\nexport interface QueryBlockTradeOrderRequest {\n    /**\n     * If specified, returns the specific block trade associated with the blockOrderMatchingKey\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeOrder\n     */\n    readonly blockOrderMatchingKey?: string;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeOrder\n     */\n    readonly endTime?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeOrder\n     */\n    readonly startTime?: number;\n\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeOrder\n     */\n    readonly underlying?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerBlockTradeApiQueryBlockTradeOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * MarketMakerBlockTradeApi - object-oriented interface\n * @class MarketMakerBlockTradeApi\n */\nexport class MarketMakerBlockTradeApi implements MarketMakerBlockTradeApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = MarketMakerBlockTradeApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Accept a block trade order\n     *\n     * Weight: 5\n     *\n     * @summary Accept Block Trade Order (TRADE)\n     * @param {AcceptBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AcceptBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Accept-Block-Trade-Order Binance API Documentation}\n     */\n    public async acceptBlockTradeOrder(\n        requestParameters: AcceptBlockTradeOrderRequest\n    ): Promise<RestApiResponse<AcceptBlockTradeOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.acceptBlockTradeOrder(\n            requestParameters?.blockOrderMatchingKey,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AcceptBlockTradeOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Gets block trades for a specific account.\n     *\n     * Weight: 5\n     *\n     * @summary Account Block Trade List (USER_DATA)\n     * @param {AccountBlockTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountBlockTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Account-Block-Trade-List Binance API Documentation}\n     */\n    public async accountBlockTradeList(\n        requestParameters: AccountBlockTradeListRequest = {}\n    ): Promise<RestApiResponse<AccountBlockTradeListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountBlockTradeList(\n            requestParameters?.endTime,\n            requestParameters?.startTime,\n            requestParameters?.underlying,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountBlockTradeListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel a block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary Cancel Block Trade Order (TRADE)\n     * @param {CancelBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Cancel-Block-Trade-Order Binance API Documentation}\n     */\n    public async cancelBlockTradeOrder(\n        requestParameters: CancelBlockTradeOrderRequest\n    ): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelBlockTradeOrder(\n            requestParameters?.blockOrderMatchingKey,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Extends a block trade expire time by 30 mins from the current time.\n     *\n     * Weight: 5\n     *\n     * @summary Extend Block Trade Order (TRADE)\n     * @param {ExtendBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ExtendBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Extend-Block-Trade-Order Binance API Documentation}\n     */\n    public async extendBlockTradeOrder(\n        requestParameters: ExtendBlockTradeOrderRequest\n    ): Promise<RestApiResponse<ExtendBlockTradeOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.extendBlockTradeOrder(\n            requestParameters?.blockOrderMatchingKey,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<ExtendBlockTradeOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Send in a new block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary New Block Trade Order (TRADE)\n     * @param {NewBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/New-Block-Trade-Order Binance API Documentation}\n     */\n    public async newBlockTradeOrder(\n        requestParameters: NewBlockTradeOrderRequest\n    ): Promise<RestApiResponse<NewBlockTradeOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.newBlockTradeOrder(\n            requestParameters?.liquidity,\n            requestParameters?.legs,\n            requestParameters?.symbol,\n            requestParameters?.side,\n            requestParameters?.price,\n            requestParameters?.quantity,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NewBlockTradeOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query block trade details; returns block trade details from counterparty's perspective.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Details (USER_DATA)\n     * @param {QueryBlockTradeDetailsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryBlockTradeDetailsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Detail Binance API Documentation}\n     */\n    public async queryBlockTradeDetails(\n        requestParameters: QueryBlockTradeDetailsRequest\n    ): Promise<RestApiResponse<QueryBlockTradeDetailsResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryBlockTradeDetails(\n            requestParameters?.blockOrderMatchingKey,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryBlockTradeDetailsResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Check block trade order status.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Order (TRADE)\n     * @param {QueryBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerBlockTradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Order Binance API Documentation}\n     */\n    public async queryBlockTradeOrder(\n        requestParameters: QueryBlockTradeOrderRequest = {}\n    ): Promise<RestApiResponse<QueryBlockTradeOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryBlockTradeOrder(\n            requestParameters?.blockOrderMatchingKey,\n            requestParameters?.endTime,\n            requestParameters?.startTime,\n            requestParameters?.underlying,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryBlockTradeOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n\nexport const NewBlockTradeOrderSideEnum = {\n    BUY: 'BUY',\n    SELL: 'SELL',\n} as const;\nexport type NewBlockTradeOrderSideEnum =\n    (typeof NewBlockTradeOrderSideEnum)[keyof typeof NewBlockTradeOrderSideEnum];\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AutoCancelAllOpenOrdersResponse,\n    GetAutoCancelAllOpenOrdersResponse,\n    GetMarketMakerProtectionConfigResponse,\n    OptionMarginAccountInformationResponse,\n    ResetMarketMakerProtectionConfigResponse,\n    SetAutoCancelAllOpenOrdersResponse,\n    SetMarketMakerProtectionConfigResponse,\n} from '../types';\n\n/**\n * MarketMakerEndpointsApi - axios parameter creator\n */\nconst MarketMakerEndpointsApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * This endpoint resets the time from which the countdown will begin to the time this messaged is received.  It should be called repeatedly as heartbeats.  Multiple heartbeats can be updated at once by specifying the underlying symbols as a list (ex. BTCUSDT,ETHUSDT) in the underlyings parameter.\n         *\n         * The response will only include underlying symbols where the heartbeat has been successfully updated.\n         *\n         * Weight: 10\n         *\n         * @summary Auto-Cancel All Open Orders (Kill-Switch) Heartbeat (TRADE)\n         * @param {string} underlyings Option Underlying Symbols, e.g BTCUSDT,ETHUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        autoCancelAllOpenOrders: async (\n            underlyings: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'underlyings' is not null or undefined\n            assertParamExists('autoCancelAllOpenOrders', 'underlyings', underlyings);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlyings !== undefined && underlyings !== null) {\n                localVarQueryParameter['underlyings'] = underlyings;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/countdownCancelAllHeartBeat',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * This endpoint returns the auto-cancel parameters for each underlying symbol. Note only active auto-cancel parameters will be returned, if countdownTime is set to 0 (ie. countdownTime has been turned off), the underlying symbol and corresponding countdownTime parameter will not be returned in the response.\n         *\n         * countdownTime = 0 means the function is disabled.\n         *\n         * Weight: 1\n         *\n         * @summary Get Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getAutoCancelAllOpenOrders: async (\n            underlying?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/countdownCancelAll',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get config for MMP.\n         *\n         * Weight: 1\n         *\n         * @summary Get Market Maker Protection Config (TRADE)\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        getMarketMakerProtectionConfig: async (\n            underlying?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/mmp',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current account information.\n         *\n         * Weight: 3\n         *\n         * @summary Option Margin Account Information (USER_DATA)\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        optionMarginAccountInformation: async (recvWindow?: number): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/marginAccount',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Reset MMP, start MMP order again.\n         *\n         * Weight: 1\n         *\n         * @summary Reset Market Maker Protection Config (TRADE)\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        resetMarketMakerProtectionConfig: async (\n            underlying?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/mmpReset',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * This endpoint sets the parameters of the auto-cancel feature which cancels all open orders (both market maker protection and non market maker protection order types) of the underlying symbol at the end of the specified countdown time period if no heartbeat message is sent.  After the countdown time period, all open orders will be cancelled and new orders will be rejected with error code -2010 until either a heartbeat message is sent or the auto-cancel feature is turned off by setting countdownTime to 0.\n         *\n         *\n         * This rest endpoint sets up the parameters to cancel your open orders in case of an outage or disconnection.\n         * Example usage:\n         * Call this endpoint with a countdownTime value of 10000 (10 seconds) to turn on the auto-cancel feature. If the corresponding countdownCancelAllHeartBeat endpoint is not called within 10 seconds with the specified underlying symbol, all open orders of the specified symbol will be automatically canceled. If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n         * The system will check all countdowns approximately every 1000 milliseconds, **please note that sufficient redundancy should be considered when using this function**. We do not recommend setting the countdown time to be too precise or too small.\n         *\n         * Weight: 1\n         *\n         * @summary Set Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n         * @param {string} underlying Option underlying, e.g BTCUSDT\n         * @param {number} countdownTime Countdown time in milliseconds (ex. 1,000 for 1 second). 0 to disable the timer. Negative values (ex. -10000) are not accepted. Minimum acceptable value is 5,000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        setAutoCancelAllOpenOrders: async (\n            underlying: string,\n            countdownTime: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'underlying' is not null or undefined\n            assertParamExists('setAutoCancelAllOpenOrders', 'underlying', underlying);\n            // verify required parameter 'countdownTime' is not null or undefined\n            assertParamExists('setAutoCancelAllOpenOrders', 'countdownTime', countdownTime);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (countdownTime !== undefined && countdownTime !== null) {\n                localVarQueryParameter['countdownTime'] = countdownTime;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/countdownCancelAll',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Set config for MMP.\n         * Market Maker Protection(MMP) is a set of protection mechanism for option market maker, this mechanism is able to prevent mass trading in short period time. Once market maker's account branches the threshold, the Market Maker Protection will be triggered. When Market Maker Protection triggers, all the current MMP orders will be canceled, new MMP orders will be rejected. Market maker can use this time to reevaluate market and modify order price.\n         *\n         * Weight: 1\n         *\n         * @summary Set Market Maker Protection Config (TRADE)\n         * @param {string} [underlying] underlying, e.g BTCUSDT\n         * @param {number} [windowTimeInMilliseconds] MMP Interval in milliseconds; Range (0,5000]\n         * @param {number} [frozenTimeInMilliseconds] MMP frozen time in milliseconds, if set to 0 manual reset is required\n         * @param {number} [qtyLimit] quantity limit\n         * @param {number} [deltaLimit] net delta limit\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        setMarketMakerProtectionConfig: async (\n            underlying?: string,\n            windowTimeInMilliseconds?: number,\n            frozenTimeInMilliseconds?: number,\n            qtyLimit?: number,\n            deltaLimit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (windowTimeInMilliseconds !== undefined && windowTimeInMilliseconds !== null) {\n                localVarQueryParameter['windowTimeInMilliseconds'] = windowTimeInMilliseconds;\n            }\n\n            if (frozenTimeInMilliseconds !== undefined && frozenTimeInMilliseconds !== null) {\n                localVarQueryParameter['frozenTimeInMilliseconds'] = frozenTimeInMilliseconds;\n            }\n\n            if (qtyLimit !== undefined && qtyLimit !== null) {\n                localVarQueryParameter['qtyLimit'] = qtyLimit;\n            }\n\n            if (deltaLimit !== undefined && deltaLimit !== null) {\n                localVarQueryParameter['deltaLimit'] = deltaLimit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/mmpSet',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * MarketMakerEndpointsApi - interface\n * @interface MarketMakerEndpointsApi\n */\nexport interface MarketMakerEndpointsApiInterface {\n    /**\n     * This endpoint resets the time from which the countdown will begin to the time this messaged is received.  It should be called repeatedly as heartbeats.  Multiple heartbeats can be updated at once by specifying the underlying symbols as a list (ex. BTCUSDT,ETHUSDT) in the underlyings parameter.\n     *\n     * The response will only include underlying symbols where the heartbeat has been successfully updated.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (Kill-Switch) Heartbeat (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>;\n    /**\n     * This endpoint returns the auto-cancel parameters for each underlying symbol. Note only active auto-cancel parameters will be returned, if countdownTime is set to 0 (ie. countdownTime has been turned off), the underlying symbol and corresponding countdownTime parameter will not be returned in the response.\n     *\n     * countdownTime = 0 means the function is disabled.\n     *\n     * Weight: 1\n     *\n     * @summary Get Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {GetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    getAutoCancelAllOpenOrders(\n        requestParameters?: GetAutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<GetAutoCancelAllOpenOrdersResponse>>;\n    /**\n     * Get config for MMP.\n     *\n     * Weight: 1\n     *\n     * @summary Get Market Maker Protection Config (TRADE)\n     * @param {GetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    getMarketMakerProtectionConfig(\n        requestParameters?: GetMarketMakerProtectionConfigRequest\n    ): Promise<RestApiResponse<GetMarketMakerProtectionConfigResponse>>;\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Margin Account Information (USER_DATA)\n     * @param {OptionMarginAccountInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    optionMarginAccountInformation(\n        requestParameters?: OptionMarginAccountInformationRequest\n    ): Promise<RestApiResponse<OptionMarginAccountInformationResponse>>;\n    /**\n     * Reset MMP, start MMP order again.\n     *\n     * Weight: 1\n     *\n     * @summary Reset Market Maker Protection Config (TRADE)\n     * @param {ResetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    resetMarketMakerProtectionConfig(\n        requestParameters?: ResetMarketMakerProtectionConfigRequest\n    ): Promise<RestApiResponse<ResetMarketMakerProtectionConfigResponse>>;\n    /**\n     * This endpoint sets the parameters of the auto-cancel feature which cancels all open orders (both market maker protection and non market maker protection order types) of the underlying symbol at the end of the specified countdown time period if no heartbeat message is sent.  After the countdown time period, all open orders will be cancelled and new orders will be rejected with error code -2010 until either a heartbeat message is sent or the auto-cancel feature is turned off by setting countdownTime to 0.\n     *\n     *\n     * This rest endpoint sets up the parameters to cancel your open orders in case of an outage or disconnection.\n     * Example usage:\n     * Call this endpoint with a countdownTime value of 10000 (10 seconds) to turn on the auto-cancel feature. If the corresponding countdownCancelAllHeartBeat endpoint is not called within 10 seconds with the specified underlying symbol, all open orders of the specified symbol will be automatically canceled. If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     * The system will check all countdowns approximately every 1000 milliseconds, **please note that sufficient redundancy should be considered when using this function**. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 1\n     *\n     * @summary Set Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {SetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    setAutoCancelAllOpenOrders(\n        requestParameters: SetAutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<SetAutoCancelAllOpenOrdersResponse>>;\n    /**\n     * Set config for MMP.\n     * Market Maker Protection(MMP) is a set of protection mechanism for option market maker, this mechanism is able to prevent mass trading in short period time. Once market maker's account branches the threshold, the Market Maker Protection will be triggered. When Market Maker Protection triggers, all the current MMP orders will be canceled, new MMP orders will be rejected. Market maker can use this time to reevaluate market and modify order price.\n     *\n     * Weight: 1\n     *\n     * @summary Set Market Maker Protection Config (TRADE)\n     * @param {SetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApiInterface\n     */\n    setMarketMakerProtectionConfig(\n        requestParameters?: SetMarketMakerProtectionConfigRequest\n    ): Promise<RestApiResponse<SetMarketMakerProtectionConfigResponse>>;\n}\n\n/**\n * Request parameters for autoCancelAllOpenOrders operation in MarketMakerEndpointsApi.\n * @interface AutoCancelAllOpenOrdersRequest\n */\nexport interface AutoCancelAllOpenOrdersRequest {\n    /**\n     * Option Underlying Symbols, e.g BTCUSDT,ETHUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiAutoCancelAllOpenOrders\n     */\n    readonly underlyings: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiAutoCancelAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getAutoCancelAllOpenOrders operation in MarketMakerEndpointsApi.\n * @interface GetAutoCancelAllOpenOrdersRequest\n */\nexport interface GetAutoCancelAllOpenOrdersRequest {\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiGetAutoCancelAllOpenOrders\n     */\n    readonly underlying?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiGetAutoCancelAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for getMarketMakerProtectionConfig operation in MarketMakerEndpointsApi.\n * @interface GetMarketMakerProtectionConfigRequest\n */\nexport interface GetMarketMakerProtectionConfigRequest {\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiGetMarketMakerProtectionConfig\n     */\n    readonly underlying?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiGetMarketMakerProtectionConfig\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for optionMarginAccountInformation operation in MarketMakerEndpointsApi.\n * @interface OptionMarginAccountInformationRequest\n */\nexport interface OptionMarginAccountInformationRequest {\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiOptionMarginAccountInformation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for resetMarketMakerProtectionConfig operation in MarketMakerEndpointsApi.\n * @interface ResetMarketMakerProtectionConfigRequest\n */\nexport interface ResetMarketMakerProtectionConfigRequest {\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiResetMarketMakerProtectionConfig\n     */\n    readonly underlying?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiResetMarketMakerProtectionConfig\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for setAutoCancelAllOpenOrders operation in MarketMakerEndpointsApi.\n * @interface SetAutoCancelAllOpenOrdersRequest\n */\nexport interface SetAutoCancelAllOpenOrdersRequest {\n    /**\n     * Option underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiSetAutoCancelAllOpenOrders\n     */\n    readonly underlying: string;\n\n    /**\n     * Countdown time in milliseconds (ex. 1,000 for 1 second). 0 to disable the timer. Negative values (ex. -10000) are not accepted. Minimum acceptable value is 5,000\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetAutoCancelAllOpenOrders\n     */\n    readonly countdownTime: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetAutoCancelAllOpenOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for setMarketMakerProtectionConfig operation in MarketMakerEndpointsApi.\n * @interface SetMarketMakerProtectionConfigRequest\n */\nexport interface SetMarketMakerProtectionConfigRequest {\n    /**\n     * underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly underlying?: string;\n\n    /**\n     * MMP Interval in milliseconds; Range (0,5000]\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly windowTimeInMilliseconds?: number;\n\n    /**\n     * MMP frozen time in milliseconds, if set to 0 manual reset is required\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly frozenTimeInMilliseconds?: number;\n\n    /**\n     * quantity limit\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly qtyLimit?: number;\n\n    /**\n     * net delta limit\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly deltaLimit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof MarketMakerEndpointsApiSetMarketMakerProtectionConfig\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * MarketMakerEndpointsApi - object-oriented interface\n * @class MarketMakerEndpointsApi\n */\nexport class MarketMakerEndpointsApi implements MarketMakerEndpointsApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = MarketMakerEndpointsApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * This endpoint resets the time from which the countdown will begin to the time this messaged is received.  It should be called repeatedly as heartbeats.  Multiple heartbeats can be updated at once by specifying the underlying symbols as a list (ex. BTCUSDT,ETHUSDT) in the underlyings parameter.\n     *\n     * The response will only include underlying symbols where the heartbeat has been successfully updated.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (Kill-Switch) Heartbeat (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Auto-Cancel-All-Open-Orders-Heartbeat Binance API Documentation}\n     */\n    public async autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.autoCancelAllOpenOrders(\n            requestParameters?.underlyings,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AutoCancelAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * This endpoint returns the auto-cancel parameters for each underlying symbol. Note only active auto-cancel parameters will be returned, if countdownTime is set to 0 (ie. countdownTime has been turned off), the underlying symbol and corresponding countdownTime parameter will not be returned in the response.\n     *\n     * countdownTime = 0 means the function is disabled.\n     *\n     * Weight: 1\n     *\n     * @summary Get Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {GetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetAutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Get-Auto-Cancel-All-Open-Orders-Config Binance API Documentation}\n     */\n    public async getAutoCancelAllOpenOrders(\n        requestParameters: GetAutoCancelAllOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<GetAutoCancelAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.getAutoCancelAllOpenOrders(\n            requestParameters?.underlying,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<GetAutoCancelAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get config for MMP.\n     *\n     * Weight: 1\n     *\n     * @summary Get Market Maker Protection Config (TRADE)\n     * @param {GetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Get-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    public async getMarketMakerProtectionConfig(\n        requestParameters: GetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<GetMarketMakerProtectionConfigResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.getMarketMakerProtectionConfig(\n                requestParameters?.underlying,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<GetMarketMakerProtectionConfigResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Margin Account Information (USER_DATA)\n     * @param {OptionMarginAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionMarginAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Option-Margin-Account-Information Binance API Documentation}\n     */\n    public async optionMarginAccountInformation(\n        requestParameters: OptionMarginAccountInformationRequest = {}\n    ): Promise<RestApiResponse<OptionMarginAccountInformationResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.optionMarginAccountInformation(\n                requestParameters?.recvWindow\n            );\n        return sendRequest<OptionMarginAccountInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Reset MMP, start MMP order again.\n     *\n     * Weight: 1\n     *\n     * @summary Reset Market Maker Protection Config (TRADE)\n     * @param {ResetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ResetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Reset-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    public async resetMarketMakerProtectionConfig(\n        requestParameters: ResetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<ResetMarketMakerProtectionConfigResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.resetMarketMakerProtectionConfig(\n                requestParameters?.underlying,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<ResetMarketMakerProtectionConfigResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * This endpoint sets the parameters of the auto-cancel feature which cancels all open orders (both market maker protection and non market maker protection order types) of the underlying symbol at the end of the specified countdown time period if no heartbeat message is sent.  After the countdown time period, all open orders will be cancelled and new orders will be rejected with error code -2010 until either a heartbeat message is sent or the auto-cancel feature is turned off by setting countdownTime to 0.\n     *\n     *\n     * This rest endpoint sets up the parameters to cancel your open orders in case of an outage or disconnection.\n     * Example usage:\n     * Call this endpoint with a countdownTime value of 10000 (10 seconds) to turn on the auto-cancel feature. If the corresponding countdownCancelAllHeartBeat endpoint is not called within 10 seconds with the specified underlying symbol, all open orders of the specified symbol will be automatically canceled. If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     * The system will check all countdowns approximately every 1000 milliseconds, **please note that sufficient redundancy should be considered when using this function**. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 1\n     *\n     * @summary Set Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {SetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SetAutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Set-Auto-Cancel-All-Open-Orders-Config Binance API Documentation}\n     */\n    public async setAutoCancelAllOpenOrders(\n        requestParameters: SetAutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<SetAutoCancelAllOpenOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.setAutoCancelAllOpenOrders(\n            requestParameters?.underlying,\n            requestParameters?.countdownTime,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<SetAutoCancelAllOpenOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Set config for MMP.\n     * Market Maker Protection(MMP) is a set of protection mechanism for option market maker, this mechanism is able to prevent mass trading in short period time. Once market maker's account branches the threshold, the Market Maker Protection will be triggered. When Market Maker Protection triggers, all the current MMP orders will be canceled, new MMP orders will be rejected. Market maker can use this time to reevaluate market and modify order price.\n     *\n     * Weight: 1\n     *\n     * @summary Set Market Maker Protection Config (TRADE)\n     * @param {SetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof MarketMakerEndpointsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Set-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    public async setMarketMakerProtectionConfig(\n        requestParameters: SetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<SetMarketMakerProtectionConfigResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.setMarketMakerProtectionConfig(\n                requestParameters?.underlying,\n                requestParameters?.windowTimeInMilliseconds,\n                requestParameters?.frozenTimeInMilliseconds,\n                requestParameters?.qtyLimit,\n                requestParameters?.deltaLimit,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<SetMarketMakerProtectionConfigResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    assertParamExists,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type {\n    AccountTradeListResponse,\n    CancelAllOptionOrdersByUnderlyingResponse,\n    CancelAllOptionOrdersOnSpecificSymbolResponse,\n    CancelMultipleOptionOrdersResponse,\n    CancelOptionOrderResponse,\n    NewOrderResponse,\n    OptionPositionInformationResponse,\n    PlaceMultipleOrdersOrdersParameterInner,\n    PlaceMultipleOrdersResponse,\n    QueryCurrentOpenOptionOrdersResponse,\n    QueryOptionOrderHistoryResponse,\n    QuerySingleOrderResponse,\n    UserExerciseRecordResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Get trades for a specific account and symbol.\n         *\n         * Weight: 5\n         *\n         * @summary Account Trade List (USER_DATA)\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [fromId] The UniqueId ID from which to return. The latest deal record is returned by default\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        accountTradeList: async (\n            symbol?: string,\n            fromId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (fromId !== undefined && fromId !== null) {\n                localVarQueryParameter['fromId'] = fromId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/userTrades',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel all active orders on specified underlying.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel All Option Orders By Underlying (TRADE)\n         * @param {string} underlying Option underlying, e.g BTCUSDT\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelAllOptionOrdersByUnderlying: async (\n            underlying: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'underlying' is not null or undefined\n            assertParamExists('cancelAllOptionOrdersByUnderlying', 'underlying', underlying);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (underlying !== undefined && underlying !== null) {\n                localVarQueryParameter['underlying'] = underlying;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/allOpenOrdersByUnderlying',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel all active order on a symbol.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel all Option orders on specific symbol (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelAllOptionOrdersOnSpecificSymbol: async (\n            symbol: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelAllOptionOrdersOnSpecificSymbol', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/allOpenOrders',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel multiple orders.\n         *\n         * At least one instance of `orderId` and `clientOrderId` must be sent.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel Multiple Option Orders (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {Array<number>} [orderIds] Order ID, e.g [4611875134427365377,4611875134427365378]\n         * @param {Array<string>} [clientOrderIds] User-defined order ID, e.g [\"my_id_1\",\"my_id_2\"]\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelMultipleOptionOrders: async (\n            symbol: string,\n            orderIds?: Array<number>,\n            clientOrderIds?: Array<string>,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelMultipleOptionOrders', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderIds) {\n                localVarQueryParameter['orderIds'] = orderIds;\n            }\n\n            if (clientOrderIds) {\n                localVarQueryParameter['clientOrderIds'] = clientOrderIds;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/batchOrders',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Cancel an active order.\n         *\n         * At least one instance of `orderId` and `clientOrderId` must be sent.\n         *\n         * Weight: 1\n         *\n         * @summary Cancel Option Order (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [orderId] Order ID, e.g 4611875134427365377\n         * @param {string} [clientOrderId] User-defined order ID, e.g 10000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        cancelOptionOrder: async (\n            symbol: string,\n            orderId?: number,\n            clientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('cancelOptionOrder', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (clientOrderId !== undefined && clientOrderId !== null) {\n                localVarQueryParameter['clientOrderId'] = clientOrderId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/order',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send a new order.\n         *\n         * Weight: 0\n         *\n         * @summary New Order (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {NewOrderSideEnum} side BUY or SELL\n         * @param {NewOrderTypeEnum} type Order Type: LIMIT(only support limit)\n         * @param {number} quantity Order Quantity\n         * @param {number} [price] Order Price\n         * @param {NewOrderTimeInForceEnum} [timeInForce] Time in force method（Default GTC）\n         * @param {boolean} [reduceOnly] Reduce Only（Default false）\n         * @param {boolean} [postOnly] Post Only（Default false）\n         * @param {NewOrderNewOrderRespTypeEnum} [newOrderRespType] \"ACK\", \"RESULT\", Default \"ACK\"\n         * @param {string} [clientOrderId] User-defined order ID, e.g 10000\n         * @param {boolean} [isMmp] is market maker protection order, true/false\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        newOrder: async (\n            symbol: string,\n            side: NewOrderSideEnum,\n            type: NewOrderTypeEnum,\n            quantity: number,\n            price?: number,\n            timeInForce?: NewOrderTimeInForceEnum,\n            reduceOnly?: boolean,\n            postOnly?: boolean,\n            newOrderRespType?: NewOrderNewOrderRespTypeEnum,\n            clientOrderId?: string,\n            isMmp?: boolean,\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            // verify required parameter 'quantity' is not null or undefined\n            assertParamExists('newOrder', 'quantity', quantity);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (side !== undefined && side !== null) {\n                localVarQueryParameter['side'] = side;\n            }\n\n            if (type !== undefined && type !== null) {\n                localVarQueryParameter['type'] = type;\n            }\n\n            if (quantity !== undefined && quantity !== null) {\n                localVarQueryParameter['quantity'] = quantity;\n            }\n\n            if (price !== undefined && price !== null) {\n                localVarQueryParameter['price'] = price;\n            }\n\n            if (timeInForce !== undefined && timeInForce !== null) {\n                localVarQueryParameter['timeInForce'] = timeInForce;\n            }\n\n            if (reduceOnly !== undefined && reduceOnly !== null) {\n                localVarQueryParameter['reduceOnly'] = reduceOnly;\n            }\n\n            if (postOnly !== undefined && postOnly !== null) {\n                localVarQueryParameter['postOnly'] = postOnly;\n            }\n\n            if (newOrderRespType !== undefined && newOrderRespType !== null) {\n                localVarQueryParameter['newOrderRespType'] = newOrderRespType;\n            }\n\n            if (clientOrderId !== undefined && clientOrderId !== null) {\n                localVarQueryParameter['clientOrderId'] = clientOrderId;\n            }\n\n            if (isMmp !== undefined && isMmp !== null) {\n                localVarQueryParameter['isMmp'] = isMmp;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/order',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get current position information.\n         *\n         * Weight: 5\n         *\n         * @summary Option Position Information (USER_DATA)\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        optionPositionInformation: async (\n            symbol?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/position',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Send multiple option orders.\n         *\n         * Parameter rules are same with New Order\n         * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n         *\n         * Weight: 5\n         *\n         * @summary Place Multiple Orders(TRADE)\n         * @param {Array<PlaceMultipleOrdersOrdersParameterInner>} orders order list. Max 5 orders\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        placeMultipleOrders: async (\n            orders: Array<PlaceMultipleOrdersOrdersParameterInner>,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'orders' is not null or undefined\n            assertParamExists('placeMultipleOrders', 'orders', orders);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (orders) {\n                localVarQueryParameter['orders'] = orders;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/batchOrders',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query current all open orders, status: ACCEPTED PARTIALLY_FILLED\n         *\n         * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n         *\n         * @summary Query Current Open Option Orders (USER_DATA)\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [orderId] Order ID, e.g 4611875134427365377\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryCurrentOpenOptionOrders: async (\n            symbol?: string,\n            orderId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/openOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Query all finished orders within 5 days, finished status: CANCELLED FILLED REJECTED.\n         *\n         * Weight: 3\n         *\n         * @summary Query Option Order History (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [orderId] Order ID, e.g 4611875134427365377\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        queryOptionOrderHistory: async (\n            symbol: string,\n            orderId?: number,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('queryOptionOrderHistory', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/historyOrders',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Check an order status.\n         *\n         * These orders will not be found:\n         * order status is `CANCELED` or `REJECTED`, **AND**\n         * order has NO filled trade, **AND**\n         * created time + 3 days < current time\n         *\n         *\n         * Either `orderId` or `clientOrderId ` must be sent.\n         *\n         * Weight: 1\n         *\n         * @summary Query Single Order (TRADE)\n         * @param {string} symbol Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [orderId] Order ID, e.g 4611875134427365377\n         * @param {string} [clientOrderId] User-defined order ID, e.g 10000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        querySingleOrder: async (\n            symbol: string,\n            orderId?: number,\n            clientOrderId?: string,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('querySingleOrder', 'symbol', symbol);\n\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (orderId !== undefined && orderId !== null) {\n                localVarQueryParameter['orderId'] = orderId;\n            }\n\n            if (clientOrderId !== undefined && clientOrderId !== null) {\n                localVarQueryParameter['clientOrderId'] = clientOrderId;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/order',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Get account exercise records.\n         *\n         * Weight: 5\n         *\n         * @summary User Exercise Record (USER_DATA)\n         * @param {string} [symbol] Option trading pair, e.g BTC-200730-9000-C\n         * @param {number} [startTime] Start Time, e.g 1593511200000\n         * @param {number} [endTime] End Time, e.g 1593512200000\n         * @param {number} [limit] Number of result sets returned Default:100 Max:1000\n         * @param {number} [recvWindow]\n         *\n         * @throws {RequiredError}\n         */\n        userExerciseRecord: async (\n            symbol?: string,\n            startTime?: number,\n            endTime?: number,\n            limit?: number,\n            recvWindow?: number\n        ): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            if (symbol !== undefined && symbol !== null) {\n                localVarQueryParameter['symbol'] = symbol;\n            }\n\n            if (startTime !== undefined && startTime !== null) {\n                localVarQueryParameter['startTime'] = startTime;\n            }\n\n            if (endTime !== undefined && endTime !== null) {\n                localVarQueryParameter['endTime'] = endTime;\n            }\n\n            if (limit !== undefined && limit !== null) {\n                localVarQueryParameter['limit'] = limit;\n            }\n\n            if (recvWindow !== undefined && recvWindow !== null) {\n                localVarQueryParameter['recvWindow'] = recvWindow;\n            }\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/exerciseRecord',\n                method: 'GET',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    accountTradeList(\n        requestParameters?: AccountTradeListRequest\n    ): Promise<RestApiResponse<AccountTradeListResponse>>;\n    /**\n     * Cancel all active orders on specified underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Option Orders By Underlying (TRADE)\n     * @param {CancelAllOptionOrdersByUnderlyingRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelAllOptionOrdersByUnderlying(\n        requestParameters: CancelAllOptionOrdersByUnderlyingRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersByUnderlyingResponse>>;\n    /**\n     * Cancel all active order on a symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel all Option orders on specific symbol (TRADE)\n     * @param {CancelAllOptionOrdersOnSpecificSymbolRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelAllOptionOrdersOnSpecificSymbol(\n        requestParameters: CancelAllOptionOrdersOnSpecificSymbolRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersOnSpecificSymbolResponse>>;\n    /**\n     * Cancel multiple orders.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Option Orders (TRADE)\n     * @param {CancelMultipleOptionOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelMultipleOptionOrders(\n        requestParameters: CancelMultipleOptionOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOptionOrdersResponse>>;\n    /**\n     * Cancel an active order.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Option Order (TRADE)\n     * @param {CancelOptionOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    cancelOptionOrder(\n        requestParameters: CancelOptionOrderRequest\n    ): Promise<RestApiResponse<CancelOptionOrderResponse>>;\n    /**\n     * Send a new order.\n     *\n     * Weight: 0\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     * Get current position information.\n     *\n     * Weight: 5\n     *\n     * @summary Option Position Information (USER_DATA)\n     * @param {OptionPositionInformationRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    optionPositionInformation(\n        requestParameters?: OptionPositionInformationRequest\n    ): Promise<RestApiResponse<OptionPositionInformationResponse>>;\n    /**\n     * Send multiple option orders.\n     *\n     * Parameter rules are same with New Order\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     *\n     * Weight: 5\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>>;\n    /**\n     * Query current all open orders, status: ACCEPTED PARTIALLY_FILLED\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     *\n     * @summary Query Current Open Option Orders (USER_DATA)\n     * @param {QueryCurrentOpenOptionOrdersRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    queryCurrentOpenOptionOrders(\n        requestParameters?: QueryCurrentOpenOptionOrdersRequest\n    ): Promise<RestApiResponse<QueryCurrentOpenOptionOrdersResponse>>;\n    /**\n     * Query all finished orders within 5 days, finished status: CANCELLED FILLED REJECTED.\n     *\n     * Weight: 3\n     *\n     * @summary Query Option Order History (TRADE)\n     * @param {QueryOptionOrderHistoryRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    queryOptionOrderHistory(\n        requestParameters: QueryOptionOrderHistoryRequest\n    ): Promise<RestApiResponse<QueryOptionOrderHistoryResponse>>;\n    /**\n     * Check an order status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `REJECTED`, **AND**\n     * order has NO filled trade, **AND**\n     * created time + 3 days < current time\n     *\n     *\n     * Either `orderId` or `clientOrderId ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Query Single Order (TRADE)\n     * @param {QuerySingleOrderRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    querySingleOrder(\n        requestParameters: QuerySingleOrderRequest\n    ): Promise<RestApiResponse<QuerySingleOrderResponse>>;\n    /**\n     * Get account exercise records.\n     *\n     * Weight: 5\n     *\n     * @summary User Exercise Record (USER_DATA)\n     * @param {UserExerciseRecordRequest} requestParameters Request parameters.\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApiInterface\n     */\n    userExerciseRecord(\n        requestParameters?: UserExerciseRecordRequest\n    ): Promise<RestApiResponse<UserExerciseRecordResponse>>;\n}\n\n/**\n * Request parameters for accountTradeList operation in TradeApi.\n * @interface AccountTradeListRequest\n */\nexport interface AccountTradeListRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly symbol?: string;\n\n    /**\n     * The UniqueId ID from which to return. The latest deal record is returned by default\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly fromId?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiAccountTradeList\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelAllOptionOrdersByUnderlying operation in TradeApi.\n * @interface CancelAllOptionOrdersByUnderlyingRequest\n */\nexport interface CancelAllOptionOrdersByUnderlyingRequest {\n    /**\n     * Option underlying, e.g BTCUSDT\n     * @type {string}\n     * @memberof TradeApiCancelAllOptionOrdersByUnderlying\n     */\n    readonly underlying: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelAllOptionOrdersByUnderlying\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelAllOptionOrdersOnSpecificSymbol operation in TradeApi.\n * @interface CancelAllOptionOrdersOnSpecificSymbolRequest\n */\nexport interface CancelAllOptionOrdersOnSpecificSymbolRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiCancelAllOptionOrdersOnSpecificSymbol\n     */\n    readonly symbol: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelAllOptionOrdersOnSpecificSymbol\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelMultipleOptionOrders operation in TradeApi.\n * @interface CancelMultipleOptionOrdersRequest\n */\nexport interface CancelMultipleOptionOrdersRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiCancelMultipleOptionOrders\n     */\n    readonly symbol: string;\n\n    /**\n     * Order ID, e.g [4611875134427365377,4611875134427365378]\n     * @type {Array<number>}\n     * @memberof TradeApiCancelMultipleOptionOrders\n     */\n    readonly orderIds?: Array<number>;\n\n    /**\n     * User-defined order ID, e.g [\"my_id_1\",\"my_id_2\"]\n     * @type {Array<string>}\n     * @memberof TradeApiCancelMultipleOptionOrders\n     */\n    readonly clientOrderIds?: Array<string>;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelMultipleOptionOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for cancelOptionOrder operation in TradeApi.\n * @interface CancelOptionOrderRequest\n */\nexport interface CancelOptionOrderRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiCancelOptionOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * Order ID, e.g 4611875134427365377\n     * @type {number}\n     * @memberof TradeApiCancelOptionOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     * User-defined order ID, e.g 10000\n     * @type {string}\n     * @memberof TradeApiCancelOptionOrder\n     */\n    readonly clientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiCancelOptionOrder\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     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * BUY or SELL\n     * @type {'BUY' | 'SELL'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly side: NewOrderSideEnum;\n\n    /**\n     * Order Type: LIMIT(only support limit)\n     * @type {'LIMIT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly type: NewOrderTypeEnum;\n\n    /**\n     * Order Quantity\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly quantity: number;\n\n    /**\n     * Order Price\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly price?: number;\n\n    /**\n     * Time in force method（Default GTC）\n     * @type {'GTC' | 'IOC' | 'FOK'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly timeInForce?: NewOrderTimeInForceEnum;\n\n    /**\n     * Reduce Only（Default false）\n     * @type {boolean}\n     * @memberof TradeApiNewOrder\n     */\n    readonly reduceOnly?: boolean;\n\n    /**\n     * Post Only（Default false）\n     * @type {boolean}\n     * @memberof TradeApiNewOrder\n     */\n    readonly postOnly?: boolean;\n\n    /**\n     * \"ACK\", \"RESULT\", Default \"ACK\"\n     * @type {'ACK' | 'RESULT'}\n     * @memberof TradeApiNewOrder\n     */\n    readonly newOrderRespType?: NewOrderNewOrderRespTypeEnum;\n\n    /**\n     * User-defined order ID, e.g 10000\n     * @type {string}\n     * @memberof TradeApiNewOrder\n     */\n    readonly clientOrderId?: string;\n\n    /**\n     * is market maker protection order, true/false\n     * @type {boolean}\n     * @memberof TradeApiNewOrder\n     */\n    readonly isMmp?: boolean;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiNewOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for optionPositionInformation operation in TradeApi.\n * @interface OptionPositionInformationRequest\n */\nexport interface OptionPositionInformationRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiOptionPositionInformation\n     */\n    readonly symbol?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiOptionPositionInformation\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for placeMultipleOrders operation in TradeApi.\n * @interface PlaceMultipleOrdersRequest\n */\nexport interface PlaceMultipleOrdersRequest {\n    /**\n     * order list. Max 5 orders\n     * @type {Array<PlaceMultipleOrdersOrdersParameterInner>}\n     * @memberof TradeApiPlaceMultipleOrders\n     */\n    readonly orders: Array<PlaceMultipleOrdersOrdersParameterInner>;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiPlaceMultipleOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryCurrentOpenOptionOrders operation in TradeApi.\n * @interface QueryCurrentOpenOptionOrdersRequest\n */\nexport interface QueryCurrentOpenOptionOrdersRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly symbol?: string;\n\n    /**\n     * Order ID, e.g 4611875134427365377\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly orderId?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryCurrentOpenOptionOrders\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for queryOptionOrderHistory operation in TradeApi.\n * @interface QueryOptionOrderHistoryRequest\n */\nexport interface QueryOptionOrderHistoryRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly symbol: string;\n\n    /**\n     * Order ID, e.g 4611875134427365377\n     * @type {number}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly orderId?: number;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQueryOptionOrderHistory\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for querySingleOrder operation in TradeApi.\n * @interface QuerySingleOrderRequest\n */\nexport interface QuerySingleOrderRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiQuerySingleOrder\n     */\n    readonly symbol: string;\n\n    /**\n     * Order ID, e.g 4611875134427365377\n     * @type {number}\n     * @memberof TradeApiQuerySingleOrder\n     */\n    readonly orderId?: number;\n\n    /**\n     * User-defined order ID, e.g 10000\n     * @type {string}\n     * @memberof TradeApiQuerySingleOrder\n     */\n    readonly clientOrderId?: string;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiQuerySingleOrder\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * Request parameters for userExerciseRecord operation in TradeApi.\n * @interface UserExerciseRecordRequest\n */\nexport interface UserExerciseRecordRequest {\n    /**\n     * Option trading pair, e.g BTC-200730-9000-C\n     * @type {string}\n     * @memberof TradeApiUserExerciseRecord\n     */\n    readonly symbol?: string;\n\n    /**\n     * Start Time, e.g 1593511200000\n     * @type {number}\n     * @memberof TradeApiUserExerciseRecord\n     */\n    readonly startTime?: number;\n\n    /**\n     * End Time, e.g 1593512200000\n     * @type {number}\n     * @memberof TradeApiUserExerciseRecord\n     */\n    readonly endTime?: number;\n\n    /**\n     * Number of result sets returned Default:100 Max:1000\n     * @type {number}\n     * @memberof TradeApiUserExerciseRecord\n     */\n    readonly limit?: number;\n\n    /**\n     *\n     * @type {number}\n     * @memberof TradeApiUserExerciseRecord\n     */\n    readonly recvWindow?: number;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n */\nexport class TradeApi implements TradeApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = TradeApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Account-Trade-List Binance API Documentation}\n     */\n    public async accountTradeList(\n        requestParameters: AccountTradeListRequest = {}\n    ): Promise<RestApiResponse<AccountTradeListResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.accountTradeList(\n            requestParameters?.symbol,\n            requestParameters?.fromId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<AccountTradeListResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel all active orders on specified underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Option Orders By Underlying (TRADE)\n     * @param {CancelAllOptionOrdersByUnderlyingRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOptionOrdersByUnderlyingResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-All-Option-Orders-By-Underlying Binance API Documentation}\n     */\n    public async cancelAllOptionOrdersByUnderlying(\n        requestParameters: CancelAllOptionOrdersByUnderlyingRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersByUnderlyingResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.cancelAllOptionOrdersByUnderlying(\n                requestParameters?.underlying,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<CancelAllOptionOrdersByUnderlyingResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel all active order on a symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel all Option orders on specific symbol (TRADE)\n     * @param {CancelAllOptionOrdersOnSpecificSymbolRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOptionOrdersOnSpecificSymbolResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-all-Option-orders-on-specific-symbol Binance API Documentation}\n     */\n    public async cancelAllOptionOrdersOnSpecificSymbol(\n        requestParameters: CancelAllOptionOrdersOnSpecificSymbolRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersOnSpecificSymbolResponse>> {\n        const localVarAxiosArgs =\n            await this.localVarAxiosParamCreator.cancelAllOptionOrdersOnSpecificSymbol(\n                requestParameters?.symbol,\n                requestParameters?.recvWindow\n            );\n        return sendRequest<CancelAllOptionOrdersOnSpecificSymbolResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel multiple orders.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Option Orders (TRADE)\n     * @param {CancelMultipleOptionOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelMultipleOptionOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-Multiple-Option-Orders Binance API Documentation}\n     */\n    public async cancelMultipleOptionOrders(\n        requestParameters: CancelMultipleOptionOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOptionOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelMultipleOptionOrders(\n            requestParameters?.symbol,\n            requestParameters?.orderIds,\n            requestParameters?.clientOrderIds,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CancelMultipleOptionOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Option Order (TRADE)\n     * @param {CancelOptionOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelOptionOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-Option-Order Binance API Documentation}\n     */\n    public async cancelOptionOrder(\n        requestParameters: CancelOptionOrderRequest\n    ): Promise<RestApiResponse<CancelOptionOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelOptionOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.clientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<CancelOptionOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Send a new order.\n     *\n     * Weight: 0\n     *\n     * @summary New Order (TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/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?.quantity,\n            requestParameters?.price,\n            requestParameters?.timeInForce,\n            requestParameters?.reduceOnly,\n            requestParameters?.postOnly,\n            requestParameters?.newOrderRespType,\n            requestParameters?.clientOrderId,\n            requestParameters?.isMmp,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<NewOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Weight: 5\n     *\n     * @summary Option Position Information (USER_DATA)\n     * @param {OptionPositionInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionPositionInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Option-Position-Information Binance API Documentation}\n     */\n    public async optionPositionInformation(\n        requestParameters: OptionPositionInformationRequest = {}\n    ): Promise<RestApiResponse<OptionPositionInformationResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.optionPositionInformation(\n            requestParameters?.symbol,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<OptionPositionInformationResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Send multiple option orders.\n     *\n     * Parameter rules are same with New Order\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     *\n     * Weight: 5\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PlaceMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Place-Multiple-Orders Binance API Documentation}\n     */\n    public async placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.placeMultipleOrders(\n            requestParameters?.orders,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<PlaceMultipleOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query current all open orders, status: ACCEPTED PARTIALLY_FILLED\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     *\n     * @summary Query Current Open Option Orders (USER_DATA)\n     * @param {QueryCurrentOpenOptionOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryCurrentOpenOptionOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Current-Open-Option-Orders Binance API Documentation}\n     */\n    public async queryCurrentOpenOptionOrders(\n        requestParameters: QueryCurrentOpenOptionOrdersRequest = {}\n    ): Promise<RestApiResponse<QueryCurrentOpenOptionOrdersResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryCurrentOpenOptionOrders(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryCurrentOpenOptionOrdersResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Query all finished orders within 5 days, finished status: CANCELLED FILLED REJECTED.\n     *\n     * Weight: 3\n     *\n     * @summary Query Option Order History (TRADE)\n     * @param {QueryOptionOrderHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryOptionOrderHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History Binance API Documentation}\n     */\n    public async queryOptionOrderHistory(\n        requestParameters: QueryOptionOrderHistoryRequest\n    ): Promise<RestApiResponse<QueryOptionOrderHistoryResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryOptionOrderHistory(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QueryOptionOrderHistoryResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Check an order status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `REJECTED`, **AND**\n     * order has NO filled trade, **AND**\n     * created time + 3 days < current time\n     *\n     *\n     * Either `orderId` or `clientOrderId ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Query Single Order (TRADE)\n     * @param {QuerySingleOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QuerySingleOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Single-Order Binance API Documentation}\n     */\n    public async querySingleOrder(\n        requestParameters: QuerySingleOrderRequest\n    ): Promise<RestApiResponse<QuerySingleOrderResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.querySingleOrder(\n            requestParameters?.symbol,\n            requestParameters?.orderId,\n            requestParameters?.clientOrderId,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<QuerySingleOrderResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n\n    /**\n     * Get account exercise records.\n     *\n     * Weight: 5\n     *\n     * @summary User Exercise Record (USER_DATA)\n     * @param {UserExerciseRecordRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UserExerciseRecordResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof TradeApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/User-Exercise-Record Binance API Documentation}\n     */\n    public async userExerciseRecord(\n        requestParameters: UserExerciseRecordRequest = {}\n    ): Promise<RestApiResponse<UserExerciseRecordResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.userExerciseRecord(\n            requestParameters?.symbol,\n            requestParameters?.startTime,\n            requestParameters?.endTime,\n            requestParameters?.limit,\n            requestParameters?.recvWindow\n        );\n        return sendRequest<UserExerciseRecordResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: true }\n        );\n    }\n}\n\nexport const NewOrderSideEnum = {\n    BUY: 'BUY',\n    SELL: 'SELL',\n} as const;\nexport type NewOrderSideEnum = (typeof NewOrderSideEnum)[keyof typeof NewOrderSideEnum];\n\nexport const NewOrderTypeEnum = {\n    LIMIT: 'LIMIT',\n} as const;\nexport type NewOrderTypeEnum = (typeof NewOrderTypeEnum)[keyof typeof NewOrderTypeEnum];\n\nexport const NewOrderTimeInForceEnum = {\n    GTC: 'GTC',\n    IOC: 'IOC',\n    FOK: 'FOK',\n} as const;\nexport type NewOrderTimeInForceEnum =\n    (typeof NewOrderTimeInForceEnum)[keyof typeof NewOrderTimeInForceEnum];\n\nexport const NewOrderNewOrderRespTypeEnum = {\n    ACK: 'ACK',\n    RESULT: 'RESULT',\n} as const;\nexport type NewOrderNewOrderRespTypeEnum =\n    (typeof NewOrderNewOrderRespTypeEnum)[keyof typeof NewOrderNewOrderRespTypeEnum];\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    ConfigurationRestAPI,\n    TimeUnit,\n    RestApiResponse,\n    sendRequest,\n    type RequestArgs,\n} from '@binance/common';\nimport type { StartUserDataStreamResponse } from '../types';\n\n/**\n * UserDataStreamsApi - axios parameter creator\n */\nconst UserDataStreamsApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n    return {\n        /**\n         * Close out a user data stream.\n         *\n         * Weight: 1\n         *\n         * @summary Close User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        closeUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/listenKey',\n                method: 'DELETE',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n         *\n         * Weight: 1\n         *\n         * @summary Keepalive User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        keepaliveUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/listenKey',\n                method: 'PUT',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n        /**\n         * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n         *\n         * Weight: 1\n         *\n         * @summary Start User Data Stream (USER_STREAM)\n         *\n         * @throws {RequiredError}\n         */\n        startUserDataStream: async (): Promise<RequestArgs> => {\n            const localVarQueryParameter: Record<string, unknown> = {};\n\n            let _timeUnit: TimeUnit | undefined;\n            if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n            return {\n                endpoint: '/eapi/v1/listenKey',\n                method: 'POST',\n                params: localVarQueryParameter,\n                timeUnit: _timeUnit,\n            };\n        },\n    };\n};\n\n/**\n * UserDataStreamsApi - interface\n * @interface UserDataStreamsApi\n */\nexport interface UserDataStreamsApiInterface {\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    closeUserDataStream(): Promise<RestApiResponse<void>>;\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    keepaliveUserDataStream(): Promise<RestApiResponse<void>>;\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     *\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApiInterface\n     */\n    startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>>;\n}\n\n/**\n * UserDataStreamsApi - object-oriented interface\n * @class UserDataStreamsApi\n */\nexport class UserDataStreamsApi implements UserDataStreamsApiInterface {\n    private readonly configuration: ConfigurationRestAPI;\n    private localVarAxiosParamCreator;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.localVarAxiosParamCreator = UserDataStreamsApiAxiosParamCreator(configuration);\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Close-User-Data-Stream Binance API Documentation}\n     */\n    public async closeUserDataStream(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.closeUserDataStream();\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    public async keepaliveUserDataStream(): Promise<RestApiResponse<void>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.keepaliveUserDataStream();\n        return sendRequest<void>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<StartUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @memberof UserDataStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Start-User-Data-Stream Binance API Documentation}\n     */\n    public async startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n        const localVarAxiosArgs = await this.localVarAxiosParamCreator.startUserDataStream();\n        return sendRequest<StartUserDataStreamResponse>(\n            this.configuration,\n            localVarAxiosArgs.endpoint,\n            localVarAxiosArgs.method,\n            localVarAxiosArgs.params,\n            localVarAxiosArgs?.timeUnit,\n            { isSigned: false }\n        );\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options REST API\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { ConfigurationRestAPI, RestApiResponse, sendRequest } from '@binance/common';\nimport { AccountApi } from './modules/account-api';\nimport { MarketDataApi } from './modules/market-data-api';\nimport { MarketMakerBlockTradeApi } from './modules/market-maker-block-trade-api';\nimport { MarketMakerEndpointsApi } from './modules/market-maker-endpoints-api';\nimport { TradeApi } from './modules/trade-api';\nimport { UserDataStreamsApi } from './modules/user-data-streams-api';\n\nimport type {\n    AccountFundingFlowRequest,\n    GetDownloadIdForOptionTransactionHistoryRequest,\n    GetOptionTransactionHistoryDownloadLinkByIdRequest,\n    OptionAccountInformationRequest,\n} from './modules/account-api';\nimport type {\n    HistoricalExerciseRecordsRequest,\n    KlineCandlestickDataRequest,\n    OldTradesLookupRequest,\n    OpenInterestRequest,\n    OptionMarkPriceRequest,\n    OrderBookRequest,\n    RecentBlockTradesListRequest,\n    RecentTradesListRequest,\n    SymbolPriceTickerRequest,\n    Ticker24hrPriceChangeStatisticsRequest,\n} from './modules/market-data-api';\nimport type {\n    AcceptBlockTradeOrderRequest,\n    AccountBlockTradeListRequest,\n    CancelBlockTradeOrderRequest,\n    ExtendBlockTradeOrderRequest,\n    NewBlockTradeOrderRequest,\n    QueryBlockTradeDetailsRequest,\n    QueryBlockTradeOrderRequest,\n} from './modules/market-maker-block-trade-api';\nimport type {\n    AutoCancelAllOpenOrdersRequest,\n    GetAutoCancelAllOpenOrdersRequest,\n    GetMarketMakerProtectionConfigRequest,\n    OptionMarginAccountInformationRequest,\n    ResetMarketMakerProtectionConfigRequest,\n    SetAutoCancelAllOpenOrdersRequest,\n    SetMarketMakerProtectionConfigRequest,\n} from './modules/market-maker-endpoints-api';\nimport type {\n    AccountTradeListRequest,\n    CancelAllOptionOrdersByUnderlyingRequest,\n    CancelAllOptionOrdersOnSpecificSymbolRequest,\n    CancelMultipleOptionOrdersRequest,\n    CancelOptionOrderRequest,\n    NewOrderRequest,\n    OptionPositionInformationRequest,\n    PlaceMultipleOrdersRequest,\n    QueryCurrentOpenOptionOrdersRequest,\n    QueryOptionOrderHistoryRequest,\n    QuerySingleOrderRequest,\n    UserExerciseRecordRequest,\n} from './modules/trade-api';\nimport type {} from './modules/user-data-streams-api';\n\nimport type {\n    AccountFundingFlowResponse,\n    GetDownloadIdForOptionTransactionHistoryResponse,\n    GetOptionTransactionHistoryDownloadLinkByIdResponse,\n    OptionAccountInformationResponse,\n} from './types';\nimport type {\n    CheckServerTimeResponse,\n    ExchangeInformationResponse,\n    HistoricalExerciseRecordsResponse,\n    KlineCandlestickDataResponse,\n    OldTradesLookupResponse,\n    OpenInterestResponse,\n    OptionMarkPriceResponse,\n    OrderBookResponse,\n    RecentBlockTradesListResponse,\n    RecentTradesListResponse,\n    SymbolPriceTickerResponse,\n    Ticker24hrPriceChangeStatisticsResponse,\n} from './types';\nimport type {\n    AcceptBlockTradeOrderResponse,\n    AccountBlockTradeListResponse,\n    ExtendBlockTradeOrderResponse,\n    NewBlockTradeOrderResponse,\n    QueryBlockTradeDetailsResponse,\n    QueryBlockTradeOrderResponse,\n} from './types';\nimport type {\n    AutoCancelAllOpenOrdersResponse,\n    GetAutoCancelAllOpenOrdersResponse,\n    GetMarketMakerProtectionConfigResponse,\n    OptionMarginAccountInformationResponse,\n    ResetMarketMakerProtectionConfigResponse,\n    SetAutoCancelAllOpenOrdersResponse,\n    SetMarketMakerProtectionConfigResponse,\n} from './types';\nimport type {\n    AccountTradeListResponse,\n    CancelAllOptionOrdersByUnderlyingResponse,\n    CancelAllOptionOrdersOnSpecificSymbolResponse,\n    CancelMultipleOptionOrdersResponse,\n    CancelOptionOrderResponse,\n    NewOrderResponse,\n    OptionPositionInformationResponse,\n    PlaceMultipleOrdersResponse,\n    QueryCurrentOpenOptionOrdersResponse,\n    QueryOptionOrderHistoryResponse,\n    QuerySingleOrderResponse,\n    UserExerciseRecordResponse,\n} from './types';\nimport type { StartUserDataStreamResponse } from './types';\n\nexport class RestAPI {\n    private configuration: ConfigurationRestAPI;\n    private accountApi: AccountApi;\n    private marketDataApi: MarketDataApi;\n    private marketMakerBlockTradeApi: MarketMakerBlockTradeApi;\n    private marketMakerEndpointsApi: MarketMakerEndpointsApi;\n    private tradeApi: TradeApi;\n    private userDataStreamsApi: UserDataStreamsApi;\n\n    constructor(configuration: ConfigurationRestAPI) {\n        this.configuration = configuration;\n        this.accountApi = new AccountApi(configuration);\n        this.marketDataApi = new MarketDataApi(configuration);\n        this.marketMakerBlockTradeApi = new MarketMakerBlockTradeApi(configuration);\n        this.marketMakerEndpointsApi = new MarketMakerEndpointsApi(configuration);\n        this.tradeApi = new TradeApi(configuration);\n        this.userDataStreamsApi = new UserDataStreamsApi(configuration);\n    }\n\n    /**\n     * Generic function to send a request.\n     * @param endpoint - The API endpoint to call.\n     * @param method - HTTP method to use (GET, POST, DELETE, etc.).\n     * @param params - Query parameters for the request.\n     *\n     * @returns A promise resolving to the response data object.\n     */\n    sendRequest<T>(\n        endpoint: string,\n        method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH',\n        params: Record<string, unknown> = {}\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(this.configuration, endpoint, method, params, undefined);\n    }\n\n    /**\n     * Generic function to send a signed request.\n     * @param endpoint - The API endpoint to call.\n     * @param method - HTTP method to use (GET, POST, DELETE, etc.).\n     * @param params - Query parameters for the request.\n     *\n     * @returns A promise resolving to the response data object.\n     */\n    sendSignedRequest<T>(\n        endpoint: string,\n        method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH',\n        params: Record<string, unknown> = {}\n    ): Promise<RestApiResponse<T>> {\n        return sendRequest<T>(this.configuration, endpoint, method, params, undefined, {\n            isSigned: true,\n        });\n    }\n\n    /**\n     * Query account funding flows.\n     *\n     * Weight: 1\n     *\n     * @summary Account Funding Flow (USER_DATA)\n     * @param {AccountFundingFlowRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountFundingFlowResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Account-Funding-Flow Binance API Documentation}\n     */\n    accountFundingFlow(\n        requestParameters: AccountFundingFlowRequest\n    ): Promise<RestApiResponse<AccountFundingFlowResponse>> {\n        return this.accountApi.accountFundingFlow(requestParameters);\n    }\n\n    /**\n     * Get download id for option transaction history\n     *\n     * Request Limitation is 5 times per month, shared by > front end download page and rest api\n     * The time between `startTime` and `endTime` can not be longer than 1 year\n     *\n     * Weight: 5\n     *\n     * @summary Get Download Id For Option Transaction History (USER_DATA)\n     * @param {GetDownloadIdForOptionTransactionHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetDownloadIdForOptionTransactionHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Get-Download-Id-For-Option-Transaction-History Binance API Documentation}\n     */\n    getDownloadIdForOptionTransactionHistory(\n        requestParameters: GetDownloadIdForOptionTransactionHistoryRequest\n    ): Promise<RestApiResponse<GetDownloadIdForOptionTransactionHistoryResponse>> {\n        return this.accountApi.getDownloadIdForOptionTransactionHistory(requestParameters);\n    }\n\n    /**\n     * Get option transaction history download Link by Id\n     *\n     * Download link expiration: 24h\n     *\n     * Weight: 5\n     *\n     * @summary Get Option Transaction History Download Link by Id (USER_DATA)\n     * @param {GetOptionTransactionHistoryDownloadLinkByIdRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetOptionTransactionHistoryDownloadLinkByIdResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Get-Option-Transaction-History-Download-Link-by-Id Binance API Documentation}\n     */\n    getOptionTransactionHistoryDownloadLinkById(\n        requestParameters: GetOptionTransactionHistoryDownloadLinkByIdRequest\n    ): Promise<RestApiResponse<GetOptionTransactionHistoryDownloadLinkByIdResponse>> {\n        return this.accountApi.getOptionTransactionHistoryDownloadLinkById(requestParameters);\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Account Information(TRADE)\n     * @param {OptionAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/account/Option-Account-Information Binance API Documentation}\n     */\n    optionAccountInformation(\n        requestParameters: OptionAccountInformationRequest = {}\n    ): Promise<RestApiResponse<OptionAccountInformationResponse>> {\n        return this.accountApi.optionAccountInformation(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the Rest API and get the current server time.\n     *\n     * Weight: 1\n     *\n     * @summary Check Server Time\n     * @returns {Promise<RestApiResponse<CheckServerTimeResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Check-Server-Time Binance API Documentation}\n     */\n    checkServerTime(): Promise<RestApiResponse<CheckServerTimeResponse>> {\n        return this.marketDataApi.checkServerTime();\n    }\n\n    /**\n     * Current exchange trading rules and symbol information\n     *\n     * Weight: 1\n     *\n     * @summary Exchange Information\n     * @returns {Promise<RestApiResponse<ExchangeInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Exchange-Information Binance API Documentation}\n     */\n    exchangeInformation(): Promise<RestApiResponse<ExchangeInformationResponse>> {\n        return this.marketDataApi.exchangeInformation();\n    }\n\n    /**\n     * Get historical exercise records.\n     * REALISTIC_VALUE_STRICKEN -> Exercised\n     * EXTRINSIC_VALUE_EXPIRED -> Expired OTM\n     *\n     * Weight: 3\n     *\n     * @summary Historical Exercise Records\n     * @param {HistoricalExerciseRecordsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<HistoricalExerciseRecordsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Historical-Exercise-Records Binance API Documentation}\n     */\n    historicalExerciseRecords(\n        requestParameters: HistoricalExerciseRecordsRequest = {}\n    ): Promise<RestApiResponse<HistoricalExerciseRecordsResponse>> {\n        return this.marketDataApi.historicalExerciseRecords(requestParameters);\n    }\n\n    /**\n     * Kline/candlestick bars for an option symbol.\n     * Klines are uniquely identified by their open time.\n     *\n     * If startTime and endTime are not sent, the most recent klines are returned.\n     *\n     * Weight: 1\n     *\n     * @summary Kline/Candlestick Data\n     * @param {KlineCandlestickDataRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<KlineCandlestickDataResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Kline-Candlestick-Data Binance API Documentation}\n     */\n    klineCandlestickData(\n        requestParameters: KlineCandlestickDataRequest\n    ): Promise<RestApiResponse<KlineCandlestickDataResponse>> {\n        return this.marketDataApi.klineCandlestickData(requestParameters);\n    }\n\n    /**\n     * Get older market historical trades.\n     *\n     * Weight: 20\n     *\n     * @summary Old Trades Lookup (MARKET_DATA)\n     * @param {OldTradesLookupRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OldTradesLookupResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Old-Trades-Lookup Binance API Documentation}\n     */\n    oldTradesLookup(\n        requestParameters: OldTradesLookupRequest\n    ): Promise<RestApiResponse<OldTradesLookupResponse>> {\n        return this.marketDataApi.oldTradesLookup(requestParameters);\n    }\n\n    /**\n     * Get open interest for specific underlying asset on specific expiration date.\n     *\n     * Weight: 0\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OpenInterestResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Open-Interest Binance API Documentation}\n     */\n    openInterest(\n        requestParameters: OpenInterestRequest\n    ): Promise<RestApiResponse<OpenInterestResponse>> {\n        return this.marketDataApi.openInterest(requestParameters);\n    }\n\n    /**\n     * Option mark price and greek info.\n     *\n     * Weight: 5\n     *\n     * @summary Option Mark Price\n     * @param {OptionMarkPriceRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionMarkPriceResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Option-Mark-Price Binance API Documentation}\n     */\n    optionMarkPrice(\n        requestParameters: OptionMarkPriceRequest = {}\n    ): Promise<RestApiResponse<OptionMarkPriceResponse>> {\n        return this.marketDataApi.optionMarkPrice(requestParameters);\n    }\n\n    /**\n     * Check orderbook depth on specific symbol\n     *\n     * Weight: limit         | weight\n     * ------------  | ------------\n     * 5, 10, 20, 50 | 2\n     * 100           | 5\n     * 500           | 10\n     * 1000          | 20\n     *\n     * @summary Order Book\n     * @param {OrderBookRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OrderBookResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Order-Book Binance API Documentation}\n     */\n    orderBook(requestParameters: OrderBookRequest): Promise<RestApiResponse<OrderBookResponse>> {\n        return this.marketDataApi.orderBook(requestParameters);\n    }\n\n    /**\n     * Get recent block trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Block Trades List\n     * @param {RecentBlockTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentBlockTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Recent-Block-Trade-List Binance API Documentation}\n     */\n    recentBlockTradesList(\n        requestParameters: RecentBlockTradesListRequest = {}\n    ): Promise<RestApiResponse<RecentBlockTradesListResponse>> {\n        return this.marketDataApi.recentBlockTradesList(requestParameters);\n    }\n\n    /**\n     * Get recent market trades\n     *\n     * Weight: 5\n     *\n     * @summary Recent Trades List\n     * @param {RecentTradesListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<RecentTradesListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Recent-Trades-List Binance API Documentation}\n     */\n    recentTradesList(\n        requestParameters: RecentTradesListRequest\n    ): Promise<RestApiResponse<RecentTradesListResponse>> {\n        return this.marketDataApi.recentTradesList(requestParameters);\n    }\n\n    /**\n     * Get spot index price for option underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Symbol Price Ticker\n     * @param {SymbolPriceTickerRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SymbolPriceTickerResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Symbol-Price-Ticker Binance API Documentation}\n     */\n    symbolPriceTicker(\n        requestParameters: SymbolPriceTickerRequest\n    ): Promise<RestApiResponse<SymbolPriceTickerResponse>> {\n        return this.marketDataApi.symbolPriceTicker(requestParameters);\n    }\n\n    /**\n     * Test connectivity to the Rest API.\n     *\n     * Weight: 1\n     *\n     * @summary Test Connectivity\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/Test-Connectivity Binance API Documentation}\n     */\n    testConnectivity(): Promise<RestApiResponse<void>> {\n        return this.marketDataApi.testConnectivity();\n    }\n\n    /**\n     * 24 hour rolling window price change statistics.\n     *\n     * Weight: 5\n     *\n     * @summary 24hr Ticker Price Change Statistics\n     * @param {Ticker24hrPriceChangeStatisticsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-data/24hr-Ticker-Price-Change-Statistics Binance API Documentation}\n     */\n    ticker24hrPriceChangeStatistics(\n        requestParameters: Ticker24hrPriceChangeStatisticsRequest = {}\n    ): Promise<RestApiResponse<Ticker24hrPriceChangeStatisticsResponse>> {\n        return this.marketDataApi.ticker24hrPriceChangeStatistics(requestParameters);\n    }\n\n    /**\n     * Accept a block trade order\n     *\n     * Weight: 5\n     *\n     * @summary Accept Block Trade Order (TRADE)\n     * @param {AcceptBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AcceptBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Accept-Block-Trade-Order Binance API Documentation}\n     */\n    acceptBlockTradeOrder(\n        requestParameters: AcceptBlockTradeOrderRequest\n    ): Promise<RestApiResponse<AcceptBlockTradeOrderResponse>> {\n        return this.marketMakerBlockTradeApi.acceptBlockTradeOrder(requestParameters);\n    }\n\n    /**\n     * Gets block trades for a specific account.\n     *\n     * Weight: 5\n     *\n     * @summary Account Block Trade List (USER_DATA)\n     * @param {AccountBlockTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountBlockTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Account-Block-Trade-List Binance API Documentation}\n     */\n    accountBlockTradeList(\n        requestParameters: AccountBlockTradeListRequest = {}\n    ): Promise<RestApiResponse<AccountBlockTradeListResponse>> {\n        return this.marketMakerBlockTradeApi.accountBlockTradeList(requestParameters);\n    }\n\n    /**\n     * Cancel a block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary Cancel Block Trade Order (TRADE)\n     * @param {CancelBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Cancel-Block-Trade-Order Binance API Documentation}\n     */\n    cancelBlockTradeOrder(\n        requestParameters: CancelBlockTradeOrderRequest\n    ): Promise<RestApiResponse<void>> {\n        return this.marketMakerBlockTradeApi.cancelBlockTradeOrder(requestParameters);\n    }\n\n    /**\n     * Extends a block trade expire time by 30 mins from the current time.\n     *\n     * Weight: 5\n     *\n     * @summary Extend Block Trade Order (TRADE)\n     * @param {ExtendBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ExtendBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Extend-Block-Trade-Order Binance API Documentation}\n     */\n    extendBlockTradeOrder(\n        requestParameters: ExtendBlockTradeOrderRequest\n    ): Promise<RestApiResponse<ExtendBlockTradeOrderResponse>> {\n        return this.marketMakerBlockTradeApi.extendBlockTradeOrder(requestParameters);\n    }\n\n    /**\n     * Send in a new block trade order.\n     *\n     * Weight: 5\n     *\n     * @summary New Block Trade Order (TRADE)\n     * @param {NewBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/New-Block-Trade-Order Binance API Documentation}\n     */\n    newBlockTradeOrder(\n        requestParameters: NewBlockTradeOrderRequest\n    ): Promise<RestApiResponse<NewBlockTradeOrderResponse>> {\n        return this.marketMakerBlockTradeApi.newBlockTradeOrder(requestParameters);\n    }\n\n    /**\n     * Query block trade details; returns block trade details from counterparty's perspective.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Details (USER_DATA)\n     * @param {QueryBlockTradeDetailsRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryBlockTradeDetailsResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Detail Binance API Documentation}\n     */\n    queryBlockTradeDetails(\n        requestParameters: QueryBlockTradeDetailsRequest\n    ): Promise<RestApiResponse<QueryBlockTradeDetailsResponse>> {\n        return this.marketMakerBlockTradeApi.queryBlockTradeDetails(requestParameters);\n    }\n\n    /**\n     * Check block trade order status.\n     *\n     * Weight: 5\n     *\n     * @summary Query Block Trade Order (TRADE)\n     * @param {QueryBlockTradeOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryBlockTradeOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Order Binance API Documentation}\n     */\n    queryBlockTradeOrder(\n        requestParameters: QueryBlockTradeOrderRequest = {}\n    ): Promise<RestApiResponse<QueryBlockTradeOrderResponse>> {\n        return this.marketMakerBlockTradeApi.queryBlockTradeOrder(requestParameters);\n    }\n\n    /**\n     * This endpoint resets the time from which the countdown will begin to the time this messaged is received.  It should be called repeatedly as heartbeats.  Multiple heartbeats can be updated at once by specifying the underlying symbols as a list (ex. BTCUSDT,ETHUSDT) in the underlyings parameter.\n     *\n     * The response will only include underlying symbols where the heartbeat has been successfully updated.\n     *\n     * Weight: 10\n     *\n     * @summary Auto-Cancel All Open Orders (Kill-Switch) Heartbeat (TRADE)\n     * @param {AutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Auto-Cancel-All-Open-Orders-Heartbeat Binance API Documentation}\n     */\n    autoCancelAllOpenOrders(\n        requestParameters: AutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<AutoCancelAllOpenOrdersResponse>> {\n        return this.marketMakerEndpointsApi.autoCancelAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * This endpoint returns the auto-cancel parameters for each underlying symbol. Note only active auto-cancel parameters will be returned, if countdownTime is set to 0 (ie. countdownTime has been turned off), the underlying symbol and corresponding countdownTime parameter will not be returned in the response.\n     *\n     * countdownTime = 0 means the function is disabled.\n     *\n     * Weight: 1\n     *\n     * @summary Get Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {GetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetAutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Get-Auto-Cancel-All-Open-Orders-Config Binance API Documentation}\n     */\n    getAutoCancelAllOpenOrders(\n        requestParameters: GetAutoCancelAllOpenOrdersRequest = {}\n    ): Promise<RestApiResponse<GetAutoCancelAllOpenOrdersResponse>> {\n        return this.marketMakerEndpointsApi.getAutoCancelAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * Get config for MMP.\n     *\n     * Weight: 1\n     *\n     * @summary Get Market Maker Protection Config (TRADE)\n     * @param {GetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<GetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Get-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    getMarketMakerProtectionConfig(\n        requestParameters: GetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<GetMarketMakerProtectionConfigResponse>> {\n        return this.marketMakerEndpointsApi.getMarketMakerProtectionConfig(requestParameters);\n    }\n\n    /**\n     * Get current account information.\n     *\n     * Weight: 3\n     *\n     * @summary Option Margin Account Information (USER_DATA)\n     * @param {OptionMarginAccountInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionMarginAccountInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Option-Margin-Account-Information Binance API Documentation}\n     */\n    optionMarginAccountInformation(\n        requestParameters: OptionMarginAccountInformationRequest = {}\n    ): Promise<RestApiResponse<OptionMarginAccountInformationResponse>> {\n        return this.marketMakerEndpointsApi.optionMarginAccountInformation(requestParameters);\n    }\n\n    /**\n     * Reset MMP, start MMP order again.\n     *\n     * Weight: 1\n     *\n     * @summary Reset Market Maker Protection Config (TRADE)\n     * @param {ResetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<ResetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Reset-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    resetMarketMakerProtectionConfig(\n        requestParameters: ResetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<ResetMarketMakerProtectionConfigResponse>> {\n        return this.marketMakerEndpointsApi.resetMarketMakerProtectionConfig(requestParameters);\n    }\n\n    /**\n     * This endpoint sets the parameters of the auto-cancel feature which cancels all open orders (both market maker protection and non market maker protection order types) of the underlying symbol at the end of the specified countdown time period if no heartbeat message is sent.  After the countdown time period, all open orders will be cancelled and new orders will be rejected with error code -2010 until either a heartbeat message is sent or the auto-cancel feature is turned off by setting countdownTime to 0.\n     *\n     *\n     * This rest endpoint sets up the parameters to cancel your open orders in case of an outage or disconnection.\n     * Example usage:\n     * Call this endpoint with a countdownTime value of 10000 (10 seconds) to turn on the auto-cancel feature. If the corresponding countdownCancelAllHeartBeat endpoint is not called within 10 seconds with the specified underlying symbol, all open orders of the specified symbol will be automatically canceled. If this endpoint is called with an countdownTime of 0, the countdown timer will be stopped.\n     * The system will check all countdowns approximately every 1000 milliseconds, **please note that sufficient redundancy should be considered when using this function**. We do not recommend setting the countdown time to be too precise or too small.\n     *\n     * Weight: 1\n     *\n     * @summary Set Auto-Cancel All Open Orders (Kill-Switch) Config (TRADE)\n     * @param {SetAutoCancelAllOpenOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SetAutoCancelAllOpenOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Set-Auto-Cancel-All-Open-Orders-Config Binance API Documentation}\n     */\n    setAutoCancelAllOpenOrders(\n        requestParameters: SetAutoCancelAllOpenOrdersRequest\n    ): Promise<RestApiResponse<SetAutoCancelAllOpenOrdersResponse>> {\n        return this.marketMakerEndpointsApi.setAutoCancelAllOpenOrders(requestParameters);\n    }\n\n    /**\n     * Set config for MMP.\n     * Market Maker Protection(MMP) is a set of protection mechanism for option market maker, this mechanism is able to prevent mass trading in short period time. Once market maker's account branches the threshold, the Market Maker Protection will be triggered. When Market Maker Protection triggers, all the current MMP orders will be canceled, new MMP orders will be rejected. Market maker can use this time to reevaluate market and modify order price.\n     *\n     * Weight: 1\n     *\n     * @summary Set Market Maker Protection Config (TRADE)\n     * @param {SetMarketMakerProtectionConfigRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<SetMarketMakerProtectionConfigResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/market-maker-endpoints/Set-Market-Maker-Protection-Config Binance API Documentation}\n     */\n    setMarketMakerProtectionConfig(\n        requestParameters: SetMarketMakerProtectionConfigRequest = {}\n    ): Promise<RestApiResponse<SetMarketMakerProtectionConfigResponse>> {\n        return this.marketMakerEndpointsApi.setMarketMakerProtectionConfig(requestParameters);\n    }\n\n    /**\n     * Get trades for a specific account and symbol.\n     *\n     * Weight: 5\n     *\n     * @summary Account Trade List (USER_DATA)\n     * @param {AccountTradeListRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<AccountTradeListResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Account-Trade-List Binance API Documentation}\n     */\n    accountTradeList(\n        requestParameters: AccountTradeListRequest = {}\n    ): Promise<RestApiResponse<AccountTradeListResponse>> {\n        return this.tradeApi.accountTradeList(requestParameters);\n    }\n\n    /**\n     * Cancel all active orders on specified underlying.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel All Option Orders By Underlying (TRADE)\n     * @param {CancelAllOptionOrdersByUnderlyingRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOptionOrdersByUnderlyingResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-All-Option-Orders-By-Underlying Binance API Documentation}\n     */\n    cancelAllOptionOrdersByUnderlying(\n        requestParameters: CancelAllOptionOrdersByUnderlyingRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersByUnderlyingResponse>> {\n        return this.tradeApi.cancelAllOptionOrdersByUnderlying(requestParameters);\n    }\n\n    /**\n     * Cancel all active order on a symbol.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel all Option orders on specific symbol (TRADE)\n     * @param {CancelAllOptionOrdersOnSpecificSymbolRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelAllOptionOrdersOnSpecificSymbolResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-all-Option-orders-on-specific-symbol Binance API Documentation}\n     */\n    cancelAllOptionOrdersOnSpecificSymbol(\n        requestParameters: CancelAllOptionOrdersOnSpecificSymbolRequest\n    ): Promise<RestApiResponse<CancelAllOptionOrdersOnSpecificSymbolResponse>> {\n        return this.tradeApi.cancelAllOptionOrdersOnSpecificSymbol(requestParameters);\n    }\n\n    /**\n     * Cancel multiple orders.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Multiple Option Orders (TRADE)\n     * @param {CancelMultipleOptionOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelMultipleOptionOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-Multiple-Option-Orders Binance API Documentation}\n     */\n    cancelMultipleOptionOrders(\n        requestParameters: CancelMultipleOptionOrdersRequest\n    ): Promise<RestApiResponse<CancelMultipleOptionOrdersResponse>> {\n        return this.tradeApi.cancelMultipleOptionOrders(requestParameters);\n    }\n\n    /**\n     * Cancel an active order.\n     *\n     * At least one instance of `orderId` and `clientOrderId` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Cancel Option Order (TRADE)\n     * @param {CancelOptionOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<CancelOptionOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Cancel-Option-Order Binance API Documentation}\n     */\n    cancelOptionOrder(\n        requestParameters: CancelOptionOrderRequest\n    ): Promise<RestApiResponse<CancelOptionOrderResponse>> {\n        return this.tradeApi.cancelOptionOrder(requestParameters);\n    }\n\n    /**\n     * Send a new order.\n     *\n     * Weight: 0\n     *\n     * @summary New Order (TRADE)\n     * @param {NewOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<NewOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/New-Order Binance API Documentation}\n     */\n    newOrder(requestParameters: NewOrderRequest): Promise<RestApiResponse<NewOrderResponse>> {\n        return this.tradeApi.newOrder(requestParameters);\n    }\n\n    /**\n     * Get current position information.\n     *\n     * Weight: 5\n     *\n     * @summary Option Position Information (USER_DATA)\n     * @param {OptionPositionInformationRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<OptionPositionInformationResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Option-Position-Information Binance API Documentation}\n     */\n    optionPositionInformation(\n        requestParameters: OptionPositionInformationRequest = {}\n    ): Promise<RestApiResponse<OptionPositionInformationResponse>> {\n        return this.tradeApi.optionPositionInformation(requestParameters);\n    }\n\n    /**\n     * Send multiple option orders.\n     *\n     * Parameter rules are same with New Order\n     * Batch orders are processed concurrently, and the order of matching is not guaranteed.\n     *\n     * Weight: 5\n     *\n     * @summary Place Multiple Orders(TRADE)\n     * @param {PlaceMultipleOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<PlaceMultipleOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Place-Multiple-Orders Binance API Documentation}\n     */\n    placeMultipleOrders(\n        requestParameters: PlaceMultipleOrdersRequest\n    ): Promise<RestApiResponse<PlaceMultipleOrdersResponse>> {\n        return this.tradeApi.placeMultipleOrders(requestParameters);\n    }\n\n    /**\n     * Query current all open orders, status: ACCEPTED PARTIALLY_FILLED\n     *\n     * Weight: 1 for a single symbol; 40 when the symbol parameter is omitted\n     *\n     * @summary Query Current Open Option Orders (USER_DATA)\n     * @param {QueryCurrentOpenOptionOrdersRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryCurrentOpenOptionOrdersResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Current-Open-Option-Orders Binance API Documentation}\n     */\n    queryCurrentOpenOptionOrders(\n        requestParameters: QueryCurrentOpenOptionOrdersRequest = {}\n    ): Promise<RestApiResponse<QueryCurrentOpenOptionOrdersResponse>> {\n        return this.tradeApi.queryCurrentOpenOptionOrders(requestParameters);\n    }\n\n    /**\n     * Query all finished orders within 5 days, finished status: CANCELLED FILLED REJECTED.\n     *\n     * Weight: 3\n     *\n     * @summary Query Option Order History (TRADE)\n     * @param {QueryOptionOrderHistoryRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QueryOptionOrderHistoryResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History Binance API Documentation}\n     */\n    queryOptionOrderHistory(\n        requestParameters: QueryOptionOrderHistoryRequest\n    ): Promise<RestApiResponse<QueryOptionOrderHistoryResponse>> {\n        return this.tradeApi.queryOptionOrderHistory(requestParameters);\n    }\n\n    /**\n     * Check an order status.\n     *\n     * These orders will not be found:\n     * order status is `CANCELED` or `REJECTED`, **AND**\n     * order has NO filled trade, **AND**\n     * created time + 3 days < current time\n     *\n     *\n     * Either `orderId` or `clientOrderId ` must be sent.\n     *\n     * Weight: 1\n     *\n     * @summary Query Single Order (TRADE)\n     * @param {QuerySingleOrderRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<QuerySingleOrderResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/Query-Single-Order Binance API Documentation}\n     */\n    querySingleOrder(\n        requestParameters: QuerySingleOrderRequest\n    ): Promise<RestApiResponse<QuerySingleOrderResponse>> {\n        return this.tradeApi.querySingleOrder(requestParameters);\n    }\n\n    /**\n     * Get account exercise records.\n     *\n     * Weight: 5\n     *\n     * @summary User Exercise Record (USER_DATA)\n     * @param {UserExerciseRecordRequest} requestParameters Request parameters.\n     * @returns {Promise<RestApiResponse<UserExerciseRecordResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/trade/User-Exercise-Record Binance API Documentation}\n     */\n    userExerciseRecord(\n        requestParameters: UserExerciseRecordRequest = {}\n    ): Promise<RestApiResponse<UserExerciseRecordResponse>> {\n        return this.tradeApi.userExerciseRecord(requestParameters);\n    }\n\n    /**\n     * Close out a user data stream.\n     *\n     * Weight: 1\n     *\n     * @summary Close User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Close-User-Data-Stream Binance API Documentation}\n     */\n    closeUserDataStream(): Promise<RestApiResponse<void>> {\n        return this.userDataStreamsApi.closeUserDataStream();\n    }\n\n    /**\n     * Keepalive a user data stream to prevent a time out. User data streams will close after 60 minutes. It's recommended to send a ping about every 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Keepalive User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<void>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Keepalive-User-Data-Stream Binance API Documentation}\n     */\n    keepaliveUserDataStream(): Promise<RestApiResponse<void>> {\n        return this.userDataStreamsApi.keepaliveUserDataStream();\n    }\n\n    /**\n     * Start a new user data stream. The stream will close after 60 minutes unless a keepalive is sent. If the account has an active `listenKey`, that `listenKey` will be returned and its validity will be extended for 60 minutes.\n     *\n     * Weight: 1\n     *\n     * @summary Start User Data Stream (USER_STREAM)\n     * @returns {Promise<RestApiResponse<StartUserDataStreamResponse>>}\n     * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/user-data-streams/Start-User-Data-Stream Binance API Documentation}\n     */\n    startUserDataStream(): Promise<RestApiResponse<StartUserDataStreamResponse>> {\n        return this.userDataStreamsApi.startUserDataStream();\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport * from './types';\nexport * from './modules';\nexport * from './websocket-streams';\nexport * from './websocket-streams-connection';\n","/**\n * Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n    WebsocketStreamsBase,\n    WebsocketStream,\n    assertParamExists,\n    replaceWebsocketStreamsPlaceholders,\n    createStreamHandler,\n} from '@binance/common';\nimport type {\n    IndexPriceStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    MarkPriceResponse,\n    NewSymbolInfoResponse,\n    OpenInterestResponse,\n    PartialBookDepthStreamsResponse,\n    Ticker24HourByUnderlyingAssetAndExpirationDataResponse,\n    Ticker24HourResponse,\n    TradeStreamsResponse,\n} from '../types';\n\nconst WebsocketMarketStreamsApiParamCreator = function () {\n    return {\n        /**\n         * Underlying(e.g ETHUSDT) index stream.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Index Price Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        indexPriceStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('indexPriceStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@index'.slice(1), { symbol, id });\n        },\n        /**\n         * The Kline/Candlestick Stream push updates to the current klines/candlestick every 1000 milliseconds (if existing).\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Kline/Candlestick Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} interval The interval parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        klineCandlestickStreams: (symbol: string, interval: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('klineCandlestickStreams', 'symbol', symbol);\n            // verify required parameter 'interval' is not null or undefined\n            assertParamExists('klineCandlestickStreams', 'interval', interval);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@kline_<interval>'.slice(1), {\n                symbol,\n                interval,\n                id,\n            });\n        },\n        /**\n         * The mark price for all option symbols on specific underlying asset. E.g.[ETH@markPrice](wss://nbstream.binance.com/eoptions/stream?streams=ETH@markPrice)\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary Mark Price\n         * @param {string} underlyingAsset The underlyingAsset parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        markPrice: (underlyingAsset: string, id?: string): string => {\n            // verify required parameter 'underlyingAsset' is not null or undefined\n            assertParamExists('markPrice', 'underlyingAsset', underlyingAsset);\n\n            return replaceWebsocketStreamsPlaceholders('/<underlyingAsset>@markPrice'.slice(1), {\n                underlyingAsset,\n                id,\n            });\n        },\n        /**\n         * New symbol listing stream.\n         *\n         * Update Speed: 50ms\n         *\n         * @summary New Symbol Info\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        newSymbolInfo: (id?: string): string => {\n            return replaceWebsocketStreamsPlaceholders('/option_pair'.slice(1), { id });\n        },\n        /**\n         * Option open interest for specific underlying asset on specific expiration date. E.g.[ETH@openInterest@221125](wss://nbstream.binance.com/eoptions/stream?streams=ETH@openInterest@221125)\n         *\n         * Update Speed: 60s\n         *\n         * @summary Open Interest\n         * @param {string} underlyingAsset The underlyingAsset parameter\n         * @param {string} expirationDate The expirationDate parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        openInterest: (underlyingAsset: string, expirationDate: string, id?: string): string => {\n            // verify required parameter 'underlyingAsset' is not null or undefined\n            assertParamExists('openInterest', 'underlyingAsset', underlyingAsset);\n            // verify required parameter 'expirationDate' is not null or undefined\n            assertParamExists('openInterest', 'expirationDate', expirationDate);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<underlyingAsset>@openInterest@<expirationDate>'.slice(1),\n                { underlyingAsset, expirationDate, id }\n            );\n        },\n        /**\n         * Top **<levels\\>** bids and asks, Valid levels are **<levels\\>** are 10, 20, 50, 100.\n         *\n         * Update Speed: 100ms or 1000ms, 500ms(default when update speed isn't used)\n         *\n         * @summary Partial Book Depth Streams\n         * @param {string} symbol The symbol parameter\n         * @param {number} levels The levels parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         * @param {string} [updateSpeed] WebSocket stream update speed\n         *\n         * @throws {RequiredError}\n         */\n        partialBookDepthStreams: (\n            symbol: string,\n            levels: number,\n            id?: string,\n            updateSpeed?: string\n        ): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('partialBookDepthStreams', 'symbol', symbol);\n            // verify required parameter 'levels' is not null or undefined\n            assertParamExists('partialBookDepthStreams', 'levels', levels);\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<symbol>@depth<levels><updateSpeed>'.slice(1),\n                { symbol, levels, id, updateSpeed }\n            );\n        },\n        /**\n         * 24hr ticker info for all symbols. Only symbols whose ticker info changed will be sent.\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary 24-hour TICKER\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        ticker24Hour: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('ticker24Hour', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@ticker'.slice(1), { symbol, id });\n        },\n        /**\n         * 24hr ticker info by underlying asset and expiration date. E.g.[ETH@ticker@220930](wss://nbstream.binance.com/eoptions/stream?streams=ETH@ticker@220930)\n         *\n         * Update Speed: 1000ms\n         *\n         * @summary 24-hour TICKER by underlying asset and expiration data\n         * @param {string} underlyingAsset The underlyingAsset parameter\n         * @param {string} expirationDate The expirationDate parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        ticker24HourByUnderlyingAssetAndExpirationData: (\n            underlyingAsset: string,\n            expirationDate: string,\n            id?: string\n        ): string => {\n            // verify required parameter 'underlyingAsset' is not null or undefined\n            assertParamExists(\n                'ticker24HourByUnderlyingAssetAndExpirationData',\n                'underlyingAsset',\n                underlyingAsset\n            );\n            // verify required parameter 'expirationDate' is not null or undefined\n            assertParamExists(\n                'ticker24HourByUnderlyingAssetAndExpirationData',\n                'expirationDate',\n                expirationDate\n            );\n\n            return replaceWebsocketStreamsPlaceholders(\n                '/<underlyingAsset>@ticker@<expirationDate>'.slice(1),\n                { underlyingAsset, expirationDate, id }\n            );\n        },\n        /**\n         * The Trade Streams push raw trade information for specific symbol or underlying asset. E.g.[ETH@trade](wss://nbstream.binance.com/eoptions/stream?streams=ETH@trade)\n         *\n         * Update Speed: 50ms\n         *\n         * @summary Trade Streams\n         * @param {string} symbol The symbol parameter\n         * @param {string} [id] Unique WebSocket request ID.\n         *\n         * @throws {RequiredError}\n         */\n        tradeStreams: (symbol: string, id?: string): string => {\n            // verify required parameter 'symbol' is not null or undefined\n            assertParamExists('tradeStreams', 'symbol', symbol);\n\n            return replaceWebsocketStreamsPlaceholders('/<symbol>@trade'.slice(1), { symbol, id });\n        },\n    };\n};\n\n/**\n * WebsocketMarketStreamsApi - interface\n * @interface WebsocketMarketStreamsApi\n */\nexport interface WebsocketMarketStreamsApiInterface {\n    /**\n     * Underlying(e.g ETHUSDT) index stream.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Index Price Streams\n     * @param {IndexPriceStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<IndexPriceStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    indexPriceStreams(\n        requestParameters: IndexPriceStreamsRequest\n    ): WebsocketStream<IndexPriceStreamsResponse>;\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 1000 milliseconds (if existing).\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse>;\n\n    /**\n     * The mark price for all option symbols on specific underlying asset. E.g.[ETH@markPrice](wss://nbstream.binance.com/eoptions/stream?streams=ETH@markPrice)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<MarkPriceResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    markPrice(requestParameters: MarkPriceRequest): WebsocketStream<MarkPriceResponse>;\n\n    /**\n     * New symbol listing stream.\n     *\n     * Update Speed: 50ms\n     *\n     * @summary New Symbol Info\n     * @param {NewSymbolInfoRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<NewSymbolInfoResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    newSymbolInfo(requestParameters?: NewSymbolInfoRequest): WebsocketStream<NewSymbolInfoResponse>;\n\n    /**\n     * Option open interest for specific underlying asset on specific expiration date. E.g.[ETH@openInterest@221125](wss://nbstream.binance.com/eoptions/stream?streams=ETH@openInterest@221125)\n     *\n     * Update Speed: 60s\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<OpenInterestResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    openInterest(requestParameters: OpenInterestRequest): WebsocketStream<OpenInterestResponse>;\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid levels are **<levels\\>** are 10, 20, 50, 100.\n     *\n     * Update Speed: 100ms or 1000ms, 500ms(default when update speed isn't used)\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse>;\n\n    /**\n     * 24hr ticker info for all symbols. Only symbols whose ticker info changed will be sent.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER\n     * @param {Ticker24HourRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<Ticker24HourResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    ticker24Hour(requestParameters: Ticker24HourRequest): WebsocketStream<Ticker24HourResponse>;\n\n    /**\n     * 24hr ticker info by underlying asset and expiration date. E.g.[ETH@ticker@220930](wss://nbstream.binance.com/eoptions/stream?streams=ETH@ticker@220930)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER by underlying asset and expiration data\n     * @param {Ticker24HourByUnderlyingAssetAndExpirationDataRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    ticker24HourByUnderlyingAssetAndExpirationData(\n        requestParameters: Ticker24HourByUnderlyingAssetAndExpirationDataRequest\n    ): WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse>;\n\n    /**\n     * The Trade Streams push raw trade information for specific symbol or underlying asset. E.g.[ETH@trade](wss://nbstream.binance.com/eoptions/stream?streams=ETH@trade)\n     *\n     * Update Speed: 50ms\n     *\n     * @summary Trade Streams\n     * @param {TradeStreamsRequest} requestParameters Request parameters.\n     *\n     * @returns {WebsocketStream<TradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApiInterface\n     */\n    tradeStreams(requestParameters: TradeStreamsRequest): WebsocketStream<TradeStreamsResponse>;\n}\n\n/**\n * Request parameters for indexPriceStreams operation in WebsocketMarketStreamsApi.\n * @interface IndexPriceStreamsRequest\n */\nexport interface IndexPriceStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexPriceStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiIndexPriceStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for klineCandlestickStreams operation in WebsocketMarketStreamsApi.\n * @interface KlineCandlestickStreamsRequest\n */\nexport interface KlineCandlestickStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * The interval parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly interval: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiKlineCandlestickStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for markPrice operation in WebsocketMarketStreamsApi.\n * @interface MarkPriceRequest\n */\nexport interface MarkPriceRequest {\n    /**\n     * The underlyingAsset parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPrice\n     */\n    readonly underlyingAsset: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiMarkPrice\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for newSymbolInfo operation in WebsocketMarketStreamsApi.\n * @interface NewSymbolInfoRequest\n */\nexport interface NewSymbolInfoRequest {\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiNewSymbolInfo\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for openInterest operation in WebsocketMarketStreamsApi.\n * @interface OpenInterestRequest\n */\nexport interface OpenInterestRequest {\n    /**\n     * The underlyingAsset parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiOpenInterest\n     */\n    readonly underlyingAsset: string;\n\n    /**\n     * The expirationDate parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiOpenInterest\n     */\n    readonly expirationDate: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiOpenInterest\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for partialBookDepthStreams operation in WebsocketMarketStreamsApi.\n * @interface PartialBookDepthStreamsRequest\n */\nexport interface PartialBookDepthStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * The levels parameter\n     * @type {number}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly levels: number;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly id?: string;\n\n    /**\n     * WebSocket stream update speed\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiPartialBookDepthStreams\n     */\n    readonly updateSpeed?: string;\n}\n\n/**\n * Request parameters for ticker24Hour operation in WebsocketMarketStreamsApi.\n * @interface Ticker24HourRequest\n */\nexport interface Ticker24HourRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTicker24Hour\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTicker24Hour\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for ticker24HourByUnderlyingAssetAndExpirationData operation in WebsocketMarketStreamsApi.\n * @interface Ticker24HourByUnderlyingAssetAndExpirationDataRequest\n */\nexport interface Ticker24HourByUnderlyingAssetAndExpirationDataRequest {\n    /**\n     * The underlyingAsset parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTicker24HourByUnderlyingAssetAndExpirationData\n     */\n    readonly underlyingAsset: string;\n\n    /**\n     * The expirationDate parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTicker24HourByUnderlyingAssetAndExpirationData\n     */\n    readonly expirationDate: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTicker24HourByUnderlyingAssetAndExpirationData\n     */\n    readonly id?: string;\n}\n\n/**\n * Request parameters for tradeStreams operation in WebsocketMarketStreamsApi.\n * @interface TradeStreamsRequest\n */\nexport interface TradeStreamsRequest {\n    /**\n     * The symbol parameter\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTradeStreams\n     */\n    readonly symbol: string;\n\n    /**\n     * Unique WebSocket request ID.\n     * @type {string}\n     * @memberof WebsocketMarketStreamsApiTradeStreams\n     */\n    readonly id?: string;\n}\n\n/**\n * WebsocketMarketStreamsApi - interface\n * @class WebsocketMarketStreamsApi\n * @extends {WebsocketStreamsBase}\n */\nexport class WebsocketMarketStreamsApi implements WebsocketMarketStreamsApiInterface {\n    private readonly websocketBase: WebsocketStreamsBase;\n    private localVarParamCreator;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.localVarParamCreator = WebsocketMarketStreamsApiParamCreator();\n    }\n\n    /**\n     * Underlying(e.g ETHUSDT) index stream.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Index Price Streams\n     * @param {IndexPriceStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexPriceStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Index-Price-Streams Binance API Documentation}\n     */\n    public indexPriceStreams(\n        requestParameters: IndexPriceStreamsRequest\n    ): WebsocketStream<IndexPriceStreamsResponse> {\n        const stream = this.localVarParamCreator.indexPriceStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<IndexPriceStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 1000 milliseconds (if existing).\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Kline-Candlestick-Streams Binance API Documentation}\n     */\n    public klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse> {\n        const stream = this.localVarParamCreator.klineCandlestickStreams(\n            requestParameters?.symbol,\n            requestParameters?.interval,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<KlineCandlestickStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The mark price for all option symbols on specific underlying asset. E.g.[ETH@markPrice](wss://nbstream.binance.com/eoptions/stream?streams=ETH@markPrice)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Mark-Price Binance API Documentation}\n     */\n    public markPrice(requestParameters: MarkPriceRequest): WebsocketStream<MarkPriceResponse> {\n        const stream = this.localVarParamCreator.markPrice(\n            requestParameters?.underlyingAsset,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<MarkPriceResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * New symbol listing stream.\n     *\n     * Update Speed: 50ms\n     *\n     * @summary New Symbol Info\n     * @param {NewSymbolInfoRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<NewSymbolInfoResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/New-Symbol-Info Binance API Documentation}\n     */\n    public newSymbolInfo(\n        requestParameters: NewSymbolInfoRequest = {}\n    ): WebsocketStream<NewSymbolInfoResponse> {\n        const stream = this.localVarParamCreator.newSymbolInfo(requestParameters?.id);\n\n        return createStreamHandler<NewSymbolInfoResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Option open interest for specific underlying asset on specific expiration date. E.g.[ETH@openInterest@221125](wss://nbstream.binance.com/eoptions/stream?streams=ETH@openInterest@221125)\n     *\n     * Update Speed: 60s\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<OpenInterestResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Open-Interest Binance API Documentation}\n     */\n    public openInterest(\n        requestParameters: OpenInterestRequest\n    ): WebsocketStream<OpenInterestResponse> {\n        const stream = this.localVarParamCreator.openInterest(\n            requestParameters?.underlyingAsset,\n            requestParameters?.expirationDate,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<OpenInterestResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid levels are **<levels\\>** are 10, 20, 50, 100.\n     *\n     * Update Speed: 100ms or 1000ms, 500ms(default when update speed isn't used)\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Partial-Book-Depth-Streams Binance API Documentation}\n     */\n    public partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse> {\n        const stream = this.localVarParamCreator.partialBookDepthStreams(\n            requestParameters?.symbol,\n            requestParameters?.levels,\n            requestParameters?.id,\n            requestParameters?.updateSpeed\n        );\n\n        return createStreamHandler<PartialBookDepthStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr ticker info for all symbols. Only symbols whose ticker info changed will be sent.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER\n     * @param {Ticker24HourRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<Ticker24HourResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/24-hour-TICKER Binance API Documentation}\n     */\n    public ticker24Hour(\n        requestParameters: Ticker24HourRequest\n    ): WebsocketStream<Ticker24HourResponse> {\n        const stream = this.localVarParamCreator.ticker24Hour(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<Ticker24HourResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * 24hr ticker info by underlying asset and expiration date. E.g.[ETH@ticker@220930](wss://nbstream.binance.com/eoptions/stream?streams=ETH@ticker@220930)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER by underlying asset and expiration data\n     * @param {Ticker24HourByUnderlyingAssetAndExpirationDataRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/24-hour-TICKER-by-underlying-asset-and-expiration-data Binance API Documentation}\n     */\n    public ticker24HourByUnderlyingAssetAndExpirationData(\n        requestParameters: Ticker24HourByUnderlyingAssetAndExpirationDataRequest\n    ): WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse> {\n        const stream = this.localVarParamCreator.ticker24HourByUnderlyingAssetAndExpirationData(\n            requestParameters?.underlyingAsset,\n            requestParameters?.expirationDate,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<Ticker24HourByUnderlyingAssetAndExpirationDataResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n\n    /**\n     * The Trade Streams push raw trade information for specific symbol or underlying asset. E.g.[ETH@trade](wss://nbstream.binance.com/eoptions/stream?streams=ETH@trade)\n     *\n     * Update Speed: 50ms\n     *\n     * @summary Trade Streams\n     * @param {TradeStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<TradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @memberof WebsocketMarketStreamsApi\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Trade-Streams Binance API Documentation}\n     */\n    public tradeStreams(\n        requestParameters: TradeStreamsRequest\n    ): WebsocketStream<TradeStreamsResponse> {\n        const stream = this.localVarParamCreator.tradeStreams(\n            requestParameters?.symbol,\n            requestParameters?.id\n        );\n\n        return createStreamHandler<TradeStreamsResponse>(\n            this.websocketBase,\n            stream,\n            requestParameters?.id\n        );\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { ConfigurationWebsocketStreams, WebsocketStreamsBase } from '@binance/common';\nimport { WebsocketStreamsConnection } from './websocket-streams-connection';\n\nexport class WebsocketStreams {\n    private configuration: ConfigurationWebsocketStreams;\n\n    constructor(configuration: ConfigurationWebsocketStreams) {\n        this.configuration = configuration;\n    }\n\n    /**\n     * Connects to the Binance WebSocket streams and returns a `WebsocketStreamsConnection` instance.\n     *\n     * @param {object} [options] - Optional connection options.\n     * @param {string|string[]} [options.stream] - The stream(s) to connect to.\n     * @param {'single'|'pool'} [options.mode] - The connection mode, either 'single' or 'pool'. Overwrite the `mode` option in the configuration.\n     * @param {number} [options.poolSize] - The number of connections to use in pool mode. Overwrite the `poolSize` option in the configuration.\n     * @returns {Promise<WebsocketStreamsConnection>} - A promise that resolves to a `WebsocketStreamsConnection` instance.\n     */\n    async connect({\n        stream,\n        mode,\n        poolSize,\n    }: {\n        stream?: string | string[];\n        mode?: 'single' | 'pool';\n        poolSize?: number;\n    } = {}): Promise<WebsocketStreamsConnection> {\n        const websocketBase = new WebsocketStreamsBase({\n            ...this.configuration,\n            ...(mode && { mode }),\n            ...(poolSize && { poolSize }),\n        });\n        const websocketStreamsConnection = new WebsocketStreamsConnection(websocketBase);\n        await websocketBase.connect(stream);\n        return websocketStreamsConnection;\n    }\n}\n","/**\n * Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * OpenAPI Specification for the Binance Public Derivatives Trading Options WebSocket Market Streams\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { WebsocketStreamsBase, WebsocketStream, createStreamHandler } from '@binance/common';\nimport { WebsocketMarketStreamsApi } from './modules/websocket-market-streams-api';\n\nimport type {\n    IndexPriceStreamsRequest,\n    KlineCandlestickStreamsRequest,\n    MarkPriceRequest,\n    NewSymbolInfoRequest,\n    OpenInterestRequest,\n    PartialBookDepthStreamsRequest,\n    Ticker24HourRequest,\n    Ticker24HourByUnderlyingAssetAndExpirationDataRequest,\n    TradeStreamsRequest,\n} from './modules/websocket-market-streams-api';\n\nimport type {\n    IndexPriceStreamsResponse,\n    KlineCandlestickStreamsResponse,\n    MarkPriceResponse,\n    NewSymbolInfoResponse,\n    OpenInterestResponse,\n    PartialBookDepthStreamsResponse,\n    Ticker24HourResponse,\n    Ticker24HourByUnderlyingAssetAndExpirationDataResponse,\n    TradeStreamsResponse,\n} from './types';\n\nexport class WebsocketStreamsConnection {\n    private websocketBase: WebsocketStreamsBase;\n    private websocketMarketStreamsApi: WebsocketMarketStreamsApi;\n\n    constructor(websocketBase: WebsocketStreamsBase) {\n        this.websocketBase = websocketBase;\n        this.websocketMarketStreamsApi = new WebsocketMarketStreamsApi(websocketBase);\n    }\n\n    /**\n     * Adds an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to listen for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function to be executed when the event is triggered. The function can accept any number of arguments.\n     */\n    on(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.on(event, listener);\n    }\n\n    /**\n     * Removes an event listener for the specified WebSocket event.\n     * @param event - The WebSocket event to stop listening for, such as 'open', 'message', 'error', 'close', 'ping', or 'pong'.\n     * @param listener - The callback function that was previously added as the event listener.\n     */\n    off(\n        event: 'open' | 'message' | 'error' | 'close' | 'ping' | 'pong',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        listener: (...args: any[]) => void\n    ) {\n        this.websocketBase.off(event, listener);\n    }\n\n    /**\n     * Disconnects from the WebSocket server.\n     * If there is no active connection, a warning is logged.\n     * Otherwise, all connections in the connection pool are closed gracefully,\n     * and a message is logged indicating that the connection has been disconnected.\n     * @returns A Promise that resolves when all connections have been closed.\n     * @throws Error if the WebSocket client is not set.\n     */\n    disconnect(): Promise<void> {\n        return this.websocketBase.disconnect();\n    }\n\n    /**\n     * Checks if the WebSocket connection is currently open.\n     * @returns `true` if the connection is open, `false` otherwise.\n     */\n    isConnected(): boolean {\n        return this.websocketBase.isConnected();\n    }\n\n    /**\n     * Sends a ping message to all connected Websocket servers in the pool.\n     * If no connections are ready, a warning is logged.\n     * For each active connection, the ping message is sent, and debug logs provide details.\n     * @throws Error if a Websocket client is not set for a connection.\n     */\n    pingServer(): void {\n        this.websocketBase.pingServer();\n    }\n\n    /**\n     * Subscribes to one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to subscribe to\n     * @param id Optional subscription ID\n     * @returns void\n     */\n    subscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.subscribe(stream, id);\n    }\n\n    /**\n     * Unsubscribes from one or multiple WebSocket streams\n     * Handles both single and pool modes\n     * @param stream Single stream name or array of stream names to unsubscribe from\n     * @param id Optional unsubscription ID\n     * @returns void\n     */\n    unsubscribe(stream: string | string[], id?: string): void {\n        this.websocketBase.unsubscribe(stream, id);\n    }\n\n    /**\n     * Checks if the WebSocket connection is subscribed to the specified stream.\n     * @param stream The name of the WebSocket stream to check.\n     * @returns `true` if the connection is subscribed to the stream, `false` otherwise.\n     */\n    isSubscribed(stream: string): boolean {\n        return this.websocketBase.isSubscribed(stream);\n    }\n\n    /**\n     * Subscribes to the user data WebSocket stream using the provided listen key.\n     * @param listenKey - The listen key for the user data WebSocket stream.\n     * @param id - Optional user data stream ID\n     * @returns A WebSocket stream handler for the user data stream.\n     */\n    userData(listenKey: string, id?: string): WebsocketStream<object> {\n        return createStreamHandler<object>(this.websocketBase, listenKey, id);\n    }\n\n    /**\n     * Underlying(e.g ETHUSDT) index stream.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Index Price Streams\n     * @param {IndexPriceStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<IndexPriceStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Index-Price-Streams Binance API Documentation}\n     */\n    indexPriceStreams(\n        requestParameters: IndexPriceStreamsRequest\n    ): WebsocketStream<IndexPriceStreamsResponse> {\n        return this.websocketMarketStreamsApi.indexPriceStreams(requestParameters);\n    }\n\n    /**\n     * The Kline/Candlestick Stream push updates to the current klines/candlestick every 1000 milliseconds (if existing).\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Kline/Candlestick Streams\n     * @param {KlineCandlestickStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<KlineCandlestickStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Kline-Candlestick-Streams Binance API Documentation}\n     */\n    klineCandlestickStreams(\n        requestParameters: KlineCandlestickStreamsRequest\n    ): WebsocketStream<KlineCandlestickStreamsResponse> {\n        return this.websocketMarketStreamsApi.klineCandlestickStreams(requestParameters);\n    }\n\n    /**\n     * The mark price for all option symbols on specific underlying asset. E.g.[ETH@markPrice](wss://nbstream.binance.com/eoptions/stream?streams=ETH@markPrice)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary Mark Price\n     * @param {MarkPriceRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<MarkPriceResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Mark-Price Binance API Documentation}\n     */\n    markPrice(requestParameters: MarkPriceRequest): WebsocketStream<MarkPriceResponse> {\n        return this.websocketMarketStreamsApi.markPrice(requestParameters);\n    }\n\n    /**\n     * New symbol listing stream.\n     *\n     * Update Speed: 50ms\n     *\n     * @summary New Symbol Info\n     * @param {NewSymbolInfoRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<NewSymbolInfoResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/New-Symbol-Info Binance API Documentation}\n     */\n    newSymbolInfo(\n        requestParameters: NewSymbolInfoRequest = {}\n    ): WebsocketStream<NewSymbolInfoResponse> {\n        return this.websocketMarketStreamsApi.newSymbolInfo(requestParameters);\n    }\n\n    /**\n     * Option open interest for specific underlying asset on specific expiration date. E.g.[ETH@openInterest@221125](wss://nbstream.binance.com/eoptions/stream?streams=ETH@openInterest@221125)\n     *\n     * Update Speed: 60s\n     *\n     * @summary Open Interest\n     * @param {OpenInterestRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<OpenInterestResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Open-Interest Binance API Documentation}\n     */\n    openInterest(requestParameters: OpenInterestRequest): WebsocketStream<OpenInterestResponse> {\n        return this.websocketMarketStreamsApi.openInterest(requestParameters);\n    }\n\n    /**\n     * Top **<levels\\>** bids and asks, Valid levels are **<levels\\>** are 10, 20, 50, 100.\n     *\n     * Update Speed: 100ms or 1000ms, 500ms(default when update speed isn't used)\n     *\n     * @summary Partial Book Depth Streams\n     * @param {PartialBookDepthStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<PartialBookDepthStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Partial-Book-Depth-Streams Binance API Documentation}\n     */\n    partialBookDepthStreams(\n        requestParameters: PartialBookDepthStreamsRequest\n    ): WebsocketStream<PartialBookDepthStreamsResponse> {\n        return this.websocketMarketStreamsApi.partialBookDepthStreams(requestParameters);\n    }\n\n    /**\n     * 24hr ticker info for all symbols. Only symbols whose ticker info changed will be sent.\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER\n     * @param {Ticker24HourRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<Ticker24HourResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/24-hour-TICKER Binance API Documentation}\n     */\n    ticker24Hour(requestParameters: Ticker24HourRequest): WebsocketStream<Ticker24HourResponse> {\n        return this.websocketMarketStreamsApi.ticker24Hour(requestParameters);\n    }\n\n    /**\n     * 24hr ticker info by underlying asset and expiration date. E.g.[ETH@ticker@220930](wss://nbstream.binance.com/eoptions/stream?streams=ETH@ticker@220930)\n     *\n     * Update Speed: 1000ms\n     *\n     * @summary 24-hour TICKER by underlying asset and expiration data\n     * @param {Ticker24HourByUnderlyingAssetAndExpirationDataRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/24-hour-TICKER-by-underlying-asset-and-expiration-data Binance API Documentation}\n     */\n    ticker24HourByUnderlyingAssetAndExpirationData(\n        requestParameters: Ticker24HourByUnderlyingAssetAndExpirationDataRequest\n    ): WebsocketStream<Ticker24HourByUnderlyingAssetAndExpirationDataResponse> {\n        return this.websocketMarketStreamsApi.ticker24HourByUnderlyingAssetAndExpirationData(\n            requestParameters\n        );\n    }\n\n    /**\n     * The Trade Streams push raw trade information for specific symbol or underlying asset. E.g.[ETH@trade](wss://nbstream.binance.com/eoptions/stream?streams=ETH@trade)\n     *\n     * Update Speed: 50ms\n     *\n     * @summary Trade Streams\n     * @param {TradeStreamsRequest} requestParameters Request parameters.\n     * @returns {WebsocketStream<TradeStreamsResponse>}\n     * @throws {RequiredError}\n     * @see {@link https://developers.binance.com/docs/derivatives/option/websocket-market-streams/Trade-Streams Binance API Documentation}\n     */\n    tradeStreams(requestParameters: TradeStreamsRequest): WebsocketStream<TradeStreamsResponse> {\n        return this.websocketMarketStreamsApi.tradeStreams(requestParameters);\n    }\n}\n","export {\n    DerivativesTradingOptions,\n    ConfigurationDerivativesTradingOptions,\n} from './derivatives-trading-options';\nexport * as DerivativesTradingOptionsRestAPI from './rest-api';\n\nexport * as DerivativesTradingOptionsWebsocketStreams from './websocket-streams';\n\nexport {\n    DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL,\n    DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL,\n    ConnectorClientError,\n    RequiredError,\n    UnauthorizedError,\n    ForbiddenError,\n    TooManyRequestsError,\n    RateLimitBanError,\n    ServerError,\n    NetworkError,\n    NotFoundError,\n    BadRequestError,\n} from '@binance/common';\n"],"mappings":"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","names":["ConfigurationRestAPI","ConfigurationWebsocketStreams","assertParamExists","sendRequest","assertParamExists","sendRequest","assertParamExists","sendRequest","assertParamExists","sendRequest","sendRequest","sendRequest","sendRequest","assertParamExists","WebsocketStreamsBase","createStreamHandler","createStreamHandler","WebsocketStreamsBase","ConfigurationRestAPI","ConfigurationWebsocketStreams","DERIVATIVES_TRADING_OPTIONS_REST_API_PROD_URL","DERIVATIVES_TRADING_OPTIONS_WS_STREAMS_PROD_URL"]}