// Automatically generated from TypeScript type definitions provided by
// DefinitelyTyped (https://github.com/DefinitelyTyped/DefinitelyTyped),
// which is licensed under the MIT license; see file DefinitelyTyped-LICENSE
// in parent directory.
// Type definitions for Node.js 10.5.x
// Project: http://nodejs.org/
// Definitions by: Microsoft TypeScript
// DefinitelyTyped
// Parambir Singh
// Christian Vaagland Tellnes
// Wilco Bakker
// Nicolas Voigt
// Chigozirim C.
// Flarna
// Mariusz Wiktorczyk
// wwwy3y3
// Deividas Bakanas
// Kelvin Jin
// Alvis HT Tang
// Sebastian Silbermann
// Hannes Magnusson
// Alberto Schiabel
// Klaus Meinhardt
// Huw
// Nicolas Even
// Bruno Scheufler
// Mohsen Azimi
// Hong Vn Khi
// Alexander T.
// Lishude
// Andrew Makarov
// Zane Hannan AU
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/**
* @externs
* @fileoverview Definitions for module "vm"
*/
var vm = {};
/**
* @interface
*/
vm.Context = function() {};
/**
* @interface
*/
vm.ScriptOptions = function() {};
/**
* @type {string}
*/
vm.ScriptOptions.prototype.filename;
/**
* @type {number}
*/
vm.ScriptOptions.prototype.lineOffset;
/**
* @type {number}
*/
vm.ScriptOptions.prototype.columnOffset;
/**
* @type {boolean}
*/
vm.ScriptOptions.prototype.displayErrors;
/**
* @type {number}
*/
vm.ScriptOptions.prototype.timeout;
/**
* @type {Buffer}
*/
vm.ScriptOptions.prototype.cachedData;
/**
* @type {boolean}
*/
vm.ScriptOptions.prototype.produceCachedData;
/**
* @interface
*/
vm.RunningScriptOptions = function() {};
/**
* @type {string}
*/
vm.RunningScriptOptions.prototype.filename;
/**
* @type {number}
*/
vm.RunningScriptOptions.prototype.lineOffset;
/**
* @type {number}
*/
vm.RunningScriptOptions.prototype.columnOffset;
/**
* @type {boolean}
*/
vm.RunningScriptOptions.prototype.displayErrors;
/**
* @type {number}
*/
vm.RunningScriptOptions.prototype.timeout;
/**
* @param {string} code
* @param {vm.ScriptOptions=} options
* @return {vm.Script}
* @constructor
*/
vm.Script = function(code, options) {};
/**
* @param {vm.Context} contextifiedSandbox
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.Script.prototype.runInContext = function(contextifiedSandbox, options) {};
/**
* @param {vm.Context=} sandbox
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.Script.prototype.runInNewContext = function(sandbox, options) {};
/**
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.Script.prototype.runInThisContext = function(options) {};
/**
* @param {vm.Context=} sandbox
* @return {vm.Context}
*/
vm.createContext = function(sandbox) {};
/**
* @param {vm.Context} sandbox
* @return {boolean}
*/
vm.isContext = function(sandbox) {};
/**
* @param {string} code
* @param {vm.Context} contextifiedSandbox
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.runInContext = function(code, contextifiedSandbox, options) {};
/**
* @param {string} code
* @return {*}
*/
vm.runInDebugContext = function(code) {};
/**
* @param {string} code
* @param {vm.Context=} sandbox
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.runInNewContext = function(code, sandbox, options) {};
/**
* @param {string} code
* @param {vm.RunningScriptOptions=} options
* @return {*}
*/
vm.runInThisContext = function(code, options) {};
module.exports.Context = vm.Context;
module.exports.ScriptOptions = vm.ScriptOptions;
module.exports.RunningScriptOptions = vm.RunningScriptOptions;
module.exports.Script = vm.Script;
module.exports.createContext = vm.createContext;
module.exports.isContext = vm.isContext;
module.exports.runInContext = vm.runInContext;
module.exports.runInDebugContext = vm.runInDebugContext;
module.exports.runInNewContext = vm.runInNewContext;
module.exports.runInThisContext = vm.runInThisContext;
/**
* @param {string} code
* @param {string=} filename
* @return {vm.Script}
*/
vm.createScript = function(code, filename) {};
module.exports.createScript = vm.createScript;