import { EncryptAndUploadFileOperation } from '../Operations/EncryptAndUpload' import { FileItem, FileMetadata, VaultListingInterface, SharedVaultListingInterface } from '@standardnotes/models' import { ClientDisplayableError } from '@standardnotes/responses' import { FileDownloadProgress } from '../Types/FileDownloadProgress' import { FileSystemApi } from '../Api/FileSystemApi' import { FileHandleRead } from '../Api/FileHandleRead' import { FileSystemNoSelection } from '../Api/FileSystemNoSelection' import { FileBackupMetadataFile } from '../Device/FileBackupMetadataFile' export interface FilesClientInterface { minimumChunkSize(): number beginNewFileUpload( sizeInBytes: number, vault?: VaultListingInterface, ): Promise pushBytesForUpload( operation: EncryptAndUploadFileOperation, bytes: Uint8Array, chunkId: number, isFinalChunk: boolean, ): Promise finishUpload( operation: EncryptAndUploadFileOperation, fileMetadata: FileMetadata, uuid: string, ): Promise downloadFile( file: FileItem, onDecryptedBytes: (bytes: Uint8Array, progress: FileDownloadProgress) => Promise, ): Promise deleteFile(file: FileItem): Promise moveFileToSharedVault( file: FileItem, sharedVault: SharedVaultListingInterface, ): Promise moveFileOutOfSharedVault(file: FileItem): Promise selectFile(fileSystem: FileSystemApi): Promise isFileNameFileBackupRelated(name: string): 'metadata' | 'binary' | false decryptBackupMetadataFile(metdataFile: FileBackupMetadataFile): Promise readBackupFileAndSaveDecrypted( fileHandle: FileHandleRead, file: FileItem, fileSystem: FileSystemApi, ): Promise<'success' | 'aborted' | 'failed'> readBackupFileBytesDecrypted( fileHandle: FileHandleRead, file: FileItem, fileSystem: FileSystemApi, ): Promise }