import { Common, Chain, CustomCrypto } from '@ethereumjs/common'; import { VM } from '@ethereumjs/vm'; import { AddressHex, Bytes32, RPCTx, BlockNumber as BlockOpt, HexString, JSONRPCReceipt, JSONRPCLogFilter, JSONRPCLog } from './types'; import { RPC } from './rpc'; export declare class VerifyingProvider { common: Common; vm: VM | null; rpc: RPC; private blockHashes; private blockPromises; private blockHeaders; private latestBlockNumber; constructor(providerURL: string, blockNumber: bigint | number, blockHash: Bytes32, chain: bigint | Chain | undefined, customCrypto: CustomCrypto); static create(providerURL: string, blockNumber: bigint | number, blockHash: Bytes32, chain?: bigint | Chain): Promise; update(blockHash: Bytes32, blockNumber: bigint): void; getBalance(addressHex: AddressHex, blockOpt?: BlockOpt): Promise; blockNumber(): HexString; chainId(): HexString; getLogs(filter: JSONRPCLogFilter): Promise; getBlockReceipts(blockHash: Bytes32): Promise; getCode(addressHex: AddressHex, blockOpt?: BlockOpt): Promise; getTransactionCount(addressHex: AddressHex, blockOpt?: BlockOpt): Promise; call(transaction: RPCTx, blockOpt?: BlockOpt): Promise; estimateGas(transaction: RPCTx, blockOpt?: BlockOpt): Promise; getBlockByHash(blockHash: Bytes32, includeTransactions: boolean): Promise; getBlockByNumber(blockOpt: BlockOpt, includeTransactions: boolean): Promise; sendRawTransaction(signedTx: string): Promise; getTransactionReceipt(txHash: Bytes32): Promise; private validateTx; private getBlock; private getBlockHeader; private waitForBlockNumber; private getBlockNumberByBlockOpt; private getVMCopy; private getVM; private getBlockHash; private getBlockHeaderByHash; private verifyCodeHash; private verifyProof; }