///
import { Address } from '../address';
import { BlockHeaderResponse, BlockResponse, CallRequest, EstimateRequest, LogRequest, LogResponse, PartialTransactionRequest, TransactionRequest, TransactionResponse } from '../formatters';
import { EthereumProvider } from '../providers/ethereum-provider';
import { Subscription } from '../subscriptions';
import { TransactionHash } from '../types';
import { Wallet } from '../wallet';
import { BlockHash, BlockType } from './block';
import { EthRequestPayloads } from './eth-request-payloads';
import { SendTx } from './send-tx';
export declare type TypedSigningData = {
type: string;
name: string;
value: string;
}[];
export declare class Eth {
readonly provider: EthereumProvider;
readonly request: EthRequestPayloads;
wallet?: Wallet;
constructor(provider: EthereumProvider);
static fromCurrentProvider(): Eth | undefined;
defaultFromAddress: Address | undefined;
private send;
getId(): Promise;
getNodeInfo(): Promise;
getProtocolVersion(): Promise;
getCoinbase(): Promise;
isMining(): Promise;
getHashrate(): Promise;
isSyncing(): Promise;
getGasPrice(): Promise;
getAccounts(): Promise;
getBlockNumber(): Promise;
getBalance(address: Address, block?: BlockType): Promise;
getStorageAt(address: Address, position: string, block?: BlockType): Promise;
getCode(address: Address, block?: BlockType): Promise;
getBlock(block: BlockType | BlockHash, returnTxs?: false): Promise>;
getBlock(block: BlockType | BlockHash, returnTxs?: true): Promise>;
getUncle(block: BlockType | BlockHash, uncleIndex: number, returnTxs?: false): Promise>;
getUncle(block: BlockType | BlockHash, uncleIndex: number, returnTxs?: true): Promise>;
getBlockTransactionCount(block: BlockType | BlockHash): Promise;
getBlockUncleCount(block: BlockType | BlockHash): Promise;
getTransaction(hash: TransactionHash): Promise;
getTransactionFromBlock(block: BlockType | BlockHash, index: number): Promise;
getTransactionReceipt(txHash: TransactionHash): Promise | null>;
getTransactionCount(address: Address, block?: BlockType): Promise;
signTransaction(tx: TransactionRequest): Promise;
sendSignedTransaction(data: string): SendTx;
sendTransaction(tx: PartialTransactionRequest): SendTx;
private getAccount;
sign(address: Address, dataToSign: string): Promise;
signTypedData(address: Address, dataToSign: TypedSigningData): Promise;
call(tx: CallRequest, block?: BlockType): Promise;
estimateGas(tx: EstimateRequest): Promise;
submitWork(nonce: string, powHash: string, digest: string): Promise;
getWork(): Promise;
getPastLogs(options: LogRequest): Promise;
subscribe(type: 'logs', options?: LogRequest): Subscription;
subscribe(type: 'syncing'): Subscription