#ifndef COMPONENTS_USER_EDUCATION_WEBUI_WHATS_NEW_STORAGE_SERVICE_H_
#define COMPONENTS_USER_EDUCATION_WEBUI_WHATS_NEW_STORAGE_SERVICE_H_
#include <set>
#include "base/values.h"
namespace whats_new {
class WhatsNewStorageService {
public:
WhatsNewStorageService() = default;
virtual ~WhatsNewStorageService() = default;
WhatsNewStorageService(const WhatsNewStorageService&) = delete;
WhatsNewStorageService& operator=(const WhatsNewStorageService&) = delete;
virtual const base::Value::List& ReadModuleData() const = 0;
virtual const base::Value::Dict& ReadEditionData() const = 0;
virtual std::optional<int> ReadVersionData() const = 0;
virtual std::optional<int> GetUsedVersion(
std::string_view edition_name) const = 0;
virtual std::optional<std::string_view> FindEditionForCurrentVersion()
const = 0;
virtual int GetModuleQueuePosition(std::string_view module_name) const = 0;
virtual bool IsUsedEdition(std::string_view edition_name) const = 0;
virtual bool WasVersionPageUsedForCurrentMilestone() const = 0;
virtual void SetModuleEnabled(std::string_view module_name) = 0;
virtual void SetEditionUsed(std::string_view edition_name) = 0;
virtual void SetVersionUsed() = 0;
virtual void ClearModules(std::set<std::string_view> modules_to_clear) = 0;
virtual void ClearEditions(std::set<std::string_view> editions_to_clear) = 0;
virtual void Reset() = 0;
};
}
#endif