import { Transaction } from '@elrondnetwork/erdjs';
import { CreateRecord, EgldBasicTransaction, EgldEsdtTransaction, TransactionKMS } from '../model';
/**
 * Get Elrond network config
 */
export declare const egldGetConfig: (provider?: string | undefined) => Promise<any>;
/**
 * Estimate Gas price for the transaction.
 */
export declare const egldGetGasPrice: (provider?: string | undefined) => Promise<number>;
/**
 * Estimate Gas limit for the transaction.
 */
export declare const egldGetGasLimit: (tx: EgldBasicTransaction, provider?: string | undefined) => Promise<number>;
/**
 * Sign transaction
 */
export declare const signEgldTransaction: (tx: Transaction, fromPrivateKey: string) => Promise<string>;
/**
 * Returns EGLD server to connect to.
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 */
export declare const getEgldClient: (provider?: string | undefined) => string;
/**
 * Sign EGLD pending transaction from Tatum KMS
 * @param tx pending transaction from KMS
 * @param fromPrivateKey private key to sign transaction with.
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const signEgldKMSTransaction: (tx: TransactionKMS, fromPrivateKey: string, provider?: string | undefined) => Promise<string>;
/**
 * Sign EGLD Store data transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldStoreDataTransaction: (body: CreateRecord, provider?: string | undefined) => Promise<string>;
export declare const egldGetTxsCount: (address: string, client: string) => Promise<any>;
/**
 * Sign ESDT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldDeployEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldTransferEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT mint transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldMintEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT burn transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldBurnEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT pause transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldPauseEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT special role transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldSpecialRoleEsdtOrNftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT freze | wipe | transfer ownership transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldFreezeOrWipeOrOwvershipEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT control changes (upgrading props) transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldControlChangesEsdtSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT issue transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldDeployNftOrSftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT create NFT/SFT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldCreateNftOrSftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT transfer NFT create role transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldTransferNftCreateRoleSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT stop NFT create transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldStopNftCreateSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT Burn or Add quantity (SFT only) transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldAddOrBurnNftQuantitySignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT freeze NFT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldFreezeNftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT freeze NFT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldWipeNftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign ESDT transfer NFT transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldTransferNftSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Sign EGLD transaction with private keys locally. Nothing is broadcast to the blockchain.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareEgldSignedTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Send EGLD store data transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldStoreDataTransaction: (body: CreateRecord, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send EGLD or supported ERC20 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send EGLD deploy ESDT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldDeployEsdtTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send EGLD invoke smart contract transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldSmartContractMethodInvocationTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send EGLD ERC721 transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldTransferNftTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send EGLD NFT deploy to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param body content of the transaction to broadcast
 * @param provider url of the EGLD Server to connect to. If not set, default public server will be used.
 * @returns transaction id of the transaction in the blockchain
 */
export declare const sendEgldDeployNftTransaction: (body: EgldEsdtTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
