import { Plug } from "../../plugos/plug.ts"; import { FileMeta } from "../types.ts"; export type FileEncoding = "utf8" | "arraybuffer" | "dataurl"; export type FileData = ArrayBuffer | string; export interface SpacePrimitives { // Returns a list of file meta data as well as the timestamp of this snapshot fetchFileList(): Promise; readFile( name: string, encoding: FileEncoding, ): Promise<{ data: FileData; meta: FileMeta }>; getFileMeta(name: string): Promise; writeFile( name: string, encoding: FileEncoding, data: FileData, // Used to decide whether or not to emit change events selfUpdate?: boolean, ): Promise; deleteFile(name: string): Promise; // Plugs proxySyscall(plug: Plug, name: string, args: any[]): Promise; invokeFunction( plug: Plug, env: string, name: string, args: any[], ): Promise; }