// services/passage_embeddings/public/mojom/passage_embeddings.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 SERVICES_PASSAGE_EMBEDDINGS_PUBLIC_MOJOM_PASSAGE_EMBEDDINGS_MOJOM_TEST_UTILS_H_
#define SERVICES_PASSAGE_EMBEDDINGS_PUBLIC_MOJOM_PASSAGE_EMBEDDINGS_MOJOM_TEST_UTILS_H_

#include "services/passage_embeddings/public/mojom/passage_embeddings.mojom.h"


namespace passage_embeddings::mojom {


class  PassageEmbedderInterceptorForTesting : public PassageEmbedder {
  virtual PassageEmbedder* GetForwardingInterface() = 0;
  void GenerateEmbeddings(const std::vector<std::string>& passages, PassagePriority priority, GenerateEmbeddingsCallback callback) override;
};
class  PassageEmbedderAsyncWaiter {
 public:
  explicit PassageEmbedderAsyncWaiter(PassageEmbedder* proxy);

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

  ~PassageEmbedderAsyncWaiter();
  void GenerateEmbeddings(
      const std::vector<std::string>& passages, PassagePriority priority, std::vector<PassageEmbeddingsResultPtr>* out_results);
  std::vector<PassageEmbeddingsResultPtr> GenerateEmbeddings(const std::vector<std::string>& passages, PassagePriority priority);

 private:
  PassageEmbedder* const proxy_;
};


class  PassageEmbeddingsServiceInterceptorForTesting : public PassageEmbeddingsService {
  virtual PassageEmbeddingsService* GetForwardingInterface() = 0;
  void LoadModels(PassageEmbeddingsLoadModelsParamsPtr model_params, PassageEmbedderParamsPtr params, ::mojo::PendingReceiver<PassageEmbedder> model, LoadModelsCallback callback) override;
};
class  PassageEmbeddingsServiceAsyncWaiter {
 public:
  explicit PassageEmbeddingsServiceAsyncWaiter(PassageEmbeddingsService* proxy);

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

  ~PassageEmbeddingsServiceAsyncWaiter();
  void LoadModels(
      PassageEmbeddingsLoadModelsParamsPtr model_params, PassageEmbedderParamsPtr params, ::mojo::PendingReceiver<PassageEmbedder> model, bool* out_success);
  bool LoadModels(PassageEmbeddingsLoadModelsParamsPtr model_params, PassageEmbedderParamsPtr params, ::mojo::PendingReceiver<PassageEmbedder> model);

 private:
  PassageEmbeddingsService* const proxy_;
};




}  // passage_embeddings::mojom

#endif  // SERVICES_PASSAGE_EMBEDDINGS_PUBLIC_MOJOM_PASSAGE_EMBEDDINGS_MOJOM_TEST_UTILS_H_