import { QuickJSAsyncContext, QuickJSAsyncRuntime, QuickJSHandle, Scope } from "quickjs-emscripten"; export type CageModuleCtx = { vm: QuickJSAsyncContext; scope: Scope; runtime: QuickJSAsyncRuntime; afterScriptExecutionHooks: Array<() => void>; keepAlivePromises: Array>; }; export type CageModule = { def: (ctx: CageModuleCtx) => void; }; export declare function defineCageModule(def: (ctx: CageModuleCtx) => void): CageModule; export declare function defineSandboxFn(ctx: CageModuleCtx, funcName: string, def: (...args: unknown[]) => unknown): QuickJSHandle; export declare function defineSandboxFunctionRaw(ctx: CageModuleCtx, funcName: string, def: (...args: QuickJSHandle[]) => QuickJSHandle): QuickJSHandle; type SandboxObjectDef = { [key: string]: QuickJSHandle | SandboxObjectDef; }; export declare function defineSandboxObject(ctx: CageModuleCtx, def: SandboxObjectDef): QuickJSHandle; export {};