import { BehaviorSubject } from 'rxjs'; import { KdfType } from '../enums/kdfType'; import { UriMatchType } from '../enums/uriMatchType'; import { CipherData } from '../models/data/cipherData'; import { CollectionData } from '../models/data/collectionData'; import { EventData } from '../models/data/eventData'; import { FolderData } from '../models/data/folderData'; import { OrganizationData } from '../models/data/organizationData'; import { PolicyData } from '../models/data/policyData'; import { ProviderData } from '../models/data/providerData'; import { SendData } from '../models/data/sendData'; import { Account } from '../models/domain/account'; import { EncString } from '../models/domain/encString'; import { GeneratedPasswordHistory } from '../models/domain/generatedPasswordHistory'; import { Policy } from '../models/domain/policy'; import { StorageOptions } from '../models/domain/storageOptions'; import { SymmetricCryptoKey } from '../models/domain/symmetricCryptoKey'; import { CipherView } from '../models/view/cipherView'; import { CollectionView } from '../models/view/collectionView'; import { FolderView } from '../models/view/folderView'; import { SendView } from '../models/view/sendView'; export abstract class StateService { accounts: BehaviorSubject<{ [userId: string]: Account }>; addAccount: (account: Account) => Promise; setActiveUser: (userId: string) => Promise; clean: (options?: StorageOptions) => 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; getBiometricLocked: (options?: StorageOptions) => Promise; setBiometricLocked: (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; getClearClipboard: (options?: StorageOptions) => Promise; setClearClipboard: (value: number, options?: StorageOptions) => Promise; getCollapsedGroupings: (options?: StorageOptions) => Promise>; setCollapsedGroupings: (value: Set, options?: StorageOptions) => Promise; getConvertAccountToKeyConnector: (options?: StorageOptions) => Promise; setConvertAccountToKeyConnector: (value: boolean, options?: StorageOptions) => Promise; getCryptoMasterKey: (options?: StorageOptions) => Promise; setCryptoMasterKey: (value: SymmetricCryptoKey, options?: StorageOptions) => Promise; getCryptoMasterKeyB64: (options: StorageOptions) => Promise; setCryptoMasterKeyB64: (value: string, options: StorageOptions) => Promise; getDecodedToken: (options?: StorageOptions) => Promise; setDecodedToken: (value: any, 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; getDecryptedFolders: (options?: StorageOptions) => Promise; setDecryptedFolders: (value: FolderView[], 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; getDecryptedPolicies: (options?: StorageOptions) => Promise; 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; 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; getEnableFullWidth: (options?: StorageOptions) => Promise; setEnableFullWidth: (value: boolean, options?: StorageOptions) => Promise; getEnableGravitars: (options?: StorageOptions) => Promise; setEnableGravitars: (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; getEncryptedFolders: (options?: StorageOptions) => Promise<{ [id: string]: FolderData }>; setEncryptedFolders: (value: { [id: string]: FolderData }, options?: StorageOptions) => Promise; getEncryptedOrganizationKeys: (options?: StorageOptions) => Promise; setEncryptedOrganizationKeys: (value: Map, options?: StorageOptions) => Promise; getEncryptedPasswordGenerationHistory: (options?: StorageOptions) => Promise; setEncryptedPasswordGenerationHistory: (value: GeneratedPasswordHistory[], options?: StorageOptions) => Promise; getEncryptedPinProtected: (options?: StorageOptions) => Promise; setEncryptedPinProtected: (value: string, options?: StorageOptions) => Promise; getEncryptedPolicies: (options?: StorageOptions) => Promise<{ [id: string]: PolicyData }>; 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: any, 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; getLegacyEtmKey: (options?: StorageOptions) => Promise; setLegacyEtmKey: (value: SymmetricCryptoKey, options?: StorageOptions) => Promise; getLocalData: (options?: StorageOptions) => Promise; setLocalData: (value: string, options?: StorageOptions) => Promise; getLocale: (options?: StorageOptions) => Promise; setLocale: (value: string, options?: StorageOptions) => Promise; getLoginRedirect: (options?: StorageOptions) => Promise; setLoginRedirect: (value: any, 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; getOrganizations: (options?: StorageOptions) => Promise<{ [id: string]: OrganizationData }>; setOrganizations: (value: { [id: string]: OrganizationData }, options?: StorageOptions) => Promise; getPasswordGenerationOptions: (options?: StorageOptions) => Promise; setPasswordGenerationOptions: (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; getSettings: (options?: StorageOptions) => Promise; setSettings: (value: string, 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: string, 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; getWindow: () => Promise>; setWindow: (value: Map) => Promise; }