import RPCClient from "../rpcclient";
import Namespace from "./namespace";
import Decimal from "decimal.js";
import { TxBalanceBuilder } from "../builders/transaction_builder";
/**
 * Ell accesses information about an Elld client
 *
 * @export
 * @class Ell
 */
export default class Ell extends Namespace {
    /**
     * Creates an instance of Ell.
     *
     * @param {RPCClient} client
     * @memberof Ell
     */
    constructor(client: RPCClient);
    /**
     * Send a transaction
     *
     * @param {Transaction} txData The transaction's data
     * @returns {Promise<TxResult>}
     * @memberof Ell
     */
    send(txData: Transaction): Promise<TxResult>;
    /**
     * Returns the balance of an account
     * using the given address
     *
     * @param {string} address
     * @returns {Promise<string>}
     * @memberof Ell
     */
    getBalance(address: string): Promise<Decimal>;
    /**
     * Returns a balance transaction builder for
     * creating and executing balance transactions.
     *
     * @returns {TxBalanceBuilder}
     * @memberof Ell
     */
    balance(): TxBalanceBuilder;
    /**
     * Send a Base58 encoded transaction
     * to the node.
     *
     * @param {string} encodedTx
     * @returns {Promise<TxResult>}
     * @memberof Ell
     */
    sendRaw(encodedTx: string): Promise<TxResult>;
}
