// chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.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 CHROME_BROWSER_UI_WEBUI_BLUETOOTH_INTERNALS_BLUETOOTH_INTERNALS_MOJOM_TEST_UTILS_H_
#define CHROME_BROWSER_UI_WEBUI_BLUETOOTH_INTERNALS_BLUETOOTH_INTERNALS_MOJOM_TEST_UTILS_H_

#include "chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom.h"


namespace mojom {


class  DebugLogsChangeHandlerInterceptorForTesting : public DebugLogsChangeHandler {
  virtual DebugLogsChangeHandler* GetForwardingInterface() = 0;
  void ChangeDebugLogsState(bool should_debug_logs_be_enabled) override;
};
class  DebugLogsChangeHandlerAsyncWaiter {
 public:
  explicit DebugLogsChangeHandlerAsyncWaiter(DebugLogsChangeHandler* proxy);

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

  ~DebugLogsChangeHandlerAsyncWaiter();

 private:
  DebugLogsChangeHandler* const proxy_;
};


class  BluetoothInternalsHandlerInterceptorForTesting : public BluetoothInternalsHandler {
  virtual BluetoothInternalsHandler* GetForwardingInterface() = 0;
  void GetAdapter(GetAdapterCallback callback) override;
  void GetDebugLogsChangeHandler(GetDebugLogsChangeHandlerCallback callback) override;
  void CheckSystemPermissions(CheckSystemPermissionsCallback callback) override;
  void RequestSystemPermissions(RequestSystemPermissionsCallback callback) override;
  void RequestLocationServices(RequestLocationServicesCallback callback) override;
  void StartBtsnoop(StartBtsnoopCallback callback) override;
  void IsBtsnoopFeatureEnabled(IsBtsnoopFeatureEnabledCallback callback) override;
};
class  BluetoothInternalsHandlerAsyncWaiter {
 public:
  explicit BluetoothInternalsHandlerAsyncWaiter(BluetoothInternalsHandler* proxy);

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

  ~BluetoothInternalsHandlerAsyncWaiter();
  void GetAdapter(
      ::mojo::PendingRemote<::bluetooth::mojom::Adapter>* out_adapter);
  ::mojo::PendingRemote<::bluetooth::mojom::Adapter> GetAdapter();
  void GetDebugLogsChangeHandler(
      ::mojo::PendingRemote<DebugLogsChangeHandler>* out_handler, bool* out_initial_toggle_value);
  
  void CheckSystemPermissions(
      bool* out_need_location_permission, bool* out_need_nearby_devices_permission, bool* out_need_location_services, bool* out_can_request_permissions);
  
  void RequestSystemPermissions(
      );
  
  void RequestLocationServices(
      );
  
  void StartBtsnoop(
      ::mojo::PendingRemote<BluetoothBtsnoop>* out_btsnoop);
  ::mojo::PendingRemote<BluetoothBtsnoop> StartBtsnoop();
  void IsBtsnoopFeatureEnabled(
      bool* out_enabled);
  bool IsBtsnoopFeatureEnabled();

 private:
  BluetoothInternalsHandler* const proxy_;
};


class  BluetoothBtsnoopInterceptorForTesting : public BluetoothBtsnoop {
  virtual BluetoothBtsnoop* GetForwardingInterface() = 0;
  void Stop(StopCallback callback) override;
};
class  BluetoothBtsnoopAsyncWaiter {
 public:
  explicit BluetoothBtsnoopAsyncWaiter(BluetoothBtsnoop* proxy);

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

  ~BluetoothBtsnoopAsyncWaiter();
  void Stop(
      bool* out_success);
  bool Stop();

 private:
  BluetoothBtsnoop* const proxy_;
};




}  // mojom

#endif  // CHROME_BROWSER_UI_WEBUI_BLUETOOTH_INTERNALS_BLUETOOTH_INTERNALS_MOJOM_TEST_UTILS_H_