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

// fidl_experiment = output_index_json

#pragma once

#include <test/inheritance/cpp/fidl.h>
namespace test {
namespace inheritance {
namespace testing {

class super_TestBase : public ::test::inheritance::super {
 public:
  virtual ~super_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void foo(::std::string s, fooCallback callback) override {
    NotImplemented_("foo");
  }
};

class sub_TestBase : public ::test::inheritance::sub {
 public:
  virtual ~sub_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void foo(::std::string s, fooCallback callback) override {
    NotImplemented_("foo");
  }
};
}  // namespace testing
}  // namespace inheritance
}  // namespace test
