import algosdk, { Account, Algodv2 } from "algosdk";
import { TransactionSignerPair } from "./Algorand";
/**
 *  Creates a new Algodv2 client using local file consts
 * @returns a newly constructed Algodv2 client
 */
export declare function getAlgoClient(): Algodv2;
export declare function getKmdClient(): algosdk.Kmd;
export declare function getGenesisAccounts(): Promise<Account[]>;
export declare function firstKmdTransaction(): Promise<void>;
export declare function getTempAccounts(): Promise<Account[]>;
export declare function createAccount(): Account | undefined;
/**
 *  Return the balances of all assets for the supplied account
 * @param client An Algodv2 client
 * @param account The account containing assets
 * @returns Map of asset index to qty
 */
export declare function getBalances(client: Algodv2, account: string): Promise<Map<number, number>>;
/**
 * Return the balance of the supplied asset index for the supplied account
 * @param client An Algodv2 client
 * @param account The account to query for the supplied asset index
 * @param assetId The asset index
 * @returns The quantity of the asset in the supplied account
 */
export declare function getBalance(client: Algodv2, account: string, assetId: number): Promise<number>;
export declare function createAsset(account: Account): Promise<any>;
export declare function getForeignAssetFromVaaAlgorand(client: Algodv2, tokenBridgeId: bigint, vaa: Uint8Array): Promise<bigint | null>;
export declare function signSendAndConfirmAlgorand(algodClient: Algodv2, txs: TransactionSignerPair[], wallet: Account): Promise<Record<string, any>>;
