import type { QuickJSContext, QuickJSHandle, VmFunctionImplementation } from 'quickjs-emscripten-core'; export type QuickJSContextEx = QuickJSContext & { disposeEx?: () => void; }; export declare const wrapContext: (ctx: QuickJSContext) => QuickJSContextEx; export declare class ContextEx { context: QuickJSContext; fn: QuickJSHandle; fnGenerator: QuickJSHandle; fnCounter: number; fnMap: Map>; constructor(context: QuickJSContext); disposeEx(): void; /** Similar to the original newFunction, but no matter how many new functions are generated, newFunction is called only once. */ newFunction: (name: string, fn: VmFunctionImplementation) => QuickJSHandle; }