import { TriggerType, VMState } from '@neo-one/client-common';
import { LoadContractOptions, LoadScriptOptions, SerializableContainer, SnapshotName } from '@neo-one/node-core';
import BN from 'bn.js';
import { EngineMethods } from './Methods';
import { DispatcherFunc } from './types';
export interface CreateOptions {
    readonly trigger: TriggerType;
    readonly container?: SerializableContainer;
    readonly snapshot?: SnapshotName;
    readonly gas: BN;
}
interface ApplicationEngineDispatcher {
    readonly dispatch: DispatcherFunc<EngineMethods>;
}
export declare class ApplicationEngine {
    private readonly dispatch;
    constructor(dispatcher: ApplicationEngineDispatcher);
    get trigger(): TriggerType;
    get gasConsumed(): BN;
    get state(): VMState;
    get resultStack(): readonly import("@neo-one/node-core/dist/esm").StackItem[];
    get notifications(): readonly import("@neo-one/node-core/dist/esm").StackItem[];
    get logs(): import("@neo-one/node-core/dist/esm").VMLog[];
    create({ trigger, container, gas, snapshot }: CreateOptions): boolean;
    execute(): VMState;
    loadScript({ script, flags, scriptHash, initialPosition }: LoadScriptOptions): boolean;
    loadContract({ hash, method, flags, packParameters }: LoadContractOptions): boolean;
    checkScript(): any;
}
export {};
