import type { FileMeta } from "../../type/index.ts"; /** * A generic interface used by `Space` to interact with the underlying storage, designed to be easy to implement for different storage backends */ export interface SpacePrimitives { fetchFileList(): Promise; /** * Retrieves metadata for a specific file. * @param path The path of the file to retrieve metadata for. * @param observing used to hint at the sync engine this file is under regular observation (and may sync more aggressively) */ getFileMeta(path: string, observing?: boolean): Promise; readFile( path: string, ): Promise<{ data: Uint8Array; meta: FileMeta }>; writeFile( path: string, data: Uint8Array, // May be ignored, but ideally should be used to set the lastModified time meta?: FileMeta, ): Promise; deleteFile(path: string): Promise; }