import { DecryptedItemInterface, KeySystemIdentifier, KeySystemRootKeyStorageMode, VaultListingInterface, } from '@standardnotes/models' import { AbstractService } from '../Service/AbstractService' import { VaultServiceEvent, VaultServiceEventPayload } from './VaultServiceEvent' import { ChangeVaultOptionsDTO } from './ChangeVaultOptionsDTO' export interface VaultServiceInterface extends AbstractService { createRandomizedVault(dto: { name: string description?: string storagePreference: KeySystemRootKeyStorageMode }): Promise createUserInputtedPasswordVault(dto: { name: string description?: string userInputtedPassword: string storagePreference: KeySystemRootKeyStorageMode }): Promise getVaults(): VaultListingInterface[] getVault(dto: { keySystemIdentifier: KeySystemIdentifier }): VaultListingInterface | undefined getLockedvaults(): VaultListingInterface[] deleteVault(vault: VaultListingInterface): Promise moveItemToVault( vault: VaultListingInterface, item: DecryptedItemInterface, ): Promise removeItemFromVault(item: DecryptedItemInterface): Promise isItemInVault(item: DecryptedItemInterface): boolean getItemVault(item: DecryptedItemInterface): VaultListingInterface | undefined changeVaultNameAndDescription( vault: VaultListingInterface, params: { name: string; description: string }, ): Promise rotateVaultRootKey(vault: VaultListingInterface): Promise changeVaultOptions(dto: ChangeVaultOptionsDTO): Promise isVaultLocked(vault: VaultListingInterface): boolean unlockNonPersistentVault(vault: VaultListingInterface, password: string): Promise }