/// <reference types="node" />
import * as VM from './virtual-machine-types';
import * as IL from './il';
import { StringifyILOpts } from './stringify-il';
export declare const ENGINE_MAJOR_VERSION = 8;
export declare const HEADER_SIZE = 28;
export declare const ENGINE_MINOR_VERSION = 0;
/**
 * A snapshot represents the state of the machine captured at a specific moment
 * in time.
 *
 * Note: Handles are not part of the snapshot. Handles represent references from
 * the host into the VM. These references are severed at the time that VM is
 * snapshotted.
 */
export interface SnapshotIL {
    globalSlots: Map<VM.GlobalSlotID, VM.GlobalSlot>;
    functions: Map<IL.FunctionID, IL.Function>;
    exports: Map<IL.ExportID, IL.Value>;
    allocations: Map<IL.AllocationID, IL.Allocation>;
    flags: Set<IL.ExecutionFlag>;
    builtins: {
        arrayPrototype: IL.Value;
        promisePrototype: IL.Value;
        asyncContinue: IL.Value;
        asyncCatchBlock: IL.Value;
        asyncHostCallback: IL.Value;
    };
}
export declare function stringifySnapshotIL(snapshot: SnapshotIL, opts?: StringifyILOpts): string;
export declare function validateSnapshotBinary(bytecode: Buffer): {
    err: string;
} | undefined;
