// third_party/blink/public/mojom/document_metadata/document_metadata.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_DOCUMENT_METADATA_DOCUMENT_METADATA_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_DOCUMENT_METADATA_DOCUMENT_METADATA_MOJOM_TEST_UTILS_H_

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


namespace blink::mojom {


class BLINK_COMMON_EXPORT DocumentMetadataInterceptorForTesting : public DocumentMetadata {
  virtual DocumentMetadata* GetForwardingInterface() = 0;
  void GetEntities(GetEntitiesCallback callback) override;
  void ClassifyProductDetails(const std::vector<std::string>& allowed_keywords, const std::vector<std::string>& blocked_keywords, ClassifyProductDetailsCallback callback) override;
};
class BLINK_COMMON_EXPORT DocumentMetadataAsyncWaiter {
 public:
  explicit DocumentMetadataAsyncWaiter(DocumentMetadata* proxy);

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

  ~DocumentMetadataAsyncWaiter();
  void GetEntities(
      WebPagePtr* out_page);
  WebPagePtr GetEntities();
  void ClassifyProductDetails(
      const std::vector<std::string>& allowed_keywords, const std::vector<std::string>& blocked_keywords, ProductClassificationResultPtr* out_result);
  ProductClassificationResultPtr ClassifyProductDetails(const std::vector<std::string>& allowed_keywords, const std::vector<std::string>& blocked_keywords);

 private:
  DocumentMetadata* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_DOCUMENT_METADATA_DOCUMENT_METADATA_MOJOM_TEST_UTILS_H_