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

#ifndef CHROME_BROWSER_CHROMEOS_APP_MODE_PREF_NAMES_H_
#define CHROME_BROWSER_CHROMEOS_APP_MODE_PREF_NAMES_H_

namespace chromeos {
namespace prefs {

// ---------------------------------------------------------------------------
// Prefs related to kiosk mode.
// ---------------------------------------------------------------------------
extern const char kAllKioskUsersToRemove[];
extern const char kRegularKioskUsersToRemove[];
extern const char kArcKioskUsersToRemove[];

}  // namespace prefs
}  // namespace chromeos
#endif  // CHROME_BROWSER_CHROMEOS_APP_MODE_PREF_NAMES_H_
