(factory: (...args: P) => T, ...args: P): T;
dealloc(id: number | bigint): void;
}
export declare class BaseArrayStore (factory: (...args: P) => T, ...args: P): T;
dealloc(id: number | bigint): void;
dispose(): void;
}
export declare type CleanupHookCallbackFunction = number | ((arg: number) => void);
export declare class Context {
private _isStopping;
private _canCallIntoJs;
private _suppressDestroy;
private envStore;
refStore: Map (factory: (...args: P) => T, ...args: P): T;
dealloc(id: number | bigint): void;
}
export declare class ObjectTemplate extends Template {
Ctor: any;
internalFieldCount: number;
private _accessors;
constructor(ctx: Isolate, Ctor?: any);
setAccessor(name: string | symbol, getterWrap: (property: Ptr, info: Ptr, getter: Ptr) => Ptr, setterWrap: (property: Ptr, value: Ptr, info: Ptr, setter: Ptr) => Ptr, getter: Ptr, setter: Ptr, data: any, attribute: number, getterSideEffectType: number, setterSideEffectType: number): void;
setInternalFieldCount(value: number): void;
applyToInstance(instance: any): void;
newInstance(_context: any): any;
}
export declare class Persistent (param: P, callback: (param: P) => void): void;
clearWeak(): void;
reset(): void;
resetTo(value: T): void;
isEmpty(): boolean;
deref(): T | undefined;
}
export declare class PersistentStore extends ArrayStore(value: S): IReferenceBinding;
getObjectBinding(value: S): IReferenceBinding;
setInstanceData(data: number, finalize_cb: number, finalize_hint: number): void;
getInstanceData(): number | bigint;
}
export declare interface EnvNativeBridge {
address: number;
deleteEnv: (ptr: number) => void;
setLastError: (env: napi_env, error_code: napi_status, engine_error_code: uint32_t, engine_reserved: number) => void;
makeDynCall_vppp: (cb: Ptr) => (a: Ptr, b: Ptr, c: Ptr) => void;
makeDynCall_vp: (cb: Ptr) => (a: Ptr) => void;
abort: (msg?: string) => never;
wasm64?: boolean;
}
declare interface External_2 extends Record(value: S): number;
erase(start: number, end: number, weak: boolean): void;
swap(a: number, b: number): void;
}
export declare function hasPrivate(obj: any, key: Private): boolean;
export declare interface ICallbackInfo {
thiz: any;
holder: any;
data: void_p;
args: ArrayLike