chromium/chromeos/ash/components/human_presence/human_presence_configuration.h

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

#ifndef CHROMEOS_ASH_COMPONENTS_HUMAN_PRESENCE_HUMAN_PRESENCE_CONFIGURATION_H_
#define CHROMEOS_ASH_COMPONENTS_HUMAN_PRESENCE_HUMAN_PRESENCE_CONFIGURATION_H_

#include <optional>

#include "base/component_export.h"
#include "base/time/time.h"
#include "chromeos/ash/components/dbus/hps/hps_service.pb.h"

namespace base {
class TimeDelta;
}  // namespace base

namespace hps {

// Gets FeatureConfig for enabling LockOnLeave from Finch.
// Returns nullopt if feature is not enabled or can't be parsed correctly.
COMPONENT_EXPORT(HPS)
std::optional<hps::FeatureConfig> GetEnableLockOnLeaveConfig();

// Gets FeatureConfig for enabling SnoopingProtection from Finch.
// Returns nullopt if feature is not enabled or can't be parsed correctly.
COMPONENT_EXPORT(HPS)
std::optional<hps::FeatureConfig> GetEnableSnoopingProtectionConfig();

// Gets quick dim delay to configure power_manager.
COMPONENT_EXPORT(HPS) base::TimeDelta GetQuickDimDelay();

// Gets quick lock delay to configure power_manager.
COMPONENT_EXPORT(HPS) base::TimeDelta GetQuickLockDelay();

// If true, quick dim functionality should be temporarily disabled when a quick
// dim is undimmed within a short period of time.
// Used to configure power_manager.
COMPONENT_EXPORT(HPS) bool GetQuickDimFeedbackEnabled();

// Gets the window following a positive signal in which snooping protection
// should continue to report snooper presence.
COMPONENT_EXPORT(HPS) base::TimeDelta GetSnoopingProtectionPositiveWindow();

}  // namespace hps

#endif  // CHROMEOS_ASH_COMPONENTS_HUMAN_PRESENCE_HUMAN_PRESENCE_CONFIGURATION_H_