/**
 * 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 { ContractAbiResponseDto } from '../models';
import { ContractAddressResponse } from '../models';
import { ContractDataDecodeRequest } from '../models';
import { ContractDataDecodedResponse } from '../models';
import { ParameterWithValueList } from '../models';
import { ReadCallFunctionDto } from '../models';
import { TransactionReceiptResponse } from '../models';
import { WriteCallFunctionDto } from '../models';
import { WriteCallFunctionResponseDto } from '../models';
/**
 * ContractInteractionsApi - axios parameter creator
 * @export
 */
export declare const ContractInteractionsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address.
     * @summary Decode a function call data, error, or event log
     * @param {ContractDataDecodeRequest} contractDataDecodeRequest
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId The blockchain native asset identifier
     * @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}
     */
    decodeContractData: (contractDataDecodeRequest: ContractDataDecodeRequest, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieve the contract address by blockchain native asset ID and transaction hash
     * @summary Get contract address by transaction hash
     * @param {string} baseAssetId The blockchain base assetId
     * @param {string} txHash The transaction hash
     * @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}
     */
    getContractAddress: (baseAssetId: string, txHash: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Return deployed contract\'s ABI by blockchain native asset id and contract address. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Return deployed contract\'s ABI
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId The blockchain base assetId
     * @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}
     */
    getDeployedContractAbi: (contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieve the transaction receipt by blockchain native asset ID and transaction hash > **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains.  Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Get transaction receipt
     * @param {string} baseAssetId The blockchain base assetId
     * @param {string} txHash The transaction hash
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTransactionReceipt: (baseAssetId: string, txHash: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Call a read function on a deployed contract by blockchain native asset id and contract address
     * @summary Call a read function on a deployed contract
     * @param {ReadCallFunctionDto} readCallFunctionDto
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId
     * @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}
     */
    readCallFunction: (readCallFunctionDto: ReadCallFunctionDto, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check
     * @summary Call a write function on a deployed contract
     * @param {WriteCallFunctionDto} writeCallFunctionDto
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId
     * @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}
     */
    writeCallFunction: (writeCallFunctionDto: WriteCallFunctionDto, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * ContractInteractionsApi - functional programming interface
 * @export
 */
export declare const ContractInteractionsApiFp: (configuration?: Configuration) => {
    /**
     * Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address.
     * @summary Decode a function call data, error, or event log
     * @param {ContractDataDecodeRequest} contractDataDecodeRequest
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId The blockchain native asset identifier
     * @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}
     */
    decodeContractData(contractDataDecodeRequest: ContractDataDecodeRequest, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ContractDataDecodedResponse>>;
    /**
     * Retrieve the contract address by blockchain native asset ID and transaction hash
     * @summary Get contract address by transaction hash
     * @param {string} baseAssetId The blockchain base assetId
     * @param {string} txHash The transaction hash
     * @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}
     */
    getContractAddress(baseAssetId: string, txHash: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ContractAddressResponse>>;
    /**
     * Return deployed contract\'s ABI by blockchain native asset id and contract address. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Return deployed contract\'s ABI
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId The blockchain base assetId
     * @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}
     */
    getDeployedContractAbi(contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ContractAbiResponseDto>>;
    /**
     * Retrieve the transaction receipt by blockchain native asset ID and transaction hash > **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains.  Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Get transaction receipt
     * @param {string} baseAssetId The blockchain base assetId
     * @param {string} txHash The transaction hash
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTransactionReceipt(baseAssetId: string, txHash: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TransactionReceiptResponse>>;
    /**
     * Call a read function on a deployed contract by blockchain native asset id and contract address
     * @summary Call a read function on a deployed contract
     * @param {ReadCallFunctionDto} readCallFunctionDto
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId
     * @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}
     */
    readCallFunction(readCallFunctionDto: ReadCallFunctionDto, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ParameterWithValueList>>;
    /**
     * Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check
     * @summary Call a write function on a deployed contract
     * @param {WriteCallFunctionDto} writeCallFunctionDto
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} baseAssetId
     * @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}
     */
    writeCallFunction(writeCallFunctionDto: WriteCallFunctionDto, contractAddress: string, baseAssetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WriteCallFunctionResponseDto>>;
};
/**
 * ContractInteractionsApi - factory interface
 * @export
 */
export declare const ContractInteractionsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address.
     * @summary Decode a function call data, error, or event log
     * @param {ContractInteractionsApiDecodeContractDataRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    decodeContractData(requestParameters: ContractInteractionsApiDecodeContractDataRequest, options?: RawAxiosRequestConfig): AxiosPromise<ContractDataDecodedResponse>;
    /**
     * Retrieve the contract address by blockchain native asset ID and transaction hash
     * @summary Get contract address by transaction hash
     * @param {ContractInteractionsApiGetContractAddressRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getContractAddress(requestParameters: ContractInteractionsApiGetContractAddressRequest, options?: RawAxiosRequestConfig): AxiosPromise<ContractAddressResponse>;
    /**
     * Return deployed contract\'s ABI by blockchain native asset id and contract address. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Return deployed contract\'s ABI
     * @param {ContractInteractionsApiGetDeployedContractAbiRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractAbi(requestParameters: ContractInteractionsApiGetDeployedContractAbiRequest, options?: RawAxiosRequestConfig): AxiosPromise<ContractAbiResponseDto>;
    /**
     * Retrieve the transaction receipt by blockchain native asset ID and transaction hash > **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains.  Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Get transaction receipt
     * @param {ContractInteractionsApiGetTransactionReceiptRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getTransactionReceipt(requestParameters: ContractInteractionsApiGetTransactionReceiptRequest, options?: RawAxiosRequestConfig): AxiosPromise<TransactionReceiptResponse>;
    /**
     * Call a read function on a deployed contract by blockchain native asset id and contract address
     * @summary Call a read function on a deployed contract
     * @param {ContractInteractionsApiReadCallFunctionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    readCallFunction(requestParameters: ContractInteractionsApiReadCallFunctionRequest, options?: RawAxiosRequestConfig): AxiosPromise<ParameterWithValueList>;
    /**
     * Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check
     * @summary Call a write function on a deployed contract
     * @param {ContractInteractionsApiWriteCallFunctionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    writeCallFunction(requestParameters: ContractInteractionsApiWriteCallFunctionRequest, options?: RawAxiosRequestConfig): AxiosPromise<WriteCallFunctionResponseDto>;
};
/**
 * Request parameters for decodeContractData operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiDecodeContractDataRequest
 */
export interface ContractInteractionsApiDecodeContractDataRequest {
    /**
     *
     * @type {ContractDataDecodeRequest}
     * @memberof ContractInteractionsApiDecodeContractData
     */
    readonly contractDataDecodeRequest: ContractDataDecodeRequest;
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof ContractInteractionsApiDecodeContractData
     */
    readonly contractAddress: string;
    /**
     * The blockchain native asset identifier
     * @type {string}
     * @memberof ContractInteractionsApiDecodeContractData
     */
    readonly baseAssetId: 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 ContractInteractionsApiDecodeContractData
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getContractAddress operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiGetContractAddressRequest
 */
export interface ContractInteractionsApiGetContractAddressRequest {
    /**
     * The blockchain base assetId
     * @type {string}
     * @memberof ContractInteractionsApiGetContractAddress
     */
    readonly baseAssetId: string;
    /**
     * The transaction hash
     * @type {string}
     * @memberof ContractInteractionsApiGetContractAddress
     */
    readonly txHash: 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 ContractInteractionsApiGetContractAddress
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getDeployedContractAbi operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiGetDeployedContractAbiRequest
 */
export interface ContractInteractionsApiGetDeployedContractAbiRequest {
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof ContractInteractionsApiGetDeployedContractAbi
     */
    readonly contractAddress: string;
    /**
     * The blockchain base assetId
     * @type {string}
     * @memberof ContractInteractionsApiGetDeployedContractAbi
     */
    readonly baseAssetId: 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 ContractInteractionsApiGetDeployedContractAbi
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getTransactionReceipt operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiGetTransactionReceiptRequest
 */
export interface ContractInteractionsApiGetTransactionReceiptRequest {
    /**
     * The blockchain base assetId
     * @type {string}
     * @memberof ContractInteractionsApiGetTransactionReceipt
     */
    readonly baseAssetId: string;
    /**
     * The transaction hash
     * @type {string}
     * @memberof ContractInteractionsApiGetTransactionReceipt
     */
    readonly txHash: string;
}
/**
 * Request parameters for readCallFunction operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiReadCallFunctionRequest
 */
export interface ContractInteractionsApiReadCallFunctionRequest {
    /**
     *
     * @type {ReadCallFunctionDto}
     * @memberof ContractInteractionsApiReadCallFunction
     */
    readonly readCallFunctionDto: ReadCallFunctionDto;
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof ContractInteractionsApiReadCallFunction
     */
    readonly contractAddress: string;
    /**
     *
     * @type {string}
     * @memberof ContractInteractionsApiReadCallFunction
     */
    readonly baseAssetId: 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 ContractInteractionsApiReadCallFunction
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for writeCallFunction operation in ContractInteractionsApi.
 * @export
 * @interface ContractInteractionsApiWriteCallFunctionRequest
 */
export interface ContractInteractionsApiWriteCallFunctionRequest {
    /**
     *
     * @type {WriteCallFunctionDto}
     * @memberof ContractInteractionsApiWriteCallFunction
     */
    readonly writeCallFunctionDto: WriteCallFunctionDto;
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof ContractInteractionsApiWriteCallFunction
     */
    readonly contractAddress: string;
    /**
     *
     * @type {string}
     * @memberof ContractInteractionsApiWriteCallFunction
     */
    readonly baseAssetId: 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 ContractInteractionsApiWriteCallFunction
     */
    readonly idempotencyKey?: string;
}
/**
 * ContractInteractionsApi - object-oriented interface
 * @export
 * @class ContractInteractionsApi
 * @extends {BaseAPI}
 */
export declare class ContractInteractionsApi extends BaseAPI {
    /**
     * Decode a function call data, error, or event log from a deployed contract by blockchain native asset id and contract address.
     * @summary Decode a function call data, error, or event log
     * @param {ContractInteractionsApiDecodeContractDataRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    decodeContractData(requestParameters: ContractInteractionsApiDecodeContractDataRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ContractDataDecodedResponse>>;
    /**
     * Retrieve the contract address by blockchain native asset ID and transaction hash
     * @summary Get contract address by transaction hash
     * @param {ContractInteractionsApiGetContractAddressRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    getContractAddress(requestParameters: ContractInteractionsApiGetContractAddressRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ContractAddressResponse>>;
    /**
     * Return deployed contract\'s ABI by blockchain native asset id and contract address. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Return deployed contract\'s ABI
     * @param {ContractInteractionsApiGetDeployedContractAbiRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    getDeployedContractAbi(requestParameters: ContractInteractionsApiGetDeployedContractAbiRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ContractAbiResponseDto>>;
    /**
     * Retrieve the transaction receipt by blockchain native asset ID and transaction hash > **Note** > This functionality is exclusively available for EVM (Ethereum Virtual Machine) compatible chains.  Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, and Viewer.
     * @summary Get transaction receipt
     * @param {ContractInteractionsApiGetTransactionReceiptRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    getTransactionReceipt(requestParameters: ContractInteractionsApiGetTransactionReceiptRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<TransactionReceiptResponse>>;
    /**
     * Call a read function on a deployed contract by blockchain native asset id and contract address
     * @summary Call a read function on a deployed contract
     * @param {ContractInteractionsApiReadCallFunctionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    readCallFunction(requestParameters: ContractInteractionsApiReadCallFunctionRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ParameterWithValueList>>;
    /**
     * Call a write function on a deployed contract by blockchain native asset id and contract address. This creates an onchain transaction, thus it is an async operation. It returns a transaction id that can be polled for status check
     * @summary Call a write function on a deployed contract
     * @param {ContractInteractionsApiWriteCallFunctionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ContractInteractionsApi
     */
    writeCallFunction(requestParameters: ContractInteractionsApiWriteCallFunctionRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<WriteCallFunctionResponseDto>>;
}
