import { Algodv2 as AlgodClient } from 'algosdk';
import { AlgoTransaction, BurnErc20, BurnErc721, BurnMultiToken, DeployErc20, MintAlgoNft, MintMultiToken, ReceiveAlgoNft, TransactionKMS, TransferAlgoNft, TransferErc20, TransferMultiToken } from '../model';
/**
 * Algod V2 Client
 * @param testnet if the algorand node is testnet or not
 * @param provider url of the algorand server endpoint
 * @returns algorand Client
 */
export declare const getAlgoClient: (testnet: boolean, provider?: string | undefined) => AlgodClient;
/**
 * Algo Indexer Client
 * @param testnet if the algorand node is testnet or not
 * @param provider url of the algorand server endpoint
 * @returns algorand Indexer Client
 */
export declare const getAlgoIndexerClient: (testnet: boolean, provider?: string | undefined) => any;
/**
 * Algorand transaction signing
 * @param testnet if the algorand node is testnet or not
 * @param tx content of the transaction to broadcast
 * @param provider url of the algorand server endpoint for purestake.io restapi
 * @returns transaction data to be broadcast to blockchain
 */
export declare const prepareAlgoSignedTransaction: (testnet: boolean, tx: AlgoTransaction, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * This operation is irreversible.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoSignedTransaction: (testnet: boolean, tx: AlgoTransaction, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand pending transaction from Tatum KMS
 * @param tx pendding transaction from Tatum KMS
 * @param fromPrivateKey private key to sign transaction with
 * @param testnet mainnet or testnet version
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const signAlgoKMSTransaction: (tx: TransactionKMS, fromPrivateKey: string, testnet: boolean, provider?: string | undefined) => Promise<string>;
/**
 * Sign Algorand create NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain
 */
export declare const prepareAlgoCreateNFTSignedTransaction: (testnet: boolean, tx: MintAlgoNft, provider?: string | undefined, decimals?: number, total?: number) => Promise<string>;
/**
 * Send Algorand create NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoCreateNFTSignedTransaction: (testnet: boolean, tx: MintAlgoNft, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand transfer NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoTransferNFTSignedTransaction: (testnet: boolean, tx: TransferAlgoNft, provider?: string | undefined, amount?: number) => Promise<string>;
/**
 * Sign Algorand receive NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoReceiveNFTSignedTransaction: (testnet: boolean, tx: ReceiveAlgoNft, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand Transfer NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoTransferNFTSignedTransaction: (testnet: boolean, tx: TransferAlgoNft, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Send Algorand Receive NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoReceiveNFTSignedTransaction: (testnet: boolean, tx: ReceiveAlgoNft, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand burn NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoBurnNFTSignedTransaction: (testnet: boolean, tx: BurnErc721, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand burn NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoBurnNFTSignedTransaction: (testnet: boolean, tx: BurnErc721, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand create Fractional NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoCreateFractionalNFTSignedTransaction: (testnet: boolean, tx: MintMultiToken, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand create Fractinoal NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoCreateFractionalNFTSignedTransaction: (testnet: boolean, tx: MintMultiToken, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand transfer Fractional NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoTransferFractionalNFTSignedTransaction: (testnet: boolean, tx: TransferMultiToken, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand transfer Fractinoal NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoTransferFractionalNFTSignedTransaction: (testnet: boolean, tx: TransferMultiToken, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand burn Fracational NFT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connecto to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoBurnFractionalNFTSignedTransaction: (testnet: boolean, tx: BurnMultiToken, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand burn Fractional NFT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoBurnFractionalNFTSignedTransaction: (testnet: boolean, tx: BurnMultiToken, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand create FT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connnect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoCreateFTSignedTransaction: (testnet: boolean, tx: DeployErc20, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand create FT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoCreateFTSignedTransaction: (testnet: boolean, tx: DeployErc20, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign Algorand transfer FT transaction with private kwy locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoTransferFTSignedTransaction: (testnet: boolean, tx: TransferErc20, provider?: string | undefined) => Promise<string>;
/**
 * Send Algorand transfer FT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoTransferFTSignedTransaction: (testnet: boolean, tx: TransferErc20, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
/**
 * Sign ALgorand burn FT transaction with private key locally. Nothing is broadcast to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand Server to connect to. If not set, default public server will be used.
 * @returns transaction data to be broadcast to blockchain.
 */
export declare const prepareAlgoBurnFTSignedTransaction: (testnet: boolean, tx: BurnErc20, provider?: string | undefined) => Promise<string>;
/**
 * Sned Algorand burn FT transaction to the blockchain. This method broadcasts signed transaction to the blockchain.
 * @param testnet mainnet or testnet version
 * @param tx content of the transaction to broadcast
 * @param provider url of the Algorand 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 sendAlgoBurnFTSignedTransaction: (testnet: boolean, tx: BurnErc20, provider?: string | undefined) => Promise<import("../model").TransactionHash>;
