chromium/ios/chrome/browser/ui/authentication/history_sync/history_sync_utils.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_CHROME_BROWSER_UI_AUTHENTICATION_HISTORY_SYNC_HISTORY_SYNC_UTILS_H_
#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_HISTORY_SYNC_HISTORY_SYNC_UTILS_H_

class PrefService;

namespace user_prefs {
class PrefRegistrySyncable;
}

namespace history_sync {

// Registers prefs used to skip too frequent History Sync Opt-In prompt.
void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry);

// Resets prefs related to declined History Sync Opt-In prompt.
void ResetDeclinePrefs(PrefService* pref_service);

// Records that History Sync has been declined in prefs.
void RecordDeclinePrefs(PrefService* pref_service);

// Whether the History Sync was declined too often, and that the Opt-In screen
// should be skipped because of this, if it is optional.
bool IsDeclinedTooOften(PrefService* pref_service);

}  // namespace history_sync

#endif  // IOS_CHROME_BROWSER_UI_AUTHENTICATION_HISTORY_SYNC_HISTORY_SYNC_UTILS_H_