import { BehaviorSubject, Observable } from "rxjs"; import { KdfType } from "../enums/kdfType"; import { ThemeType } from "../enums/themeType"; import { UriMatchType } from "../enums/uriMatchType"; import { CipherData } from "../models/data/cipher.data"; import { CollectionData } from "../models/data/collection.data"; import { EncryptedOrganizationKeyData } from "../models/data/encrypted-organization-key.data"; import { EventData } from "../models/data/event.data"; import { FolderData } from "../models/data/folder.data"; import { LocalData } from "../models/data/local.data"; import { OrganizationData } from "../models/data/organization.data"; import { PolicyData } from "../models/data/policy.data"; import { ProviderData } from "../models/data/provider.data"; import { SendData } from "../models/data/send.data"; import { ServerConfigData } from "../models/data/server-config.data"; import { Account, AccountSettingsSettings } from "../models/domain/account"; import { EncString } from "../models/domain/enc-string"; import { EnvironmentUrls } from "../models/domain/environment-urls"; import { GeneratedPasswordHistory } from "../models/domain/generated-password-history"; import { Policy } from "../models/domain/policy"; import { StorageOptions } from "../models/domain/storage-options"; import { SymmetricCryptoKey } from "../models/domain/symmetric-crypto-key"; import { WindowState } from "../models/domain/window-state"; import { CipherView } from "../models/view/cipher.view"; import { CollectionView } from "../models/view/collection.view"; import { SendView } from "../models/view/send.view"; export abstract class StateService { accounts: BehaviorSubject<{ [userId: string]: T }>; activeAccount$: Observable; activeAccountUnlocked$: Observable; addAccount: (account: T) => Promise; setActiveUser: (userId: string) => Promise; clean: (options?: StorageOptions) => Promise; init: () => Promise; getAccessToken: (options?: StorageOptions) => Promise; setAccessToken: (value: string, options?: StorageOptions) => Promise; getAddEditCipherInfo: (options?: StorageOptions) => Promise; setAddEditCipherInfo: (value: any, options?: StorageOptions) => Promise; getAlwaysShowDock: (options?: StorageOptions) => Promise; setAlwaysShowDock: (value: boolean, options?: StorageOptions) => Promise; getApiKeyClientId: (options?: StorageOptions) => Promise; setApiKeyClientId: (value: string, options?: StorageOptions) => Promise; getApiKeyClientSecret: (options?: StorageOptions) => Promise; setApiKeyClientSecret: (value: string, options?: StorageOptions) => Promise; getAutoConfirmFingerPrints: (options?: StorageOptions) => Promise; setAutoConfirmFingerprints: (value: boolean, options?: StorageOptions) => Promise; getAutoFillOnPageLoadDefault: (options?: StorageOptions) => Promise; setAutoFillOnPageLoadDefault: (value: boolean, options?: StorageOptions) => Promise; getBiometricAwaitingAcceptance: (options?: StorageOptions) => Promise; setBiometricAwaitingAcceptance: (value: boolean, options?: StorageOptions) => Promise; getBiometricFingerprintValidated: (options?: StorageOptions) => Promise; setBiometricFingerprintValidated: (value: boolean, options?: StorageOptions) => Promise; getBiometricText: (options?: StorageOptions) => Promise; setBiometricText: (value: string, options?: StorageOptions) => Promise; getBiometricUnlock: (options?: StorageOptions) => Promise; setBiometricUnlock: (value: boolean, options?: StorageOptions) => Promise; getCanAccessPremium: (options?: StorageOptions) => Promise; getHasPremiumPersonally: (options?: StorageOptions) => Promise; setHasPremiumPersonally: (value: boolean, options?: StorageOptions) => Promise; setHasPremiumFromOrganization: (value: boolean, options?: StorageOptions) => Promise; getHasPremiumFromOrganization: (options?: StorageOptions) => Promise; getClearClipboard: (options?: StorageOptions) => Promise; setClearClipboard: (value: number, options?: StorageOptions) => Promise; getCollapsedGroupings: (options?: StorageOptions) => Promise; setCollapsedGroupings: (value: string[], options?: StorageOptions) => Promise; getConvertAccountToKeyConnector: (options?: StorageOptions) => Promise; setConvertAccountToKeyConnector: (value: boolean, options?: StorageOptions) => Promise; getCryptoMasterKey: (options?: StorageOptions) => Promise; setCryptoMasterKey: (value: SymmetricCryptoKey, options?: StorageOptions) => Promise; getCryptoMasterKeyAuto: (options?: StorageOptions) => Promise; setCryptoMasterKeyAuto: (value: string, options?: StorageOptions) => Promise; getCryptoMasterKeyB64: (options?: StorageOptions) => Promise; setCryptoMasterKeyB64: (value: string, options?: StorageOptions) => Promise; getCryptoMasterKeyBiometric: (options?: StorageOptions) => Promise; hasCryptoMasterKeyBiometric: (options?: StorageOptions) => Promise; setCryptoMasterKeyBiometric: (value: string, options?: StorageOptions) => Promise; getDecryptedCiphers: (options?: StorageOptions) => Promise; setDecryptedCiphers: (value: CipherView[], options?: StorageOptions) => Promise; getDecryptedCollections: (options?: StorageOptions) => Promise; setDecryptedCollections: (value: CollectionView[], options?: StorageOptions) => Promise; getDecryptedCryptoSymmetricKey: (options?: StorageOptions) => Promise; setDecryptedCryptoSymmetricKey: ( value: SymmetricCryptoKey, options?: StorageOptions ) => Promise; getDecryptedOrganizationKeys: ( options?: StorageOptions ) => Promise>; setDecryptedOrganizationKeys: ( value: Map, options?: StorageOptions ) => Promise; getDecryptedPasswordGenerationHistory: ( options?: StorageOptions ) => Promise; setDecryptedPasswordGenerationHistory: ( value: GeneratedPasswordHistory[], options?: StorageOptions ) => Promise; getDecryptedPinProtected: (options?: StorageOptions) => Promise; setDecryptedPinProtected: (value: EncString, options?: StorageOptions) => Promise; /** * @deprecated Do not call this, use PolicyService */ getDecryptedPolicies: (options?: StorageOptions) => Promise; /** * @deprecated Do not call this, use PolicyService */ setDecryptedPolicies: (value: Policy[], options?: StorageOptions) => Promise; getDecryptedPrivateKey: (options?: StorageOptions) => Promise; setDecryptedPrivateKey: (value: ArrayBuffer, options?: StorageOptions) => Promise; getDecryptedProviderKeys: (options?: StorageOptions) => Promise>; setDecryptedProviderKeys: ( value: Map, options?: StorageOptions ) => Promise; getDecryptedSends: (options?: StorageOptions) => Promise; setDecryptedSends: (value: SendView[], options?: StorageOptions) => Promise; getDefaultUriMatch: (options?: StorageOptions) => Promise; setDefaultUriMatch: (value: UriMatchType, options?: StorageOptions) => Promise; getDisableAddLoginNotification: (options?: StorageOptions) => Promise; setDisableAddLoginNotification: (value: boolean, options?: StorageOptions) => Promise; getDisableAutoBiometricsPrompt: (options?: StorageOptions) => Promise; setDisableAutoBiometricsPrompt: (value: boolean, options?: StorageOptions) => Promise; getDisableAutoTotpCopy: (options?: StorageOptions) => Promise; setDisableAutoTotpCopy: (value: boolean, options?: StorageOptions) => Promise; getDisableBadgeCounter: (options?: StorageOptions) => Promise; setDisableBadgeCounter: (value: boolean, options?: StorageOptions) => Promise; getDisableChangedPasswordNotification: (options?: StorageOptions) => Promise; setDisableChangedPasswordNotification: ( value: boolean, options?: StorageOptions ) => Promise; getDisableContextMenuItem: (options?: StorageOptions) => Promise; setDisableContextMenuItem: (value: boolean, options?: StorageOptions) => Promise; getDisableFavicon: (options?: StorageOptions) => Promise; setDisableFavicon: (value: boolean, options?: StorageOptions) => Promise; getDisableGa: (options?: StorageOptions) => Promise; setDisableGa: (value: boolean, options?: StorageOptions) => Promise; getDontShowCardsCurrentTab: (options?: StorageOptions) => Promise; setDontShowCardsCurrentTab: (value: boolean, options?: StorageOptions) => Promise; getDontShowIdentitiesCurrentTab: (options?: StorageOptions) => Promise; setDontShowIdentitiesCurrentTab: (value: boolean, options?: StorageOptions) => Promise; getDuckDuckGoSharedKey: (options?: StorageOptions) => Promise; setDuckDuckGoSharedKey: (value: string, options?: StorageOptions) => Promise; getEmail: (options?: StorageOptions) => Promise; setEmail: (value: string, options?: StorageOptions) => Promise; getEmailVerified: (options?: StorageOptions) => Promise; setEmailVerified: (value: boolean, options?: StorageOptions) => Promise; getEnableAlwaysOnTop: (options?: StorageOptions) => Promise; setEnableAlwaysOnTop: (value: boolean, options?: StorageOptions) => Promise; getEnableAutoFillOnPageLoad: (options?: StorageOptions) => Promise; setEnableAutoFillOnPageLoad: (value: boolean, options?: StorageOptions) => Promise; getEnableBiometric: (options?: StorageOptions) => Promise; setEnableBiometric: (value: boolean, options?: StorageOptions) => Promise; getEnableBrowserIntegration: (options?: StorageOptions) => Promise; setEnableBrowserIntegration: (value: boolean, options?: StorageOptions) => Promise; getEnableBrowserIntegrationFingerprint: (options?: StorageOptions) => Promise; setEnableBrowserIntegrationFingerprint: ( value: boolean, options?: StorageOptions ) => Promise; getEnableCloseToTray: (options?: StorageOptions) => Promise; setEnableCloseToTray: (value: boolean, options?: StorageOptions) => Promise; getEnableDuckDuckGoBrowserIntegration: (options?: StorageOptions) => Promise; setEnableDuckDuckGoBrowserIntegration: ( value: boolean, options?: StorageOptions ) => Promise; getEnableFullWidth: (options?: StorageOptions) => Promise; setEnableFullWidth: (value: boolean, options?: StorageOptions) => Promise; getEnableMinimizeToTray: (options?: StorageOptions) => Promise; setEnableMinimizeToTray: (value: boolean, options?: StorageOptions) => Promise; getEnableStartToTray: (options?: StorageOptions) => Promise; setEnableStartToTray: (value: boolean, options?: StorageOptions) => Promise; getEnableTray: (options?: StorageOptions) => Promise; setEnableTray: (value: boolean, options?: StorageOptions) => Promise; getEncryptedCiphers: (options?: StorageOptions) => Promise<{ [id: string]: CipherData }>; setEncryptedCiphers: ( value: { [id: string]: CipherData }, options?: StorageOptions ) => Promise; getEncryptedCollections: (options?: StorageOptions) => Promise<{ [id: string]: CollectionData }>; setEncryptedCollections: ( value: { [id: string]: CollectionData }, options?: StorageOptions ) => Promise; getEncryptedCryptoSymmetricKey: (options?: StorageOptions) => Promise; setEncryptedCryptoSymmetricKey: (value: string, options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use FolderService */ getEncryptedFolders: (options?: StorageOptions) => Promise<{ [id: string]: FolderData }>; /** * @deprecated Do not call this directly, use FolderService */ setEncryptedFolders: ( value: { [id: string]: FolderData }, options?: StorageOptions ) => Promise; getEncryptedOrganizationKeys: ( options?: StorageOptions ) => Promise<{ [orgId: string]: EncryptedOrganizationKeyData }>; setEncryptedOrganizationKeys: ( value: { [orgId: string]: EncryptedOrganizationKeyData }, options?: StorageOptions ) => Promise; getEncryptedPasswordGenerationHistory: ( options?: StorageOptions ) => Promise; setEncryptedPasswordGenerationHistory: ( value: GeneratedPasswordHistory[], options?: StorageOptions ) => Promise; getEncryptedPinProtected: (options?: StorageOptions) => Promise; setEncryptedPinProtected: (value: string, options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use PolicyService */ getEncryptedPolicies: (options?: StorageOptions) => Promise<{ [id: string]: PolicyData }>; /** * @deprecated Do not call this directly, use PolicyService */ setEncryptedPolicies: ( value: { [id: string]: PolicyData }, options?: StorageOptions ) => Promise; getEncryptedPrivateKey: (options?: StorageOptions) => Promise; setEncryptedPrivateKey: (value: string, options?: StorageOptions) => Promise; getEncryptedProviderKeys: (options?: StorageOptions) => Promise; setEncryptedProviderKeys: (value: any, options?: StorageOptions) => Promise; getEncryptedSends: (options?: StorageOptions) => Promise<{ [id: string]: SendData }>; setEncryptedSends: (value: { [id: string]: SendData }, options?: StorageOptions) => Promise; getEntityId: (options?: StorageOptions) => Promise; setEntityId: (value: string, options?: StorageOptions) => Promise; getEntityType: (options?: StorageOptions) => Promise; setEntityType: (value: string, options?: StorageOptions) => Promise; getEnvironmentUrls: (options?: StorageOptions) => Promise; setEnvironmentUrls: (value: EnvironmentUrls, options?: StorageOptions) => Promise; getEquivalentDomains: (options?: StorageOptions) => Promise; setEquivalentDomains: (value: string, options?: StorageOptions) => Promise; getEventCollection: (options?: StorageOptions) => Promise; setEventCollection: (value: EventData[], options?: StorageOptions) => Promise; getEverBeenUnlocked: (options?: StorageOptions) => Promise; setEverBeenUnlocked: (value: boolean, options?: StorageOptions) => Promise; getForcePasswordReset: (options?: StorageOptions) => Promise; setForcePasswordReset: (value: boolean, options?: StorageOptions) => Promise; getInstalledVersion: (options?: StorageOptions) => Promise; setInstalledVersion: (value: string, options?: StorageOptions) => Promise; getIsAuthenticated: (options?: StorageOptions) => Promise; getKdfIterations: (options?: StorageOptions) => Promise; setKdfIterations: (value: number, options?: StorageOptions) => Promise; getKdfType: (options?: StorageOptions) => Promise; setKdfType: (value: KdfType, options?: StorageOptions) => Promise; getKeyHash: (options?: StorageOptions) => Promise; setKeyHash: (value: string, options?: StorageOptions) => Promise; getLastActive: (options?: StorageOptions) => Promise; setLastActive: (value: number, options?: StorageOptions) => Promise; getLastSync: (options?: StorageOptions) => Promise; setLastSync: (value: string, options?: StorageOptions) => Promise; getLocalData: (options?: StorageOptions) => Promise<{ [cipherId: string]: LocalData }>; setLocalData: ( value: { [cipherId: string]: LocalData }, options?: StorageOptions ) => Promise; getLocale: (options?: StorageOptions) => Promise; setLocale: (value: string, options?: StorageOptions) => Promise; getMainWindowSize: (options?: StorageOptions) => Promise; setMainWindowSize: (value: number, options?: StorageOptions) => Promise; getMinimizeOnCopyToClipboard: (options?: StorageOptions) => Promise; setMinimizeOnCopyToClipboard: (value: boolean, options?: StorageOptions) => Promise; getNeverDomains: (options?: StorageOptions) => Promise<{ [id: string]: any }>; setNeverDomains: (value: { [id: string]: any }, options?: StorageOptions) => Promise; getNoAutoPromptBiometrics: (options?: StorageOptions) => Promise; setNoAutoPromptBiometrics: (value: boolean, options?: StorageOptions) => Promise; getNoAutoPromptBiometricsText: (options?: StorageOptions) => Promise; setNoAutoPromptBiometricsText: (value: string, options?: StorageOptions) => Promise; getOpenAtLogin: (options?: StorageOptions) => Promise; setOpenAtLogin: (value: boolean, options?: StorageOptions) => Promise; getOrganizationInvitation: (options?: StorageOptions) => Promise; setOrganizationInvitation: (value: any, options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use OrganizationService */ getOrganizations: (options?: StorageOptions) => Promise<{ [id: string]: OrganizationData }>; /** * @deprecated Do not call this directly, use OrganizationService */ setOrganizations: ( value: { [id: string]: OrganizationData }, options?: StorageOptions ) => Promise; getPasswordGenerationOptions: (options?: StorageOptions) => Promise; setPasswordGenerationOptions: (value: any, options?: StorageOptions) => Promise; getUsernameGenerationOptions: (options?: StorageOptions) => Promise; setUsernameGenerationOptions: (value: any, options?: StorageOptions) => Promise; getGeneratorOptions: (options?: StorageOptions) => Promise; setGeneratorOptions: (value: any, options?: StorageOptions) => Promise; getProtectedPin: (options?: StorageOptions) => Promise; setProtectedPin: (value: string, options?: StorageOptions) => Promise; getProviders: (options?: StorageOptions) => Promise<{ [id: string]: ProviderData }>; setProviders: (value: { [id: string]: ProviderData }, options?: StorageOptions) => Promise; getPublicKey: (options?: StorageOptions) => Promise; setPublicKey: (value: ArrayBuffer, options?: StorageOptions) => Promise; getRefreshToken: (options?: StorageOptions) => Promise; setRefreshToken: (value: string, options?: StorageOptions) => Promise; getRememberedEmail: (options?: StorageOptions) => Promise; setRememberedEmail: (value: string, options?: StorageOptions) => Promise; getSecurityStamp: (options?: StorageOptions) => Promise; setSecurityStamp: (value: string, options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use SettingsService */ getSettings: (options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use SettingsService */ setSettings: (value: AccountSettingsSettings, options?: StorageOptions) => Promise; getSsoCodeVerifier: (options?: StorageOptions) => Promise; setSsoCodeVerifier: (value: string, options?: StorageOptions) => Promise; getSsoOrgIdentifier: (options?: StorageOptions) => Promise; setSsoOrganizationIdentifier: (value: string, options?: StorageOptions) => Promise; getSsoState: (options?: StorageOptions) => Promise; setSsoState: (value: string, options?: StorageOptions) => Promise; getTheme: (options?: StorageOptions) => Promise; setTheme: (value: ThemeType, options?: StorageOptions) => Promise; getTwoFactorToken: (options?: StorageOptions) => Promise; setTwoFactorToken: (value: string, options?: StorageOptions) => Promise; getUserId: (options?: StorageOptions) => Promise; getUsesKeyConnector: (options?: StorageOptions) => Promise; setUsesKeyConnector: (vaule: boolean, options?: StorageOptions) => Promise; getVaultTimeout: (options?: StorageOptions) => Promise; setVaultTimeout: (value: number, options?: StorageOptions) => Promise; getVaultTimeoutAction: (options?: StorageOptions) => Promise; setVaultTimeoutAction: (value: string, options?: StorageOptions) => Promise; getStateVersion: () => Promise; setStateVersion: (value: number) => Promise; getWindow: () => Promise; setWindow: (value: WindowState) => Promise; /** * @deprecated Do not call this directly, use ConfigService */ getServerConfig: (options?: StorageOptions) => Promise; /** * @deprecated Do not call this directly, use ConfigService */ setServerConfig: (value: ServerConfigData, options?: StorageOptions) => Promise; }