"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * Fireblocks API
 * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
 *
 * The version of the OpenAPI document: 1.6.2
 * Contact: developers@fireblocks.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetSortEnum = exports.GetOrderEnum = exports.Web3ConnectionsApi = exports.Web3ConnectionsApiFactory = exports.Web3ConnectionsApiFp = exports.Web3ConnectionsApiAxiosParamCreator = void 0;
var axios_1 = __importDefault(require("axios"));
var fireblocksResponse_1 = require("../response/fireblocksResponse");
// URLSearchParams not necessarily used
// @ts-ignore
var url_1 = require("url");
// Some imports not used depending on template conditions
// @ts-ignore
var common_1 = require("../common");
var validation_utils_1 = require("../utils/validation_utils");
// @ts-ignore
var base_1 = require("../base");
/**
 * Web3ConnectionsApi - axios parameter creator
 * @export
 */
var Web3ConnectionsApiAxiosParamCreator = function (configuration) {
    var _this = this;
    return {
        /**
         * Initiate a new Web3 connection.  * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection.
         * @summary Create a new Web3 connection.
         * @param {CreateConnectionRequest} createConnectionRequest
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        create: function (createConnectionRequest, idempotencyKey, xEndUserWalletId, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    (0, common_1.assertParamExists)('create', 'createConnectionRequest', createConnectionRequest);
                    localVarPath = "/connections/wc";
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (idempotencyKey != null) {
                        localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
                    }
                    if (xEndUserWalletId != null) {
                        localVarHeaderParameter['X-End-User-Wallet-Id'] = String(xEndUserWalletId);
                    }
                    localVarHeaderParameter['Content-Type'] = 'application/json';
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createConnectionRequest, localVarRequestOptions, configuration);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Get open Web3 connections.
         * @summary List all open Web3 connections.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {GetOrderEnum} [order] List order; ascending or descending.
         * @param {GetFilterParameter} [filter] Parsed filter object
         * @param {GetSortEnum} [sort] Property to sort Web3 connections by.
         * @param {number} [pageSize] Amount of results to return in the next page.
         * @param {string} [next] Cursor to the next page
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        get: function (xEndUserWalletId, order, filter, sort, pageSize, next, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, _i, _a, _b, key, value, headersFromBaseOptions;
                return __generator(this, function (_c) {
                    localVarPath = "/connections";
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (order !== undefined) {
                        localVarQueryParameter['order'] = order;
                    }
                    if (filter !== undefined) {
                        for (_i = 0, _a = Object.entries(filter); _i < _a.length; _i++) {
                            _b = _a[_i], key = _b[0], value = _b[1];
                            localVarQueryParameter[key] = value;
                        }
                    }
                    if (sort !== undefined) {
                        localVarQueryParameter['sort'] = sort;
                    }
                    if (pageSize !== undefined) {
                        localVarQueryParameter['pageSize'] = pageSize;
                    }
                    if (next !== undefined) {
                        localVarQueryParameter['next'] = next;
                    }
                    if (xEndUserWalletId != null) {
                        localVarHeaderParameter['X-End-User-Wallet-Id'] = String(xEndUserWalletId);
                    }
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Remove a Web3 connection
         * @summary Remove an existing Web3 connection.
         * @param {string} id The ID of the existing Web3 connection to remove.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        remove: function (id, xEndUserWalletId, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('remove', 'id', id);
                    localVarPath = "/connections/wc/{id}"
                        .replace("{".concat("id", "}"), encodeURIComponent(String(id)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'DELETE' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (xEndUserWalletId != null) {
                        localVarHeaderParameter['X-End-User-Wallet-Id'] = String(xEndUserWalletId);
                    }
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
        /**
         * Submit a response to *approve* or *reject* an initiated Web3 connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request.  After this succeeds, your new Web3 connection is created and functioning.
         * @summary Respond to a pending Web3 connection request.
         * @param {RespondToConnectionRequest} respondToConnectionRequest
         * @param {string} id The ID of the initiated Web3 connection to approve.
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submit: function (respondToConnectionRequest, id, idempotencyKey, xEndUserWalletId, options) {
            if (options === void 0) { options = {}; }
            return __awaiter(_this, void 0, void 0, function () {
                var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
                return __generator(this, function (_a) {
                    (0, common_1.assertParamExists)('submit', 'respondToConnectionRequest', respondToConnectionRequest);
                    (0, validation_utils_1.assertParamExistsAndNotEmpty)('submit', 'id', id);
                    localVarPath = "/connections/wc/{id}"
                        .replace("{".concat("id", "}"), encodeURIComponent(String(id)));
                    localVarUrlObj = new url_1.URL(localVarPath, common_1.DUMMY_BASE_URL);
                    if (configuration) {
                        baseOptions = configuration.baseOptions;
                    }
                    localVarRequestOptions = __assign(__assign({ method: 'PUT' }, baseOptions), options);
                    localVarHeaderParameter = {};
                    localVarQueryParameter = {};
                    if (idempotencyKey != null) {
                        localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
                    }
                    if (xEndUserWalletId != null) {
                        localVarHeaderParameter['X-End-User-Wallet-Id'] = String(xEndUserWalletId);
                    }
                    localVarHeaderParameter['Content-Type'] = 'application/json';
                    (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
                    headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
                    localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
                    localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(respondToConnectionRequest, localVarRequestOptions, configuration);
                    return [2 /*return*/, {
                            url: (0, common_1.toPathString)(localVarUrlObj),
                            options: localVarRequestOptions,
                        }];
                });
            });
        },
    };
};
exports.Web3ConnectionsApiAxiosParamCreator = Web3ConnectionsApiAxiosParamCreator;
/**
 * Web3ConnectionsApi - functional programming interface
 * @export
 */
