/**
 * 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 { AddAbiRequestDto } from '../models';
import { ContractWithAbiDto } from '../models';
import { DeployedContractResponseDto } from '../models';
import { DeployedContractsPaginatedResponse } from '../models';
import { FetchAbiRequestDto } from '../models';
/**
 * DeployedContractsApi - axios parameter creator
 * @export
 */
export declare const DeployedContractsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Save contract ABI for the tenant
     * @summary Save contract ABI
     * @param {AddAbiRequestDto} addAbiRequestDto
     * @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}
     */
    addContractABI: (addAbiRequestDto: AddAbiRequestDto, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Fetch the ABI. If not found fetch the ABI from the block explorer
     * @summary Fetch the contract ABI
     * @param {FetchAbiRequestDto} fetchAbiRequestDto
     * @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}
     */
    fetchContractAbi: (fetchAbiRequestDto: FetchAbiRequestDto, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Return deployed contract data by blockchain native asset id and contract address
     * @summary Return deployed contract data
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} assetId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractByAddress: (contractAddress: string, assetId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Return deployed contract data by id
     * @summary Return deployed contract data by id
     * @param {string} id The deployed contract data identifier
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractById: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Return a filtered lean representation of the deployed contracts data on all blockchains (paginated)
     * @summary List deployed contracts data
     * @param {string} [pageCursor] Page cursor to get the next page
     * @param {number} [pageSize] Number of items per page, requesting more then max will return max items
     * @param {string} [contractAddress] The contract\&#39;s onchain address
     * @param {string} [baseAssetId]
     * @param {string} [contractTemplateId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContracts: (pageCursor?: string, pageSize?: number, contractAddress?: string, baseAssetId?: string, contractTemplateId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * DeployedContractsApi - functional programming interface
 * @export
 */
export declare const DeployedContractsApiFp: (configuration?: Configuration) => {
    /**
     * Save contract ABI for the tenant
     * @summary Save contract ABI
     * @param {AddAbiRequestDto} addAbiRequestDto
     * @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}
     */
    addContractABI(addAbiRequestDto: AddAbiRequestDto, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ContractWithAbiDto>>;
    /**
     * Fetch the ABI. If not found fetch the ABI from the block explorer
     * @summary Fetch the contract ABI
     * @param {FetchAbiRequestDto} fetchAbiRequestDto
     * @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}
     */
    fetchContractAbi(fetchAbiRequestDto: FetchAbiRequestDto, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ContractWithAbiDto>>;
    /**
     * Return deployed contract data by blockchain native asset id and contract address
     * @summary Return deployed contract data
     * @param {string} contractAddress The contract\&#39;s onchain address
     * @param {string} assetId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractByAddress(contractAddress: string, assetId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeployedContractResponseDto>>;
    /**
     * Return deployed contract data by id
     * @summary Return deployed contract data by id
     * @param {string} id The deployed contract data identifier
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractById(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeployedContractResponseDto>>;
    /**
     * Return a filtered lean representation of the deployed contracts data on all blockchains (paginated)
     * @summary List deployed contracts data
     * @param {string} [pageCursor] Page cursor to get the next page
     * @param {number} [pageSize] Number of items per page, requesting more then max will return max items
     * @param {string} [contractAddress] The contract\&#39;s onchain address
     * @param {string} [baseAssetId]
     * @param {string} [contractTemplateId]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContracts(pageCursor?: string, pageSize?: number, contractAddress?: string, baseAssetId?: string, contractTemplateId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DeployedContractsPaginatedResponse>>;
};
/**
 * DeployedContractsApi - factory interface
 * @export
 */
export declare const DeployedContractsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Save contract ABI for the tenant
     * @summary Save contract ABI
     * @param {DeployedContractsApiAddContractABIRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addContractABI(requestParameters: DeployedContractsApiAddContractABIRequest, options?: RawAxiosRequestConfig): AxiosPromise<ContractWithAbiDto>;
    /**
     * Fetch the ABI. If not found fetch the ABI from the block explorer
     * @summary Fetch the contract ABI
     * @param {DeployedContractsApiFetchContractAbiRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    fetchContractAbi(requestParameters: DeployedContractsApiFetchContractAbiRequest, options?: RawAxiosRequestConfig): AxiosPromise<ContractWithAbiDto>;
    /**
     * Return deployed contract data by blockchain native asset id and contract address
     * @summary Return deployed contract data
     * @param {DeployedContractsApiGetDeployedContractByAddressRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractByAddress(requestParameters: DeployedContractsApiGetDeployedContractByAddressRequest, options?: RawAxiosRequestConfig): AxiosPromise<DeployedContractResponseDto>;
    /**
     * Return deployed contract data by id
     * @summary Return deployed contract data by id
     * @param {DeployedContractsApiGetDeployedContractByIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContractById(requestParameters: DeployedContractsApiGetDeployedContractByIdRequest, options?: RawAxiosRequestConfig): AxiosPromise<DeployedContractResponseDto>;
    /**
     * Return a filtered lean representation of the deployed contracts data on all blockchains (paginated)
     * @summary List deployed contracts data
     * @param {DeployedContractsApiGetDeployedContractsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDeployedContracts(requestParameters?: DeployedContractsApiGetDeployedContractsRequest, options?: RawAxiosRequestConfig): AxiosPromise<DeployedContractsPaginatedResponse>;
};
/**
 * Request parameters for addContractABI operation in DeployedContractsApi.
 * @export
 * @interface DeployedContractsApiAddContractABIRequest
 */
export interface DeployedContractsApiAddContractABIRequest {
    /**
     *
     * @type {AddAbiRequestDto}
     * @memberof DeployedContractsApiAddContractABI
     */
    readonly addAbiRequestDto: AddAbiRequestDto;
    /**
     * 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 DeployedContractsApiAddContractABI
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for fetchContractAbi operation in DeployedContractsApi.
 * @export
 * @interface DeployedContractsApiFetchContractAbiRequest
 */
export interface DeployedContractsApiFetchContractAbiRequest {
    /**
     *
     * @type {FetchAbiRequestDto}
     * @memberof DeployedContractsApiFetchContractAbi
     */
    readonly fetchAbiRequestDto: FetchAbiRequestDto;
    /**
     * 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 DeployedContractsApiFetchContractAbi
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getDeployedContractByAddress operation in DeployedContractsApi.
 * @export
 * @interface DeployedContractsApiGetDeployedContractByAddressRequest
 */
export interface DeployedContractsApiGetDeployedContractByAddressRequest {
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContractByAddress
     */
    readonly contractAddress: string;
    /**
     *
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContractByAddress
     */
    readonly assetId: string;
}
/**
 * Request parameters for getDeployedContractById operation in DeployedContractsApi.
 * @export
 * @interface DeployedContractsApiGetDeployedContractByIdRequest
 */
export interface DeployedContractsApiGetDeployedContractByIdRequest {
    /**
     * The deployed contract data identifier
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContractById
     */
    readonly id: string;
}
/**
 * Request parameters for getDeployedContracts operation in DeployedContractsApi.
 * @export
 * @interface DeployedContractsApiGetDeployedContractsRequest
 */
export interface DeployedContractsApiGetDeployedContractsRequest {
    /**
     * Page cursor to get the next page
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContracts
     */
    readonly pageCursor?: string;
    /**
     * Number of items per page, requesting more then max will return max items
     * @type {number}
     * @memberof DeployedContractsApiGetDeployedContracts
     */
    readonly pageSize?: number;
    /**
     * The contract\&#39;s onchain address
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContracts
     */
    readonly contractAddress?: string;
    /**
     *
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContracts
     */
    readonly baseAssetId?: string;
    /**
     *
     * @type {string}
     * @memberof DeployedContractsApiGetDeployedContracts
     */
    readonly contractTemplateId?: string;
}
/**
 * DeployedContractsApi - object-oriented interface
 * @export
 * @class DeployedContractsApi
 * @extends {BaseAPI}
 */
export declare class DeployedContractsApi extends BaseAPI {
    /**
     * Save contract ABI for the tenant
     * @summary Save contract ABI
     * @param {DeployedContractsApiAddContractABIRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DeployedContractsApi
     */
    addContractABI(requestParameters: DeployedContractsApiAddContractABIRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ContractWithAbiDto>>;
    /**
     * Fetch the ABI. If not found fetch the ABI from the block explorer
     * @summary Fetch the contract ABI
     * @param {DeployedContractsApiFetchContractAbiRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DeployedContractsApi
     */
    fetchContractAbi(requestParameters: DeployedContractsApiFetchContractAbiRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ContractWithAbiDto>>;
    /**
     * Return deployed contract data by blockchain native asset id and contract address
     * @summary Return deployed contract data
     * @param {DeployedContractsApiGetDeployedContractByAddressRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DeployedContractsApi
     */
    getDeployedContractByAddress(requestParameters: DeployedContractsApiGetDeployedContractByAddressRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<DeployedContractResponseDto>>;
    /**
     * Return deployed contract data by id
     * @summary Return deployed contract data by id
     * @param {DeployedContractsApiGetDeployedContractByIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DeployedContractsApi
     */
    getDeployedContractById(requestParameters: DeployedContractsApiGetDeployedContractByIdRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<DeployedContractResponseDto>>;
    /**
     * Return a filtered lean representation of the deployed contracts data on all blockchains (paginated)
     * @summary List deployed contracts data
     * @param {DeployedContractsApiGetDeployedContractsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof DeployedContractsApi
     */
    getDeployedContracts(requestParameters?: DeployedContractsApiGetDeployedContractsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<DeployedContractsPaginatedResponse>>;
}
