///
import { EIP2929StateManager } from "@ethereumjs/vm/dist/state/interface";
import { Account, Address, BN } from "ethereumjs-util";
import { JsonRpcClient } from "../../jsonrpc/client";
import { GenesisAccount } from "../node-types";
export declare class ForkStateManager implements EIP2929StateManager {
private readonly _jsonRpcClient;
private readonly _forkBlockNumber;
private _state;
private _initialStateRoot;
private _stateRoot;
private _stateRootToState;
private _originalStorageCache;
private _stateCheckpoints;
private _contextBlockNumber;
private _contextChanged;
private _accessedStorage;
private _accessedStorageReverted;
constructor(_jsonRpcClient: JsonRpcClient, _forkBlockNumber: BN);
initializeGenesisAccounts(genesisAccounts: GenesisAccount[]): Promise;
copy(): ForkStateManager;
getAccount(address: Address): Promise;
putAccount(address: Address, account: Account): Promise;
touchAccount(_address: Address): void;
putContractCode(address: Address, value: Buffer): Promise;
getContractCode(address: Address): Promise;
getContractStorage(address: Address, key: Buffer): Promise;
putContractStorage(address: Address, key: Buffer, value: Buffer): Promise;
clearContractStorage(address: Address): Promise;
checkpoint(): Promise;
commit(): Promise;
revert(): Promise;
getStateRoot(): Promise;
setStateRoot(stateRoot: Buffer): Promise;
dumpStorage(_address: Address): Promise>;
hasGenesisState(): Promise;
generateCanonicalGenesis(): Promise;
generateGenesis(_initState: any): Promise;
accountIsEmpty(address: Address): Promise;
cleanupTouchedAccounts(): Promise;
setBlockContext(stateRoot: Buffer, blockNumber: BN, irregularState?: Buffer): void;
restoreForkBlockContext(stateRoot: Buffer): void;
accountExists(_address: Address): never;
deleteAccount(address: Address): Promise;
clearOriginalStorageCache(): void;
getOriginalContractStorage(address: Address, key: Buffer): Promise;
isWarmedAddress(address: Buffer): boolean;
addWarmedAddress(address: Buffer): void;
isWarmedStorage(address: Buffer, slot: Buffer): boolean;
addWarmedStorage(address: Buffer, slot: Buffer): void;
clearWarmedAccounts(): void;
private _putAccount;
private _setStateRoot;
}
//# sourceMappingURL=ForkStateManager.d.ts.map