text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "beatsaber-hook/shared/utils/typedefs.h"
  #include "beatsaber-hook/shared/utils/byref.hpp"
  // Including type: Zenject.InstallerBase
  #include "Zenject/InstallerBase.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: Zenject
  namespace Zenject {
    // Forward declaring type: DiContainer
    class DiContainer;
    // Forward declaring type: InjectTypeInfo
    class InjectTypeInfo;
  }
  // Completed forward declares
  // Type namespace: Zenject
  namespace Zenject {
    // Forward declaring type: Installer`1<TDerived>
    template<typename TDerived>
    class Installer_1;
  }
  #include "beatsaber-hook/shared/utils/il2cpp-type-check.hpp"
  DEFINE_IL2CPP_ARG_TYPE_GENERIC_CLASS(::Zenject::Installer_1, "Zenject", "Installer`1");
  // Type namespace: Zenject
  namespace Zenject {
    // WARNING Size may be invalid!
    // Autogenerated type: Zenject.Installer`1
    // [TokenAttribute] Offset: FFFFFFFF
    template<typename TDerived>
    class Installer_1 : public ::Zenject::InstallerBase {
      public:
      // static public System.Void Install(Zenject.DiContainer container)
      // Offset: 0xFFFFFFFFFFFFFFFF
      static void Install(::Zenject::DiContainer* container) {
        static auto ___internal__logger = ::Logger::get().WithContext("::Zenject::Installer_1::Install");
        static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<Installer_1<TDerived>*>::get(), "Install", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{::il2cpp_utils::ExtractType(container)})));
        ::il2cpp_utils::RunMethodRethrow<void, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method, container);
      }
      // protected System.Void .ctor()
      // Offset: 0xFFFFFFFFFFFFFFFF
      // Implemented from: Zenject.InstallerBase
      // Base method: System.Void InstallerBase::.ctor()
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static Installer_1<TDerived>* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("::Zenject::Installer_1::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<Installer_1<TDerived>*, creationType>()));
      }
      // static private Zenject.InjectTypeInfo __zenCreateInjectTypeInfo()
      // Offset: 0xFFFFFFFFFFFFFFFF
      // Implemented from: Zenject.InstallerBase
      // Base method: Zenject.InjectTypeInfo InstallerBase::__zenCreateInjectTypeInfo()
      static ::Zenject::InjectTypeInfo* __zenCreateInjectTypeInfo() {
        static auto ___internal__logger = ::Logger::get().WithContext("::Zenject::Installer_1::__zenCreateInjectTypeInfo");
        static auto* ___internal__method = THROW_UNLESS((::il2cpp_utils::FindMethod(::il2cpp_utils::il2cpp_type_check::il2cpp_no_arg_class<Installer_1<TDerived>*>::get(), "__zenCreateInjectTypeInfo", std::vector<Il2CppClass*>{}, ::std::vector<const Il2CppType*>{})));
        return ::il2cpp_utils::RunMethodRethrow<::Zenject::InjectTypeInfo*, false>(static_cast<Il2CppObject*>(nullptr), ___internal__method);
      }
    }; // Zenject.Installer`1
    // Could not write size check! Type: Zenject.Installer`1 is generic, or has no fields that are valid for size checks!
  }
  #include "beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  