// File System Access API // Specification: https://wicg.github.io/file-system-access/ // Repository: https://github.com/WICG/file-system-access /// type FileSystemPermissionMode = ( | "read" | "readwrite" ); interface FileSystemPermissionDescriptor extends PermissionDescriptor { handle: FileSystemHandle; mode?: FileSystemPermissionMode; } interface FileSystemHandlePermissionDescriptor { mode?: FileSystemPermissionMode; } interface FileSystemHandle { queryPermission(descriptor?: FileSystemHandlePermissionDescriptor): Promise; requestPermission(descriptor?: FileSystemHandlePermissionDescriptor): Promise; } type WellKnownDirectory = ( | "desktop" | "documents" | "downloads" | "music" | "pictures" | "videos" ); type StartInDirectory = WellKnownDirectory | FileSystemHandle; interface FilePickerAcceptType { description?: string; accept?: Record; } interface FilePickerOptions { types?: FilePickerAcceptType[]; excludeAcceptAllOption?: boolean; id?: string; startIn?: StartInDirectory; } interface OpenFilePickerOptions extends FilePickerOptions { multiple?: boolean; } interface SaveFilePickerOptions extends FilePickerOptions { suggestedName?: string; } interface DirectoryPickerOptions { id?: string; startIn?: StartInDirectory; mode?: FileSystemPermissionMode; } declare function showOpenFilePicker(options?: OpenFilePickerOptions): Promise; declare function showSaveFilePicker(options?: SaveFilePickerOptions): Promise; declare function showDirectoryPicker(options?: DirectoryPickerOptions): Promise; interface DataTransferItem { getAsFileSystemHandle(): Promise; }