blob: 3f8547d61739f94ce3f9cb1e193c0221948739ed [file] [log] [blame]
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
export = Wasm;
declare function Wasm(_: Wasm.ModuleArgs): Wasm.Module;
// See https://kripken.github.io/emscripten-site/docs/api_reference/module.html
declare namespace Wasm {
export interface InitWasm {
(_: ModuleArgs): Module;
}
export interface FileSystemType {}
export interface FileSystemTypes {
MEMFS: FileSystemType;
IDBFS: FileSystemType;
WORKERFS: FileSystemType;
}
export interface FileSystemNode {
contents: Uint8Array;
usedBytes?: number;
}
export interface FileSystem {
mkdir(path: string, mode?: number): any;
mount(type: Wasm.FileSystemType, opts: any, mountpoint: string): any;
unmount(mountpoint: string): void;
unlink(mountpoint: string): void;
lookupPath(path: string): {path: string, node: Wasm.FileSystemNode};
filesystems: Wasm.FileSystemTypes;
}
export interface Module {
callMain(args: string[]): void;
addFunction(f: any, argTypes: string): void;
ccall(
ident: string,
returnType: string,
argTypes: string[],
args: any[],
): number;
HEAPU8: Uint8Array;
FS: FileSystem;
}
export interface ModuleArgs {
noInitialRun?: boolean;
locateFile(s: string): string;
print(s: string): void;
printErr(s: string): void;
onRuntimeInitialized(): void;
onAbort?(): void;
}
}