var Web3ConnectionsApiFp = function (configuration) {
    var localVarAxiosParamCreator = (0, exports.Web3ConnectionsApiAxiosParamCreator)(configuration);
    return {
        /**
         * Initiate a new Web3 connection.  * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection.
         * @summary Create a new Web3 connection.
         * @param {CreateConnectionRequest} createConnectionRequest
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        create: function (createConnectionRequest, idempotencyKey, xEndUserWalletId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.create(createConnectionRequest, idempotencyKey, xEndUserWalletId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['Web3ConnectionsApi.create']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Get open Web3 connections.
         * @summary List all open Web3 connections.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {GetOrderEnum} [order] List order; ascending or descending.
         * @param {GetFilterParameter} [filter] Parsed filter object
         * @param {GetSortEnum} [sort] Property to sort Web3 connections by.
         * @param {number} [pageSize] Amount of results to return in the next page.
         * @param {string} [next] Cursor to the next page
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        get: function (xEndUserWalletId, order, filter, sort, pageSize, next, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.get(xEndUserWalletId, order, filter, sort, pageSize, next, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['Web3ConnectionsApi.get']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Remove a Web3 connection
         * @summary Remove an existing Web3 connection.
         * @param {string} id The ID of the existing Web3 connection to remove.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        remove: function (id, xEndUserWalletId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.remove(id, xEndUserWalletId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['Web3ConnectionsApi.remove']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
        /**
         * Submit a response to *approve* or *reject* an initiated Web3 connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request.  After this succeeds, your new Web3 connection is created and functioning.
         * @summary Respond to a pending Web3 connection request.
         * @param {RespondToConnectionRequest} respondToConnectionRequest
         * @param {string} id The ID of the initiated Web3 connection to approve.
         * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
         * @param {string} [xEndUserWalletId] Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submit: function (respondToConnectionRequest, id, idempotencyKey, xEndUserWalletId, options) {
            var _a, _b, _c;
            return __awaiter(this, void 0, void 0, function () {
                var localVarAxiosArgs, index, operationBasePath;
                return __generator(this, function (_d) {
                    switch (_d.label) {
                        case 0: return [4 /*yield*/, localVarAxiosParamCreator.submit(respondToConnectionRequest, id, idempotencyKey, xEndUserWalletId, options)];
                        case 1:
                            localVarAxiosArgs = _d.sent();
                            index = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
                            operationBasePath = (_c = (_b = base_1.operationServerMap['Web3ConnectionsApi.submit']) === null || _b === void 0 ? void 0 : _b[index]) === null || _c === void 0 ? void 0 : _c.url;
                            return [2 /*return*/, function (axios, basePath) { return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, operationBasePath || basePath); }];
                    }
                });
            });
        },
    };
};
exports.Web3ConnectionsApiFp = Web3ConnectionsApiFp;
/**
 * Web3ConnectionsApi - factory interface
 * @export
 */
