/// /// import { Cancellable } from "./cancellable"; import { Signal } from "./signals"; import { inspect } from "util"; export declare class Script { private impl; destroyed: Signal; message: Signal; private exportsProxy; private logHandlerImpl; constructor(impl: any); get isDestroyed(): boolean; get exports(): ScriptExports; get logHandler(): ScriptLogHandler; set logHandler(handler: ScriptLogHandler); get defaultLogHandler(): ScriptLogHandler; load(cancellable?: Cancellable): Promise; unload(cancellable?: Cancellable): Promise; eternalize(cancellable?: Cancellable): Promise; post(message: any, data?: Buffer | null): void; [inspect.custom](depth: any, options: any): string; } export interface ScriptOptions { name?: string; runtime?: ScriptRuntime; } export declare enum ScriptRuntime { Default = "default", QJS = "qjs", V8 = "v8" } export declare type ScriptDestroyedHandler = () => void; export declare type ScriptMessageHandler = (message: Message, data: Buffer | null) => void; export declare type ScriptLogHandler = (level: LogLevel, text: string) => void; export declare type Message = SendMessage | ErrorMessage; export declare enum MessageType { Send = "send", Error = "error" } export interface SendMessage { type: MessageType.Send; payload: any; } export interface ErrorMessage { type: MessageType.Error; description: string; stack?: string; fileName?: string; lineNumber?: number; columnNumber?: number; } export interface ScriptExports { [name: string]: (...args: any[]) => Promise; } export declare enum LogLevel { Info = "info", Warning = "warning", Error = "error" }