// third_party/blink/public/mojom/ai/model_streaming_responder.mojom-blink-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_MODEL_STREAMING_RESPONDER_MOJOM_BLINK_TEST_UTILS_H_
#define THIRD_PARTY_BLINK_PUBLIC_MOJOM_AI_MODEL_STREAMING_RESPONDER_MOJOM_BLINK_TEST_UTILS_H_

#include "third_party/blink/public/mojom/ai/model_streaming_responder.mojom-blink.h"
#include "third_party/blink/renderer/platform/platform_export.h"


namespace blink::mojom::blink {


class PLATFORM_EXPORT ModelStreamingResponderInterceptorForTesting : public ModelStreamingResponder {
  virtual ModelStreamingResponder* GetForwardingInterface() = 0;
  void OnCompletion(ModelExecutionContextInfoPtr context_info) override;
  void OnError(ModelStreamingResponseStatus status, ::blink::mojom::blink::QuotaErrorInfoPtr quota_error_info) override;
  void OnStreaming(const ::blink::String& text) override;
  void OnToolCalls(::blink::Vector<ToolCallPtr> tool_calls) override;
  void OnContextOverflow() override;
};
class PLATFORM_EXPORT ModelStreamingResponderAsyncWaiter {
 public:
  explicit ModelStreamingResponderAsyncWaiter(ModelStreamingResponder* proxy);

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

  ~ModelStreamingResponderAsyncWaiter();

 private:
  ModelStreamingResponder* const proxy_;
};




}  // blink::mojom::blink

#endif  // THIRD_PARTY_BLINK_PUBLIC_MOJOM_AI_MODEL_STREAMING_RESPONDER_MOJOM_BLINK_TEST_UTILS_H_