// third_party/blink/public/mojom/ai/ai_summarizer.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_AI_AI_SUMMARIZER_MOJOM_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_AI_AI_SUMMARIZER_MOJOM_TEST_UTILS_H_

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


namespace blink::mojom {


class BLINK_COMMON_EXPORT AISummarizerInterceptorForTesting : public AISummarizer {
  virtual AISummarizer* GetForwardingInterface() = 0;
  void Summarize(const std::string& input, const std::string& context, ::mojo::PendingRemote<::blink::mojom::ModelStreamingResponder> pending_responder) override;
  void MeasureUsage(const std::string& input, const std::string& context, MeasureUsageCallback callback) override;
};
class BLINK_COMMON_EXPORT AISummarizerAsyncWaiter {
 public:
  explicit AISummarizerAsyncWaiter(AISummarizer* proxy);

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

  ~AISummarizerAsyncWaiter();
  void MeasureUsage(
      const std::string& input, const std::string& context, std::optional<uint32_t>* out_number_of_tokens);
  std::optional<uint32_t> MeasureUsage(const std::string& input, const std::string& context);

 private:
  AISummarizer* const proxy_;
};




}  // blink::mojom

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_AI_AI_SUMMARIZER_MOJOM_TEST_UTILS_H_