var Web3ConnectionsApiFactory = function (configuration, basePath, axios) {
    var localVarFp = (0, exports.Web3ConnectionsApiFp)(configuration);
    return {
        /**
         * Initiate a new Web3 connection.  * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection.
         * @summary Create a new Web3 connection.
         * @param {Web3ConnectionsApiCreateRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        create: function (requestParameters, options) {
            return localVarFp.create(requestParameters.createConnectionRequest, requestParameters.idempotencyKey, requestParameters.xEndUserWalletId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Get open Web3 connections.
         * @summary List all open Web3 connections.
         * @param {Web3ConnectionsApiGetRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        get: function (requestParameters, options) {
            if (requestParameters === void 0) { requestParameters = {}; }
            return localVarFp.get(requestParameters.xEndUserWalletId, requestParameters.order, requestParameters.filter, requestParameters.sort, requestParameters.pageSize, requestParameters.next, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Remove a Web3 connection
         * @summary Remove an existing Web3 connection.
         * @param {Web3ConnectionsApiRemoveRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        remove: function (requestParameters, options) {
            return localVarFp.remove(requestParameters.id, requestParameters.xEndUserWalletId, options).then(function (request) { return request(axios, basePath); });
        },
        /**
         * Submit a response to *approve* or *reject* an initiated Web3 connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request.  After this succeeds, your new Web3 connection is created and functioning.
         * @summary Respond to a pending Web3 connection request.
         * @param {Web3ConnectionsApiSubmitRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        submit: function (requestParameters, options) {
            return localVarFp.submit(requestParameters.respondToConnectionRequest, requestParameters.id, requestParameters.idempotencyKey, requestParameters.xEndUserWalletId, options).then(function (request) { return request(axios, basePath); });
        },
    };
};
exports.Web3ConnectionsApiFactory = Web3ConnectionsApiFactory;
/**
 * Web3ConnectionsApi - object-oriented interface
 * @export
 * @class Web3ConnectionsApi
 * @extends {BaseAPI}
 */
var Web3ConnectionsApi = /** @class */ (function (_super) {
    __extends(Web3ConnectionsApi, _super);
    function Web3ConnectionsApi() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     * Initiate a new Web3 connection.  * Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new Web3 connection.
     * @summary Create a new Web3 connection.
     * @param {Web3ConnectionsApiCreateRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof Web3ConnectionsApi
     */
    Web3ConnectionsApi.prototype.create = function (requestParameters) {
        var _this = this;
        return (0, exports.Web3ConnectionsApiFp)(this.configuration).create(requestParameters.createConnectionRequest, requestParameters.idempotencyKey, requestParameters.xEndUserWalletId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Get open Web3 connections.
     * @summary List all open Web3 connections.
     * @param {Web3ConnectionsApiGetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof Web3ConnectionsApi
     */
    Web3ConnectionsApi.prototype.get = function (requestParameters) {
        var _this = this;
        if (requestParameters === void 0) { requestParameters = {}; }
        return (0, exports.Web3ConnectionsApiFp)(this.configuration).get(requestParameters.xEndUserWalletId, requestParameters.order, requestParameters.filter, requestParameters.sort, requestParameters.pageSize, requestParameters.next).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Remove a Web3 connection
     * @summary Remove an existing Web3 connection.
     * @param {Web3ConnectionsApiRemoveRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof Web3ConnectionsApi
     */
    Web3ConnectionsApi.prototype.remove = function (requestParameters) {
        var _this = this;
        return (0, exports.Web3ConnectionsApiFp)(this.configuration).remove(requestParameters.id, requestParameters.xEndUserWalletId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    /**
     * Submit a response to *approve* or *reject* an initiated Web3 connection. * Note: This call is used to complete your `POST /v1/connections/wc/` request.  After this succeeds, your new Web3 connection is created and functioning.
     * @summary Respond to a pending Web3 connection request.
     * @param {Web3ConnectionsApiSubmitRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof Web3ConnectionsApi
     */
    Web3ConnectionsApi.prototype.submit = function (requestParameters) {
        var _this = this;
        return (0, exports.Web3ConnectionsApiFp)(this.configuration).submit(requestParameters.respondToConnectionRequest, requestParameters.id, requestParameters.idempotencyKey, requestParameters.xEndUserWalletId).then(function (request) { return request(_this.axios, _this.basePath); }).then(fireblocksResponse_1.convertToFireblocksResponse);
    };
    return Web3ConnectionsApi;
}(base_1.BaseAPI));
exports.Web3ConnectionsApi = Web3ConnectionsApi;
/**
 * @export
 */
exports.GetOrderEnum = {
    Asc: 'ASC',
    Desc: 'DESC'
};
/**
 * @export
 */
exports.GetSortEnum = {
    Id: 'id',
    UserId: 'userId',
    VaultAccountId: 'vaultAccountId',
    CreatedAt: 'createdAt',
    FeeLevel: 'feeLevel',
    AppUrl: 'appUrl',
    AppName: 'appName'
};
//# sourceMappingURL=web3-connections-api.js.map