export interface FileMetaData { path: string; id: string; contentSize: number; } export interface FileService { list(): AsyncIterable; createFromFullContent( path: string, content: string | Uint8Array, ): Promise; createFromReader(path: string, content: Deno.Reader): Promise; getRawContentByPath(path: string): Promise; getContentByPath(path: string): Promise; getContentById(id: string): Promise; getMetaDataByID(id: string): Promise; renameById(id: string, newPath: string): Promise; renameByPath( originalPath: string, newPath: string, ): Promise; deleteById(id: string): Promise; } export interface BlobService { persistBlob(index: string, content: Uint8Array): Promise; persistReader(index: string, content: Deno.Reader): Promise; readAllBlob(index: string): Promise; getBlob(index: string): Deno.Reader; getNumberOfChunks(index: string): Promise; } export type Vector3D = [x: number, y: number, z: number]; export interface WaveFrontService { scaleAndTranslate(objFile: Deno.Reader, scale: Vector3D, translate: Vector3D): Deno.Reader }