// WARNING: This file is machine generated by fidlgen.

// fidl_experiment = output_index_json

#pragma once

#include <test/bottom/cpp/fidl.h>
#include <test/foreigntypeinresponseusedthroughcompose/cpp/fidl.h>
#include <test/middle/cpp/fidl.h>
namespace test {
namespace foreigntypeinresponseusedthroughcompose {
namespace testing {

class Top_TestBase : public ::test::foreigntypeinresponseusedthroughcompose::Top {
 public:
  virtual ~Top_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void GetFoo(GetFooCallback callback) override {
    NotImplemented_("GetFoo");
  }
};
}  // namespace testing
}  // namespace foreigntypeinresponseusedthroughcompose
}  // namespace test
