import type { HexAddress, HexString, ProofRef } from '../types.js';
import { type RPCEthGetProof, isContract, encodeProof } from './types.js';
import { BlockProver, type TargetNeed } from '../vm.js';
import { ZeroHash } from 'ethers/constants';
export declare class EthProver extends BlockProver {
    static readonly encodeProof: typeof encodeProof;
    static readonly isContract: typeof isContract;
    static readonly latest: (provider: import("../types.js").Provider, relBlockTag?: ZeroHash) => Promise<EthProver>;
    isContract(target: HexAddress): Promise<boolean>;
    getStorage(target: HexAddress, slot: bigint, fast?: boolean): Promise<HexString>;
    protected _proveNeed(need: TargetNeed, accountRef: ProofRef, slotRefs: Map<bigint, ProofRef>): Promise<void>;
    getProofs(target: HexAddress, slots?: bigint[]): Promise<RPCEthGetProof>;
    fetchProofs(target: HexAddress, slots?: bigint[]): Promise<RPCEthGetProof>;
}
//# sourceMappingURL=EthProver.d.ts.map