/// <reference types="node" />
import * as events from "events";
import { ActiveDSConnect } from "@activeledger/activeoptions";
import { ActiveDefinitions } from "@activeledger/activedefinitions";
import { ActiveCrypto } from "@activeledger/activecrypto";
import { IVMDataPayload, IVirtualMachine } from "./interfaces/vm.interface";
export declare class VirtualMachine extends events.EventEmitter implements IVirtualMachine {
    private selfHost;
    private secured;
    private db;
    private dbev;
    private virtual;
    private virtualInstance;
    private contractReferences;
    private event;
    private emitter;
    private maxTimeout;
    private scriptFinishedExec;
    constructor(selfHost: string, secured: ActiveCrypto.Secured, db: ActiveDSConnect, dbev: ActiveDSConnect);
    initialiseVirtualMachine(extraBuiltins?: string[], extraExternals?: string[], extraMocks?: string[]): void;
    getActivityStreamsFromVM(umid: string): ActiveDefinitions.LedgerStream[];
    destroy(umid: string): void;
    getInternodeCommsFromVM(umid: string): any;
    clearingInternodeCommsFromVM(umid: string): boolean;
    getReturnContractData(umid: string): unknown;
    getThrowsFromVM(umid: string): string[];
    getInputs(umid: string): ActiveDefinitions.LedgerStream[];
    initialise(payload: IVMDataPayload, contractName: string): Promise<void>;
    private setPhase;
    read(umid: string, readMethod: string): Promise<unknown>;
    verify(sigless: boolean, umid: string): Promise<boolean>;
    vote(nodes: ActiveDefinitions.INodes, umid: string): Promise<boolean>;
    commit(nodes: ActiveDefinitions.INodes, possibleTerritoriality: boolean | undefined, umid: string): Promise<boolean>;
    reconcile(nodes: ActiveDefinitions.INodes, umid: string): Promise<boolean>;
    postProcess(territoriality: boolean, who: string, umid: string): Promise<any>;
    private incMarshel;
    private listenForVolatile;
    private listenForFetch;
    private checkTimeout;
    private hasBeenExtended;
    private catchException;
    private readNthLine;
}
//# sourceMappingURL=vm.d.ts.map