import { rpc, Transaction } from "@stellar/stellar-sdk";
import { StellarToken } from "../../core/types/stellar";
import { TokenWithBalance } from "../../core/types/tokens";
export declare class StellarRpcClient {
    private server;
    constructor(rpcUrl: string);
    /**
     * Returns the balance of a Stellar Contract Token. This is different from an Issued Token.
     *
     * With Contract Tokens, we need to call the .balance method on the token contract
     * and simulate the transaction to get the balance.
     */
    getBalance(userAddress: string, tokenAddress: string, chainId: string): Promise<string>;
    getAllBalances(userAddress: string, tokens: StellarToken[]): Promise<Array<TokenWithBalance>>;
    /**
     * Resolves when the transaction is confirmed, or fails after a timeout.
     */
    waitForTransaction(txHash: string, { interval, timeout }?: {
        interval?: number | undefined;
        timeout?: number | undefined;
    }): Promise<rpc.Api.GetTransactionStatus.SUCCESS>;
    isAccountActivated(address: string): Promise<boolean>;
    getAccount(address: string): Promise<import("@stellar/stellar-base").Account>;
    sendTransaction(transaction: Transaction): Promise<rpc.Api.SendTransactionResponse>;
    prepareTransaction(transaction: Transaction): Promise<Transaction<import("@stellar/stellar-base").Memo<import("@stellar/stellar-base").MemoType>, import("@stellar/stellar-base").Operation[]>>;
}
