/**
 * 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 { AddContractAssetRequest } from '../models';
import { CreateContractRequest } from '../models';
import { ExternalWalletAsset } from '../models';
import { GetContractsResponse } from '../models';
import { UnmanagedWallet } from '../models';
/**
 * ContractsApi - axios parameter creator
 * @export
 */
export declare const ContractsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Adds an asset to a whitelisted contract. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add an asset to a whitelisted contract
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to add
     * @param {AddContractAssetRequest} [addContractAssetRequest]
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addContractAsset: (contractId: string, assetId: string, addContractAssetRequest?: AddContractAssetRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Adds a contract to the workspace whitelist. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add a contract
     * @param {CreateContractRequest} [createContractRequest]
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createContract: (createContractRequest?: CreateContractRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete a contract
     * @param {string} contractId The ID of the contract to delete
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContract: (contractId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Deletes a whitelisted contract asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete an asset from a whitelisted contract
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to delete
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContractAsset: (contractId: string, assetId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a whitelisted contract by Fireblocks Contract ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a Specific Whitelisted Contract
     * @param {string} contractId The ID of the contract to return
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContract: (contractId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a whitelisted contract\'s asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a whitelisted contract\'s asset
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to return
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContractAsset: (contractId: string, assetId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Gets a list of whitelisted contracts. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List Whitelisted Contracts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContracts: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * ContractsApi - functional programming interface
 * @export
 */
export declare const ContractsApiFp: (configuration?: Configuration) => {
    /**
     * Adds an asset to a whitelisted contract. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add an asset to a whitelisted contract
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to add
     * @param {AddContractAssetRequest} [addContractAssetRequest]
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addContractAsset(contractId: string, assetId: string, addContractAssetRequest?: AddContractAssetRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExternalWalletAsset>>;
    /**
     * Adds a contract to the workspace whitelist. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add a contract
     * @param {CreateContractRequest} [createContractRequest]
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createContract(createContractRequest?: CreateContractRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UnmanagedWallet>>;
    /**
     * Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete a contract
     * @param {string} contractId The ID of the contract to delete
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContract(contractId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Deletes a whitelisted contract asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete an asset from a whitelisted contract
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to delete
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContractAsset(contractId: string, assetId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Returns a whitelisted contract by Fireblocks Contract ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a Specific Whitelisted Contract
     * @param {string} contractId The ID of the contract to return
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContract(contractId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UnmanagedWallet>>;
    /**
     * Returns a whitelisted contract\'s asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a whitelisted contract\'s asset
     * @param {string} contractId The ID of the contract
     * @param {string} assetId The ID of the asset to return
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContractAsset(contractId: string, assetId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExternalWalletAsset>>;
    /**
     * Gets a list of whitelisted contracts. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List Whitelisted Contracts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContracts(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetContractsResponse>>;
};
/**
 * ContractsApi - factory interface
 * @export
 */
export declare const ContractsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Adds an asset to a whitelisted contract. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add an asset to a whitelisted contract
     * @param {ContractsApiAddContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addContractAsset(requestParameters: ContractsApiAddContractAssetRequest, options?: RawAxiosRequestConfig): AxiosPromise<ExternalWalletAsset>;
    /**
     * Adds a contract to the workspace whitelist. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add a contract
     * @param {ContractsApiCreateContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createContract(requestParameters?: ContractsApiCreateContractRequest, options?: RawAxiosRequestConfig): AxiosPromise<UnmanagedWallet>;
    /**
     * Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete a contract
     * @param {ContractsApiDeleteContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContract(requestParameters: ContractsApiDeleteContractRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Deletes a whitelisted contract asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete an asset from a whitelisted contract
     * @param {ContractsApiDeleteContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteContractAsset(requestParameters: ContractsApiDeleteContractAssetRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Returns a whitelisted contract by Fireblocks Contract ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a Specific Whitelisted Contract
     * @param {ContractsApiGetContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContract(requestParameters: ContractsApiGetContractRequest, options?: RawAxiosRequestConfig): AxiosPromise<UnmanagedWallet>;
    /**
     * Returns a whitelisted contract\'s asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a whitelisted contract\'s asset
     * @param {ContractsApiGetContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContractAsset(requestParameters: ContractsApiGetContractAssetRequest, options?: RawAxiosRequestConfig): AxiosPromise<ExternalWalletAsset>;
    /**
     * Gets a list of whitelisted contracts. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List Whitelisted Contracts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContracts(options?: RawAxiosRequestConfig): AxiosPromise<GetContractsResponse>;
};
/**
 * Request parameters for addContractAsset operation in ContractsApi.
 * @export
 * @interface ContractsApiAddContractAssetRequest
 */
export interface ContractsApiAddContractAssetRequest {
    /**
     * The ID of the contract
     * @type {string}
     * @memberof ContractsApiAddContractAsset
     */
    readonly contractId: string;
    /**
     * The ID of the asset to add
     * @type {string}
     * @memberof ContractsApiAddContractAsset
     */
    readonly assetId: string;
    /**
     *
     * @type {AddContractAssetRequest}
     * @memberof ContractsApiAddContractAsset
     */
    readonly addContractAssetRequest?: AddContractAssetRequest;
    /**
     * 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 ContractsApiAddContractAsset
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for createContract operation in ContractsApi.
 * @export
 * @interface ContractsApiCreateContractRequest
 */
export interface ContractsApiCreateContractRequest {
    /**
     *
     * @type {CreateContractRequest}
     * @memberof ContractsApiCreateContract
     */
    readonly createContractRequest?: CreateContractRequest;
    /**
     * 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 ContractsApiCreateContract
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for deleteContract operation in ContractsApi.
 * @export
 * @interface ContractsApiDeleteContractRequest
 */
export interface ContractsApiDeleteContractRequest {
    /**
     * The ID of the contract to delete
     * @type {string}
     * @memberof ContractsApiDeleteContract
     */
    readonly contractId: string;
}
/**
 * Request parameters for deleteContractAsset operation in ContractsApi.
 * @export
 * @interface ContractsApiDeleteContractAssetRequest
 */
export interface ContractsApiDeleteContractAssetRequest {
    /**
     * The ID of the contract
     * @type {string}
     * @memberof ContractsApiDeleteContractAsset
     */
    readonly contractId: string;
    /**
     * The ID of the asset to delete
     * @type {string}
     * @memberof ContractsApiDeleteContractAsset
     */
    readonly assetId: string;
}
/**
 * Request parameters for getContract operation in ContractsApi.
 * @export
 * @interface ContractsApiGetContractRequest
 */
export interface ContractsApiGetContractRequest {
    /**
     * The ID of the contract to return
     * @type {string}
     * @memberof ContractsApiGetContract
     */
    readonly contractId: string;
}
/**
 * Request parameters for getContractAsset operation in ContractsApi.
 * @export
 * @interface ContractsApiGetContractAssetRequest
 */
export interface ContractsApiGetContractAssetRequest {
    /**
     * The ID of the contract
     * @type {string}
     * @memberof ContractsApiGetContractAsset
     */
    readonly contractId: string;
    /**
     * The ID of the asset to return
     * @type {string}
     * @memberof ContractsApiGetContractAsset
     */
    readonly assetId: string;
}
/**
 * ContractsApi - object-oriented interface
 * @export
 * @class ContractsApi
 * @extends {BaseAPI}
 */
export declare class ContractsApi extends BaseAPI {
    /**
     * Adds an asset to a whitelisted contract. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add an asset to a whitelisted contract
     * @param {ContractsApiAddContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    addContractAsset(requestParameters: ContractsApiAddContractAssetRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ExternalWalletAsset>>;
    /**
     * Adds a contract to the workspace whitelist. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add a contract
     * @param {ContractsApiCreateContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    createContract(requestParameters?: ContractsApiCreateContractRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<UnmanagedWallet>>;
    /**
     * Deletes a contract by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete a contract
     * @param {ContractsApiDeleteContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    deleteContract(requestParameters: ContractsApiDeleteContractRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Deletes a whitelisted contract asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Delete an asset from a whitelisted contract
     * @param {ContractsApiDeleteContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    deleteContractAsset(requestParameters: ContractsApiDeleteContractAssetRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Returns a whitelisted contract by Fireblocks Contract ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a Specific Whitelisted Contract
     * @param {ContractsApiGetContractRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    getContract(requestParameters: ContractsApiGetContractRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<UnmanagedWallet>>;
    /**
     * Returns a whitelisted contract\'s asset by ID. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a whitelisted contract\'s asset
     * @param {ContractsApiGetContractAssetRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    getContractAsset(requestParameters: ContractsApiGetContractAssetRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ExternalWalletAsset>>;
    /**
     * Gets a list of whitelisted contracts. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List Whitelisted Contracts
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractsApi
     */
    getContracts(): Promise<import("../response/fireblocksResponse").FireblocksResponse<GetContractsResponse>>;
}
