// components/page_content_annotations/content/mojom/page_stability.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 COMPONENTS_PAGE_CONTENT_ANNOTATIONS_CONTENT_MOJOM_PAGE_STABILITY_MOJOM_TEST_UTILS_H_
#define COMPONENTS_PAGE_CONTENT_ANNOTATIONS_CONTENT_MOJOM_PAGE_STABILITY_MOJOM_TEST_UTILS_H_

#include "components/page_content_annotations/content/mojom/page_stability.mojom.h"


namespace page_content_annotations::mojom {


class  PageStabilityMonitorInterceptorForTesting : public PageStabilityMonitor {
  virtual PageStabilityMonitor* GetForwardingInterface() = 0;
  void NotifyWhenStable(::base::TimeDelta observation_delay, NotifyWhenStableCallback callback) override;
};
class  PageStabilityMonitorAsyncWaiter {
 public:
  explicit PageStabilityMonitorAsyncWaiter(PageStabilityMonitor* proxy);

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

  ~PageStabilityMonitorAsyncWaiter();
  void NotifyWhenStable(
      ::base::TimeDelta observation_delay);
  

 private:
  PageStabilityMonitor* const proxy_;
};


class  PageStabilityMonitorManagerInterceptorForTesting : public PageStabilityMonitorManager {
  virtual PageStabilityMonitorManager* GetForwardingInterface() = 0;
  void CreatePageStabilityMonitor(::mojo::PendingReceiver<PageStabilityMonitor> receiver, bool supports_paint_stability) override;
};
class  PageStabilityMonitorManagerAsyncWaiter {
 public:
  explicit PageStabilityMonitorManagerAsyncWaiter(PageStabilityMonitorManager* proxy);

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

  ~PageStabilityMonitorManagerAsyncWaiter();

 private:
  PageStabilityMonitorManager* const proxy_;
};




}  // page_content_annotations::mojom

#endif  // COMPONENTS_PAGE_CONTENT_ANNOTATIONS_CONTENT_MOJOM_PAGE_STABILITY_MOJOM_TEST_UTILS_H_