#ifndef EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_OBSERVER_H_
#define EXTENSIONS_BROWSER_API_STORAGE_SETTINGS_OBSERVER_H_
#include "base/functional/callback.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
#include "base/types/strong_alias.h"
#include "base/values.h"
#include "extensions/common/api/storage.h"
namespace extensions {
enum class StorageAreaNamespace;
using SettingsChangedCallback =
base::RepeatingCallback<void(const std::string&,
StorageAreaNamespace,
std::optional<api::storage::AccessLevel>,
base::Value)>;
using SequenceBoundSettingsChangedCallback =
base::StrongAlias<class SequenceBoundSettingsChangedCallbackTag,
SettingsChangedCallback>;
inline SequenceBoundSettingsChangedCallback
GetSequenceBoundSettingsChangedCallback(
scoped_refptr<base::SequencedTaskRunner> task_runner,
SettingsChangedCallback callback,
const base::Location& location = FROM_HERE) {
return SequenceBoundSettingsChangedCallback(base::BindPostTask(
std::move(task_runner), std::move(callback), location));
}
}
#endif