rc-js-util
Version:
A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.
97 lines • 2.79 kB
TypeScript
/**
* @public
* Copied from lib.dom.d.ts to avoid portability issues.
*/
export interface IWebAssemblyMemoryMemory {
readonly buffer: ArrayBuffer | SharedArrayBuffer;
grow(delta: number): number;
}
/**
* @public
* External lib.
*/
export declare namespace Emscripten {
/**
* @public
*/
type EnvironmentType = "WEB" | "NODE" | "SHELL" | "WORKER";
/**
* @public
*/
type WebAssemblyImports = Array<{
name: string;
kind: string;
}>;
/**
* @public
*/
type WebAssemblyExports = Array<{
module: string;
name: string;
kind: string;
}>;
/**
* @public
*/
interface EmscriptenModule {
wasmMemory: IWebAssemblyMemoryMemory;
print(str: string): void;
printErr(str: string): void;
arguments: string[];
environment: EnvironmentType;
preInit: Array<{
(): void;
}>;
preRun: Array<{
(): void;
}>;
postRun: Array<{
(): void;
}>;
onAbort: {
(what: any): void;
};
onRuntimeInitialized: {
(): void;
};
noInitialRun: boolean;
noExitRuntime: boolean;
logReadFiles: boolean;
filePackagePrefixURL: string;
wasmBinary: ArrayBuffer;
stringToNewUTF8(str: string): number;
UTF8ToString(ptr: number, maxBytesToRead?: number): string;
runtimeKeepalivePush?(): void;
runtimeKeepalivePop?(): void;
destroy(object: object): void;
getPreloadedPackage(remotePackageName: string, remotePackageSize: number): ArrayBuffer;
instantiateWasm(imports: WebAssemblyImports, successCallback: (module: IWebAssemblyMemoryMemory) => void): WebAssemblyExports;
locateFile(url: string, scriptDirectory: string): string;
HEAP: Int32Array;
IHEAP: Int32Array;
FHEAP: Float64Array;
HEAP8: Int8Array;
HEAP16: Int16Array;
HEAP32: Int32Array;
HEAPU8: Uint8Array;
HEAPU16: Uint16Array;
HEAPU32: Uint32Array;
HEAPF32: Float32Array;
HEAPF64: Float64Array;
TOTAL_STACK: number;
TOTAL_MEMORY: number;
FAST_MEMORY: number;
addOnPreRun(cb: () => any): void;
addOnInit(cb: () => any): void;
addOnPreMain(cb: () => any): void;
addOnExit(cb: () => any): void;
addOnPostRun(cb: () => any): void;
quit(status: number, error: unknown): void;
ASAN_OPTIONS?: string;
}
/**
* @public
*/
type EmscriptenModuleFactory<T extends object> = (moduleOverrides?: Partial<T & EmscriptenModule>) => Promise<EmscriptenModule & T>;
}
//# sourceMappingURL=emscripten.d.ts.map