/**
 * @group Util
 */
export declare class Address {
    bech32Address: string;
    constructor(bech32Address: string);
    compare(address: Address): boolean;
    get address(): string;
    /**
     * Create an address instance from a bech32-encoded address and a prefix
     * @param {string} bech32 bech32-encoded address
     * @param {string} prefix
     * @return {Address}
     * @throws {Error} if bech is not a valid bech32-encoded address
     */
    static fromBech32(bech: string, prefix?: string): Address;
    /**
     * Create an address instance from an ethereum address
     * @param {string} hex Ethereum address
     * @param {string} prefix
     * @return {Address}
     * @throws {Error} if bech is not a valid bech32-encoded address
     */
    static fromHex(hex: string, prefix?: string): Address;
    /**
     * Convert an address instance to a bech32-encoded account address
     * @param {string} prefix
     * @returns {string}
     */
    toBech32(prefix?: string): string;
    /**
     * Return a bech32-encoded account address
     * @return {string}
     * @throws {Error} if this address is not a valid account address
     * */
    toAccountAddress(): string;
    /**
     * Return a bech32-encoded validator address
     * @return {string}
     * @throws {Error} if this address is not a valid validator address
     * */
    toValidatorAddress(): string;
    /**
     * Return a bech32-encoded consensus address
     * @return {string}
     * @throws {Error} if this address is not a valid consensus address
     * */
    toConsensusAddress(): string;
    /**
     * Return a hex representation of address
     * @return {string}
     * @throws {Error} if this address is not a valid account address
     * */
    toHex(): string;
    /**
     * Return a subaccount address from the given bech32 encoded address
     * @param {number} index the subaccount index
     * @return {string}
     * @throws {Error} if this address is not a valid account address
     * */
    getSubaccountId(index?: number): string;
    /**
     * Return a ethereum address from the given bech32 encoded address
     * @return {string}
     * @throws {Error} if this address is not a valid account address
     * */
    getEthereumAddress(): string;
}
