export interface FileSystemGetFileOptions { create?: boolean; } interface FileSystemCreateWritableOptions { keepExistingData?: boolean; } interface FileSystemRemoveOptions { recursive?: boolean; } interface FileSystemFileHandle { getFile(): Promise; createWritable(options?: FileSystemCreateWritableOptions): Promise; } enum WriteCommandType { write = 'write', seek = 'seek', truncate = 'truncate', } interface WriteParams { type: WriteCommandType; size?: number; position?: number; data: BufferSource | Blob | string; } type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; interface FileSystemWritableFileStream extends WritableStream { write(data: FileSystemWriteChunkType): Promise; seek(position: number): Promise; truncate(size: number): Promise; close(): Promise; // should be implemented in WritableStream } export declare interface FileSystemDirectoryHandle { getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise; removeEntry(name: string, options?: FileSystemRemoveOptions): Promise; } declare global { interface Window { showDirectoryPicker?(): Promise; } }