#ifndef CHROME_BROWSER_DEVICE_REAUTH_CHROMEOS_AUTHENTICATOR_CHROMEOS_H_
#define CHROME_BROWSER_DEVICE_REAUTH_CHROMEOS_AUTHENTICATOR_CHROMEOS_H_
#include "base/functional/callback.h"
#include "base/functional/callback_forward.h"
enum class BiometricsStatusChromeOS {
kAvailable = 1,
kUnavailable = 2,
kNotConfiguredForUser = 3,
kMaxValue = kNotConfiguredForUser,
};
class AuthenticatorChromeOSInterface {
public:
using AvailabilityCallback =
base::OnceCallback<void(BiometricsStatusChromeOS)>;
virtual ~AuthenticatorChromeOSInterface() = default;
virtual void AuthenticateUser(const std::u16string& message,
base::OnceCallback<void(bool)> callback) = 0;
virtual BiometricsStatusChromeOS CheckIfBiometricsAvailable() = 0;
};
class AuthenticatorChromeOS : public AuthenticatorChromeOSInterface {
public:
AuthenticatorChromeOS();
~AuthenticatorChromeOS() override;
AuthenticatorChromeOS(const AuthenticatorChromeOS&) = delete;
AuthenticatorChromeOS& operator=(const AuthenticatorChromeOS&) = delete;
void AuthenticateUser(
const std::u16string& message,
base::OnceCallback<void(bool)> result_callback) override;
BiometricsStatusChromeOS CheckIfBiometricsAvailable() override;
};
#endif