/// <reference types="node" />
import { Commitment, Connection, PublicKeyInitData, Transaction as SolanaTransaction } from "@solana/web3.js";
import { Overrides, PayableOverrides, ethers } from "ethers";
import { ChainId, ChainName } from "../utils";
export declare function getAllowanceEth(tokenBridgeAddress: string, tokenAddress: string, signer: ethers.Signer): Promise<ethers.BigNumber>;
export declare function approveEth(tokenBridgeAddress: string, tokenAddress: string, signer: ethers.Signer, amount: ethers.BigNumberish, overrides?: Overrides & {
    from?: string | Promise<string>;
}): Promise<ethers.ContractReceipt>;
export declare function transferFromEth(tokenBridgeAddress: string, signer: ethers.Signer, tokenAddress: string, amount: ethers.BigNumberish, recipientChain: ChainId | ChainName, recipientAddress: Uint8Array, relayerFee?: ethers.BigNumberish, overrides?: PayableOverrides & {
    from?: string | Promise<string>;
}, payload?: Uint8Array | null): Promise<ethers.ContractReceipt>;
export declare function transferFromEthNative(tokenBridgeAddress: string, signer: ethers.Signer, amount: ethers.BigNumberish, recipientChain: ChainId | ChainName, recipientAddress: Uint8Array, relayerFee?: ethers.BigNumberish, overrides?: PayableOverrides & {
    from?: string | Promise<string>;
}, payload?: Uint8Array | null): Promise<ethers.ContractReceipt>;
export declare function transferNativeSol(connection: Connection, bridgeAddress: PublicKeyInitData, tokenBridgeAddress: PublicKeyInitData, payerAddress: PublicKeyInitData, amount: bigint, targetAddress: Uint8Array | Buffer, targetChain: ChainId | ChainName, relayerFee?: bigint, payload?: Uint8Array | Buffer | null, commitment?: Commitment): Promise<SolanaTransaction>;
export declare function transferFromSolana(connection: Connection, bridgeAddress: PublicKeyInitData, tokenBridgeAddress: PublicKeyInitData, payerAddress: PublicKeyInitData, fromAddress: PublicKeyInitData, mintAddress: PublicKeyInitData, amount: bigint, targetAddress: Uint8Array | Buffer, targetChain: ChainId | ChainName, originAddress?: Uint8Array | Buffer, originChain?: ChainId | ChainName, fromOwnerAddress?: PublicKeyInitData, relayerFee?: bigint, payload?: Uint8Array | Buffer | null, commitment?: Commitment): Promise<SolanaTransaction>;
