import { Observable } from "rxjs"; import { FolderData } from "../../models/data/folder.data"; import { Folder } from "../../models/domain/folder"; import { SymmetricCryptoKey } from "../../models/domain/symmetric-crypto-key"; import { FolderView } from "../../models/view/folder.view"; export abstract class FolderService { folders$: Observable; folderViews$: Observable; clearCache: () => Promise; encrypt: (model: FolderView, key?: SymmetricCryptoKey) => Promise; get: (id: string) => Promise; getAllFromState: () => Promise; /** * @deprecated Only use in CLI! */ getFromState: (id: string) => Promise; /** * @deprecated Only use in CLI! */ getAllDecryptedFromState: () => Promise; } export abstract class InternalFolderService extends FolderService { upsert: (folder: FolderData | FolderData[]) => Promise; replace: (folders: { [id: string]: FolderData }) => Promise; clear: (userId: string) => Promise; delete: (id: string | string[]) => Promise; }