import { ApplicationIdentifier, ContentType } from '@standardnotes/common' import { BackupFile, DecryptedItemInterface, ItemStream, Platform, PrefKey, PrefValue } from '@standardnotes/models' import { FilesClientInterface } from '@standardnotes/files' import { AlertService } from '../Alert/AlertService' import { ComponentManagerInterface } from '../Component/ComponentManagerInterface' import { ApplicationEvent } from '../Event/ApplicationEvent' import { ApplicationEventCallback } from '../Event/ApplicationEventCallback' import { FeaturesClientInterface } from '../Feature/FeaturesClientInterface' import { SubscriptionClientInterface } from '../Subscription/SubscriptionClientInterface' import { DeviceInterface } from '../Device/DeviceInterface' import { WorkspaceClientInterface } from '../Workspace/WorkspaceClientInterface' import { ItemsClientInterface } from '../Item/ItemsClientInterface' import { MutatorClientInterface } from '../Mutator/MutatorClientInterface' import { StorageValueModes } from '../Storage/StorageTypes' import { DeinitMode } from './DeinitMode' import { DeinitSource } from './DeinitSource' import { UserClientInterface } from '../User/UserClientInterface' export interface ApplicationInterface { deinit(mode: DeinitMode, source: DeinitSource): void getDeinitMode(): DeinitMode isStarted(): boolean isLaunched(): boolean addEventObserver(callback: ApplicationEventCallback, singleEvent?: ApplicationEvent): () => void hasProtectionSources(): boolean createEncryptedBackupFileForAutomatedDesktopBackups(): Promise createEncryptedBackupFile(): Promise createDecryptedBackupFile(): Promise hasPasscode(): boolean lock(): Promise softLockBiometrics(): void setValue(key: string, value: unknown, mode?: StorageValueModes): void getValue(key: string, mode?: StorageValueModes): unknown removeValue(key: string, mode?: StorageValueModes): Promise isLocked(): Promise getPreference(key: K): PrefValue[K] | undefined getPreference(key: K, defaultValue: PrefValue[K]): PrefValue[K] getPreference(key: K, defaultValue?: PrefValue[K]): PrefValue[K] | undefined setPreference(key: K, value: PrefValue[K]): Promise streamItems( contentType: ContentType | ContentType[], stream: ItemStream, ): () => void hasAccount(): boolean get features(): FeaturesClientInterface get componentManager(): ComponentManagerInterface get items(): ItemsClientInterface get mutator(): MutatorClientInterface get user(): UserClientInterface get files(): FilesClientInterface get subscriptions(): SubscriptionClientInterface get workspaces(): WorkspaceClientInterface readonly identifier: ApplicationIdentifier readonly platform: Platform deviceInterface: DeviceInterface alertService: AlertService }