import { ExecutionContext } from '../executionContext'; import { OpCode } from '../opCode'; import { OpExec } from '../opExec'; import { StackItem } from '../types/stackItem'; import { Stack } from '../utils/stack'; export declare type VMState = number; export declare const NONE: VMState; export declare const HALT: VMState; export declare const FAULT: VMState; export declare const BREAK: VMState; export declare const INSUFFICIENT_RESOURCE: VMState; export declare type RandomAccessStack = Stack; export interface ExecutionEngine { getOpCode(): OpCode; setOpCode(opCode: OpCode): void; getOpExec(): OpExec; getState(): VMState; getEvaluationStack(): RandomAccessStack; getAltStack(): RandomAccessStack; getContext(): ExecutionContext; getContexts(): ExecutionContext[]; pushContext(context: ExecutionContext): void; popContext(): void; /** * TODO: rename - it's misleading */ executeCode(): void; validateOp(): void; stepInto(): Error | undefined; }