import { FullyFormedPayloadInterface, PayloadInterface, RootKeyInterface, FullyFormedTransferPayload, } from '@standardnotes/models' import { StoragePersistencePolicies, StorageValueModes } from './StorageTypes' export interface StorageServiceInterface { getAllRawPayloads(): Promise getAllKeys(mode?: StorageValueModes): string[] getValue(key: string, mode?: StorageValueModes, defaultValue?: T): T canDecryptWithKey(key: RootKeyInterface): Promise savePayload(payload: PayloadInterface): Promise savePayloads(decryptedPayloads: PayloadInterface[]): Promise setValue(key: string, value: T, mode?: StorageValueModes): void removeValue(key: string, mode?: StorageValueModes): Promise setPersistencePolicy(persistencePolicy: StoragePersistencePolicies): Promise clearAllData(): Promise deletePayloads(payloads: FullyFormedPayloadInterface[]): Promise deletePayloadsWithUuids(uuids: string[]): Promise clearAllPayloads(): Promise }