import { FolderData } from '../models/data/folderData'; import { Folder } from '../models/domain/folder'; import { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey'; import { TreeNode } from '../models/domain/treeNode'; import { FolderView } from '../models/view/folderView'; export abstract class FolderService { decryptedFolderCache: FolderView[]; clearCache: () => void; encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise; get: (id: string) => Promise; getAll: () => Promise; getAllDecrypted: () => Promise; getAllNested: () => Promise>>; saveWithServer: (folder: Folder) => Promise; upsert: (folder: FolderData | FolderData[]) => Promise; replace: (folders: { [id: string]: FolderData; }) => Promise; clear: (userId: string) => Promise; delete: (id: string | string[]) => Promise; deleteWithServer: (id: string) => Promise; }