/**
 * 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.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from '../base';
import { CreateConnectionRequest } from '../models';
import { CreateConnectionResponse } from '../models';
import { GetConnectionsResponse } from '../models';
import { GetFilterParameter } from '../models';
import { RespondToConnectionRequest } from '../models';
/**
 * Web3ConnectionsApi - axios parameter creator
 * @export
 */
export declare const Web3ConnectionsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * 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: (createConnectionRequest: CreateConnectionRequest, idempotencyKey?: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * 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: (xEndUserWalletId?: string, order?: GetOrderEnum, filter?: GetFilterParameter, sort?: GetSortEnum, pageSize?: number, next?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * 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: (id: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * 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: (respondToConnectionRequest: RespondToConnectionRequest, id: string, idempotencyKey?: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * Web3ConnectionsApi - functional programming interface
 * @export
 */
export declare const Web3ConnectionsApiFp: (configuration?: Configuration) => {
    /**
     * 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(createConnectionRequest: CreateConnectionRequest, idempotencyKey?: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateConnectionResponse>>;
    /**
     * 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(xEndUserWalletId?: string, order?: GetOrderEnum, filter?: GetFilterParameter, sort?: GetSortEnum, pageSize?: number, next?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetConnectionsResponse>>;
    /**
     * 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(id: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * 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(respondToConnectionRequest: RespondToConnectionRequest, id: string, idempotencyKey?: string, xEndUserWalletId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
};
/**
 * Web3ConnectionsApi - factory interface
 * @export
 */
export declare const Web3ConnectionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * 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(requestParameters: Web3ConnectionsApiCreateRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateConnectionResponse>;
    /**
     * Get open Web3 connections.
     * @summary List all open Web3 connections.
     * @param {Web3ConnectionsApiGetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    get(requestParameters?: Web3ConnectionsApiGetRequest, options?: RawAxiosRequestConfig): AxiosPromise<GetConnectionsResponse>;
    /**
     * Remove a Web3 connection
     * @summary Remove an existing Web3 connection.
     * @param {Web3ConnectionsApiRemoveRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    remove(requestParameters: Web3ConnectionsApiRemoveRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * 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(requestParameters: Web3ConnectionsApiSubmitRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
};
/**
 * Request parameters for create operation in Web3ConnectionsApi.
 * @export
 * @interface Web3ConnectionsApiCreateRequest
 */
export interface Web3ConnectionsApiCreateRequest {
    /**
     *
     * @type {CreateConnectionRequest}
     * @memberof Web3ConnectionsApiCreate
     */
    readonly createConnectionRequest: CreateConnectionRequest;
    /**
     * 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.
     * @type {string}
     * @memberof Web3ConnectionsApiCreate
     */
    readonly idempotencyKey?: string;
    /**
     * Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
     * @type {string}
     * @memberof Web3ConnectionsApiCreate
     */
    readonly xEndUserWalletId?: string;
}
/**
 * Request parameters for get operation in Web3ConnectionsApi.
 * @export
 * @interface Web3ConnectionsApiGetRequest
 */
export interface Web3ConnectionsApiGetRequest {
    /**
     * Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
     * @type {string}
     * @memberof Web3ConnectionsApiGet
     */
    readonly xEndUserWalletId?: string;
    /**
     * List order; ascending or descending.
     * @type {'ASC' | 'DESC'}
     * @memberof Web3ConnectionsApiGet
     */
    readonly order?: GetOrderEnum;
    /**
     * Parsed filter object
     * @type {GetFilterParameter}
     * @memberof Web3ConnectionsApiGet
     */
    readonly filter?: GetFilterParameter;
    /**
     * Property to sort Web3 connections by.
     * @type {'id' | 'userId' | 'vaultAccountId' | 'createdAt' | 'feeLevel' | 'appUrl' | 'appName'}
     * @memberof Web3ConnectionsApiGet
     */
    readonly sort?: GetSortEnum;
    /**
     * Amount of results to return in the next page.
     * @type {number}
     * @memberof Web3ConnectionsApiGet
     */
    readonly pageSize?: number;
    /**
     * Cursor to the next page
     * @type {string}
     * @memberof Web3ConnectionsApiGet
     */
    readonly next?: string;
}
/**
 * Request parameters for remove operation in Web3ConnectionsApi.
 * @export
 * @interface Web3ConnectionsApiRemoveRequest
 */
export interface Web3ConnectionsApiRemoveRequest {
    /**
     * The ID of the existing Web3 connection to remove.
     * @type {string}
     * @memberof Web3ConnectionsApiRemove
     */
    readonly id: string;
    /**
     * Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
     * @type {string}
     * @memberof Web3ConnectionsApiRemove
     */
    readonly xEndUserWalletId?: string;
}
/**
 * Request parameters for submit operation in Web3ConnectionsApi.
 * @export
 * @interface Web3ConnectionsApiSubmitRequest
 */
export interface Web3ConnectionsApiSubmitRequest {
    /**
     *
     * @type {RespondToConnectionRequest}
     * @memberof Web3ConnectionsApiSubmit
     */
    readonly respondToConnectionRequest: RespondToConnectionRequest;
    /**
     * The ID of the initiated Web3 connection to approve.
     * @type {string}
     * @memberof Web3ConnectionsApiSubmit
     */
    readonly id: string;
    /**
     * 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.
     * @type {string}
     * @memberof Web3ConnectionsApiSubmit
     */
    readonly idempotencyKey?: string;
    /**
     * Unique ID of the End-User wallet to the API request. Required for end-user wallet operations.
     * @type {string}
     * @memberof Web3ConnectionsApiSubmit
     */
    readonly xEndUserWalletId?: string;
}
/**
 * Web3ConnectionsApi - object-oriented interface
 * @export
 * @class Web3ConnectionsApi
 * @extends {BaseAPI}
 */
export declare class Web3ConnectionsApi extends BaseAPI {
    /**
     * 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
     */
    create(requestParameters: Web3ConnectionsApiCreateRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<CreateConnectionResponse>>;
    /**
     * 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
     */
    get(requestParameters?: Web3ConnectionsApiGetRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<GetConnectionsResponse>>;
    /**
     * 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
     */
    remove(requestParameters: Web3ConnectionsApiRemoveRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * 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
     */
    submit(requestParameters: Web3ConnectionsApiSubmitRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
}
/**
 * @export
 */
export declare const GetOrderEnum: {
    readonly Asc: "ASC";
    readonly Desc: "DESC";
};
export type GetOrderEnum = typeof GetOrderEnum[keyof typeof GetOrderEnum];
/**
 * @export
 */
export declare const GetSortEnum: {
    readonly Id: "id";
    readonly UserId: "userId";
    readonly VaultAccountId: "vaultAccountId";
    readonly CreatedAt: "createdAt";
    readonly FeeLevel: "feeLevel";
    readonly AppUrl: "appUrl";
    readonly AppName: "appName";
};
export type GetSortEnum = typeof GetSortEnum[keyof typeof GetSortEnum];
