///
import { Quantity } from "@ganache/utils";
import Blockchain from "../blockchain";
import { GanacheTrie } from "../helpers/trie";
import { TrieDB } from "../trie-db";
export declare class ForkTrie extends GanacheTrie {
private accounts;
private address;
private isPreForkBlock;
private forkBlockNumber;
blockNumber: Quantity;
private checkpointedMetadata;
/** The underlying database for `checkpointedMetadata */
private metadataDB;
constructor(db: TrieDB | null, root: Buffer, blockchain: Blockchain);
checkpoint(): void;
commit(): Promise;
revert(): Promise;
setContext(stateRoot: Buffer, address: Buffer, blockNumber: Quantity): void;
put(key: Buffer, val: Buffer): Promise;
/**
* Removes saved metadata from the given block range (inclusive)
* @param startBlockNumber - (inclusive)
* @param endBlockNumber - (inclusive)
*/
revertMetaData(startBlockNumber: Quantity, endBlockNumber: Quantity): Promise;
private createDelKey;
/**
* Checks if the key was deleted (locally -- not on the fork)
* @param key -
*/
private keyWasDeleted;
del(key: Buffer): Promise;
/**
* Gets an account from the fork/fallback.
*
* @param address - the address of the account
* @param blockNumber - the block number at which to query the fork/fallback.
* @param stateRoot - the state root at the given blockNumber
*/
private accountFromFallback;
private storageFromFallback;
get(key: Buffer): Promise;
/**
* Returns a copy of the underlying trie with the interface of ForkTrie.
* @param includeCheckpoints - If true and during a checkpoint, the copy will
* contain the checkpointing metadata and will use the same scratch as
* underlying db.
*/
copy(includeCheckpoints?: boolean): ForkTrie;
}
//# sourceMappingURL=trie.d.ts.map