import type { QuickJSContext, QuickJSDeferredPromise, QuickJSHandle } from 'quickjs-emscripten-core'; export type Options = { ctx: QuickJSContext; unmarshal: (handle: QuickJSHandle) => unknown; isMarshalable?: (target: unknown) => boolean | 'json'; find: (target: unknown) => QuickJSHandle | undefined; pre: (target: unknown, handle: QuickJSHandle | QuickJSDeferredPromise, mode: true | 'json' | undefined) => QuickJSHandle | undefined; preApply?: (target: Function, thisArg: unknown, args: unknown[]) => any; custom?: Iterable<(obj: unknown, ctx: QuickJSContext) => QuickJSHandle | undefined>; }; export declare function marshal(target: unknown, options: Options): QuickJSHandle; export default marshal;