import { BigNumber } from 'ethers';
import VM from '../index';
import Message from '../evm/message';
export interface OvmStateManagerOpts {
    vm: VM;
}
export declare class OvmStateManager {
    vm: VM;
    private _iface;
    private _handlers;
    constructor(opts: OvmStateManagerOpts);
    isAuthenticated(message: Message, context: any): Promise<boolean>;
    handleCall(message: Message, context: any): Promise<any>;
    hasAccount(address: string): Promise<boolean>;
    hasEmptyAccount(address: string): Promise<boolean>;
    setAccountNonce(address: string, nonce: BigNumber): Promise<void>;
    getAccountNonce(address: string): Promise<number>;
    getAccountEthAddress(address: string): Promise<string>;
    getContractStorage(address: string, key: string): Promise<string>;
    hasContractStorage(address: string, key: string): Promise<boolean>;
    putContractStorage(address: string, key: string, value: string): Promise<void>;
    testAndSetAccountLoaded(address: string): Promise<boolean>;
    testAndSetAccountChanged(address: string): Promise<boolean>;
    testAndSetContractStorageLoaded(address: string, key: string): Promise<boolean>;
    testAndSetContractStorageChanged(address: string, key: string): Promise<boolean>;
}
