import { Interfaces, Models } from '@open-rights-exchange/chain-js'; import { EthereumChainState } from './ethChainState'; import { EthereumAddress, EthereumPublicKey } from './models'; export declare class EthereumAccount implements Interfaces.Account { private _address; private _publicKey; private _chainState; constructor(chainState: EthereumChainState); /** Whether the account is currently unused and can be reused - not supported in Ethereum */ get canBeRecycled(): boolean; /** Ethereum address */ get name(): any; /** Public Key(s) associated with the account */ get publicKeys(): any; /** account resources not supported by ethereum chains */ get resources(): Models.AccountResources; /** Whether the account name can be used for new account */ isValidNewAccountName: (accountName: string | EthereumAddress) => Promise; /** Sets the ethereum address /* Public key can only be obtained from a transaction signed by an ethereum address /* Only Ethereum address is not enough to get public key */ load: (address?: EthereumAddress) => Promise; /** Sets the ethereum public key and address */ setPublicKey: (publicKey: EthereumPublicKey) => Promise; /** ETH has no account structure/registry on the chain */ get supportsOnChainAccountRegistry(): boolean; /** ETH accounts cannot be recycled as the private keys cannot be replaced */ get supportsRecycling(): boolean; /** JSON representation of address */ toJson(): { address: Models.ChainEntityNameBrand; }; /** Returns the address */ get value(): EthereumAddress; private assertHasAddress; private assertValidEthereumAddress; private assertValidEthereumPublickey; }