import { UInt256, VMState } from '@neo-one/client-common';
import { Block, SnapshotName, SnapshotPartial, Transaction } from '@neo-one/node-core';
import { SnapshotMethods } from './Methods';
import { DispatcherFunc } from './types';
interface SnapshotDispatcher {
    readonly dispatch: DispatcherFunc<SnapshotMethods>;
}
export declare class SnapshotHandler {
    private readonly dispatch;
    private readonly snapshot;
    private readonly cloneInternal;
    constructor(dispatcher: SnapshotDispatcher, snapshot: SnapshotName);
    addBlock(block: Block): boolean;
    addTransaction(transaction: Transaction, index: number, state?: VMState): boolean;
    deleteTransaction(hash: UInt256): boolean;
    changeBlockHashIndex(index: number, hash: UInt256): boolean;
    changeHeaderHashIndex(index: number, hash: UInt256): boolean;
    setPersistingBlock(block: Block): boolean;
    hasPersistingBlock(): boolean;
    commit(partial?: SnapshotPartial): boolean;
    getChangeSet(): readonly (import("./converters").PutBatch | import("./converters").DeleteBatch)[];
    clone(): void;
}
export {};
