import { ChainGrpcWasmApi } from "@injectivelabs/sdk-ts";
import { Commitment, Connection, PublicKeyInitData } from "@solana/web3.js";
import { LCDClient } from "@terra-money/terra.js";
import { LCDClient as XplaLCDClient } from "@xpla/xpla.js";
import { Algodv2 } from "algosdk";
import { AptosClient } from "aptos";
import { ethers } from "ethers";
import { Provider } from "near-api-js/lib/providers";
import { SignedVaa } from "../vaa/wormhole";
import { JsonRpcProvider } from "@mysten/sui.js";
export declare function getIsTransferCompletedEth(tokenBridgeAddress: string, provider: ethers.Signer | ethers.providers.Provider, signedVAA: Uint8Array): Promise<boolean>;
export declare function getIsTransferCompletedTerra(tokenBridgeAddress: string, signedVAA: Uint8Array, client: LCDClient, gasPriceUrl: string): Promise<boolean>;
/**
 * This function is used to check if a VAA has been redeemed on terra2 by
 * querying the token bridge contract.
 * @param tokenBridgeAddress The token bridge address (bech32)
 * @param signedVAA The signed VAA byte array
 * @param client The LCD client. Only used for querying, not transactions will
 * be signed
 */
export declare function getIsTransferCompletedTerra2(tokenBridgeAddress: string, signedVAA: Uint8Array, client: LCDClient): Promise<boolean>;
/**
 * Return if the VAA has been redeemed or not
 * @param tokenBridgeAddress The Injective token bridge contract address
 * @param signedVAA The signed VAA byte array
 * @param client Holds the wallet and signing information
 * @returns true if the VAA has been redeemed.
 */
export declare function getIsTransferCompletedInjective(tokenBridgeAddress: string, signedVAA: Uint8Array, client: ChainGrpcWasmApi): Promise<boolean>;
export declare function getIsTransferCompletedXpla(tokenBridgeAddress: string, signedVAA: Uint8Array, client: XplaLCDClient): Promise<boolean>;
export declare function getIsTransferCompletedSolana(tokenBridgeAddress: PublicKeyInitData, signedVAA: SignedVaa, connection: Connection, commitment?: Commitment): Promise<boolean>;
/**
 * <p>Returns true if this transfer was completed on Algorand</p>
 * @param client AlgodV2 client
 * @param appId Most likely the Token bridge ID
 * @param signedVAA VAA to check
 * @returns true if VAA has been redeemed, false otherwise
 */
export declare function getIsTransferCompletedAlgorand(client: Algodv2, appId: bigint, signedVAA: Uint8Array): Promise<boolean>;
export declare function getIsTransferCompletedNear(provider: Provider, tokenBridge: string, signedVAA: Uint8Array): Promise<boolean>;
/**
 * Determine whether or not the transfer in the given VAA has completed on Aptos.
 * @param client Client used to transfer data to/from Aptos node
 * @param tokenBridgeAddress Address of token bridge
 * @param transferVAA Bytes of transfer VAA
 * @returns True if transfer is completed
 */
export declare function getIsTransferCompletedAptos(client: AptosClient, tokenBridgeAddress: string, transferVAA: Uint8Array): Promise<boolean>;
export declare function getIsTransferCompletedSui(provider: JsonRpcProvider, tokenBridgeStateObjectId: string, transferVAA: Uint8Array): Promise<boolean>;
