#ifndef COMPONENTS_PREFS_PREF_MEMBER_H_
#define COMPONENTS_PREFS_PREF_MEMBER_H_
#include <string>
#include <vector>
#include "base/check.h"
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/functional/callback_forward.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/task/sequenced_task_runner.h"
#include "base/values.h"
#include "components/prefs/pref_observer.h"
#include "components/prefs/prefs_export.h"
class PrefService;
namespace subtle {
class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver { … };
bool COMPONENTS_PREFS_EXPORT PrefMemberVectorStringUpdate(
const base::Value& value,
std::vector<std::string>* string_vector);
}
template <typename ValueType>
class PrefMember : public subtle::PrefMemberBase { … };
template <>
COMPONENTS_PREFS_EXPORT void PrefMember<bool>::UpdatePref(const bool& value);
template <>
COMPONENTS_PREFS_EXPORT bool PrefMember<bool>::Internal::UpdateValueInternal(
const base::Value& value) const;
template <>
COMPONENTS_PREFS_EXPORT void PrefMember<int>::UpdatePref(const int& value);
template <>
COMPONENTS_PREFS_EXPORT bool PrefMember<int>::Internal::UpdateValueInternal(
const base::Value& value) const;
template <>
COMPONENTS_PREFS_EXPORT void
PrefMember<double>::UpdatePref(const double& value);
template <>
COMPONENTS_PREFS_EXPORT bool PrefMember<double>::Internal::UpdateValueInternal(
const base::Value& value) const;
template <>
COMPONENTS_PREFS_EXPORT void PrefMember<std::string>::UpdatePref(
const std::string& value);
template <>
COMPONENTS_PREFS_EXPORT bool
PrefMember<std::string>::Internal::UpdateValueInternal(
const base::Value& value) const;
template <>
COMPONENTS_PREFS_EXPORT void PrefMember<base::FilePath>::UpdatePref(
const base::FilePath& value);
template <>
COMPONENTS_PREFS_EXPORT bool
PrefMember<base::FilePath>::Internal::UpdateValueInternal(
const base::Value& value) const;
template <>
COMPONENTS_PREFS_EXPORT void PrefMember<std::vector<std::string>>::UpdatePref(
const std::vector<std::string>& value);
template <>
COMPONENTS_PREFS_EXPORT bool
PrefMember<std::vector<std::string>>::Internal::UpdateValueInternal(
const base::Value& value) const;
BooleanPrefMember;
IntegerPrefMember;
DoublePrefMember;
StringPrefMember;
FilePathPrefMember;
StringListPrefMember;
#endif