// third_party/blink/public/mojom/device/device.mojom-test-utils.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVICE_DEVICE_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVICE_DEVICE_MOJOM_TEST_UTILS_H_

#include "third_party/blink/public/mojom/device/device.mojom.h"
#include "third_party/blink/public/common/common_export.h"


namespace blink::mojom {


class BLINK_COMMON_EXPORT ManagedConfigurationObserverInterceptorForTesting : public ManagedConfigurationObserver {
  virtual ManagedConfigurationObserver* GetForwardingInterface() = 0;
  void OnConfigurationChanged() override;
};
class BLINK_COMMON_EXPORT ManagedConfigurationObserverAsyncWaiter {
 public:
  explicit ManagedConfigurationObserverAsyncWaiter(ManagedConfigurationObserver* proxy);

  ManagedConfigurationObserverAsyncWaiter(const ManagedConfigurationObserverAsyncWaiter&) = delete;
  ManagedConfigurationObserverAsyncWaiter& operator=(const ManagedConfigurationObserverAsyncWaiter&) = delete;

  ~ManagedConfigurationObserverAsyncWaiter();

 private:
  ManagedConfigurationObserver* const proxy_;
};


class BLINK_COMMON_EXPORT DeviceAPIServiceInterceptorForTesting : public DeviceAPIService {
  virtual DeviceAPIService* GetForwardingInterface() = 0;
  void GetDirectoryId(GetDirectoryIdCallback callback) override;
  void GetHostname(GetHostnameCallback callback) override;
  void GetSerialNumber(GetSerialNumberCallback callback) override;
  void GetAnnotatedAssetId(GetAnnotatedAssetIdCallback callback) override;
  void GetAnnotatedLocation(GetAnnotatedLocationCallback callback) override;
};
class BLINK_COMMON_EXPORT DeviceAPIServiceAsyncWaiter {
 public:
  explicit DeviceAPIServiceAsyncWaiter(DeviceAPIService* proxy);

  DeviceAPIServiceAsyncWaiter(const DeviceAPIServiceAsyncWaiter&) = delete;
  DeviceAPIServiceAsyncWaiter& operator=(const DeviceAPIServiceAsyncWaiter&) = delete;

  ~DeviceAPIServiceAsyncWaiter();
  void GetDirectoryId(
      
base::expected<
  DeviceAttributeValuePtr,
  std::string>* out_result);
  DeviceAPIService_GetDirectoryId_ResponseParam_ResultPtr GetDirectoryId();
  void GetHostname(
      
base::expected<
  DeviceAttributeValuePtr,
  std::string>* out_result);
  DeviceAPIService_GetHostname_ResponseParam_ResultPtr GetHostname();
  void GetSerialNumber(
      
base::expected<
  DeviceAttributeValuePtr,
  std::string>* out_result);
  DeviceAPIService_GetSerialNumber_ResponseParam_ResultPtr GetSerialNumber();
  void GetAnnotatedAssetId(
      
base::expected<
  DeviceAttributeValuePtr,
  std::string>* out_result);
  DeviceAPIService_GetAnnotatedAssetId_ResponseParam_ResultPtr GetAnnotatedAssetId();
  void GetAnnotatedLocation(
      
base::expected<
  DeviceAttributeValuePtr,
  std::string>* out_result);
  DeviceAPIService_GetAnnotatedLocation_ResponseParam_ResultPtr GetAnnotatedLocation();

 private:
  DeviceAPIService* const proxy_;
};


class BLINK_COMMON_EXPORT ManagedConfigurationServiceInterceptorForTesting : public ManagedConfigurationService {
  virtual ManagedConfigurationService* GetForwardingInterface() = 0;
  void GetManagedConfiguration(const std::vector<std::string>& keys, GetManagedConfigurationCallback callback) override;
  void SubscribeToManagedConfiguration(::mojo::PendingRemote<ManagedConfigurationObserver> observer) override;
};
class BLINK_COMMON_EXPORT ManagedConfigurationServiceAsyncWaiter {
 public:
  explicit ManagedConfigurationServiceAsyncWaiter(ManagedConfigurationService* proxy);

  ManagedConfigurationServiceAsyncWaiter(const ManagedConfigurationServiceAsyncWaiter&) = delete;
  ManagedConfigurationServiceAsyncWaiter& operator=(const ManagedConfigurationServiceAsyncWaiter&) = delete;

  ~ManagedConfigurationServiceAsyncWaiter();
  void GetManagedConfiguration(
      const std::vector<std::string>& keys, std::optional<base::flat_map<std::string, std::string>>* out_configurations);
  std::optional<base::flat_map<std::string, std::string>> GetManagedConfiguration(const std::vector<std::string>& keys);

 private:
  ManagedConfigurationService* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_DEVICE_DEVICE_MOJOM_TEST_UTILS_H_