text: // Autogenerated from CppHeaderCreator
  // Created by Sc2ad
  // =========================================================================
  #pragma once
  // Begin includes
  #include "extern/beatsaber-hook/shared/utils/typedefs.h"
  // Including type: System.Collections.IDictionary
  #include "System/Collections/IDictionary.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-methods.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-properties.hpp"
  #include "extern/beatsaber-hook/shared/utils/il2cpp-utils-fields.hpp"
  #include "extern/beatsaber-hook/shared/utils/utils.h"
  // Completed includes
  // Begin forward declares
  // Forward declaring namespace: System::Collections::Specialized
  namespace System::Collections::Specialized {
    // Forward declaring type: ListDictionary
    class ListDictionary;
  }
  // Forward declaring namespace: System::Collections
  namespace System::Collections {
    // Forward declaring type: Hashtable
    class Hashtable;
    // Skipping declaration: ICollection because it is already included!
    // Forward declaring type: IDictionaryEnumerator
    class IDictionaryEnumerator;
    // Forward declaring type: IEnumerator
    class IEnumerator;
  }
  // Forward declaring namespace: System
  namespace System {
    // Forward declaring type: Array
    class Array;
  }
  // Completed forward declares
  // Type namespace: System.Collections.Specialized
  namespace System::Collections::Specialized {
    // Size: 0x21
    #pragma pack(push, 1)
    // Autogenerated type: System.Collections.Specialized.HybridDictionary
    // [DefaultMemberAttribute] Offset: D882BC
    class HybridDictionary : public ::Il2CppObject/*, public System::Collections::IDictionary*/ {
      public:
      // private System.Collections.Specialized.ListDictionary list
      // Size: 0x8
      // Offset: 0x10
      System::Collections::Specialized::ListDictionary* list;
      // Field size check
      static_assert(sizeof(System::Collections::Specialized::ListDictionary*) == 0x8);
      // private System.Collections.Hashtable hashtable
      // Size: 0x8
      // Offset: 0x18
      System::Collections::Hashtable* hashtable;
      // Field size check
      static_assert(sizeof(System::Collections::Hashtable*) == 0x8);
      // private System.Boolean caseInsensitive
      // Size: 0x1
      // Offset: 0x20
      bool caseInsensitive;
      // Field size check
      static_assert(sizeof(bool) == 0x1);
      // Creating value type constructor for type: HybridDictionary
      HybridDictionary(System::Collections::Specialized::ListDictionary* list_ = {}, System::Collections::Hashtable* hashtable_ = {}, bool caseInsensitive_ = {}) noexcept : list{list_}, hashtable{hashtable_}, caseInsensitive{caseInsensitive_} {}
      // Creating interface conversion operator: operator System::Collections::IDictionary
      operator System::Collections::IDictionary() noexcept {
        return *reinterpret_cast<System::Collections::IDictionary*>(this);
      }
      // public System.Object get_Item(System.Object key)
      // Offset: 0x1849E1C
      ::Il2CppObject* get_Item(::Il2CppObject* key);
      // public System.Void set_Item(System.Object key, System.Object value)
      // Offset: 0x184A078
      void set_Item(::Il2CppObject* key, ::Il2CppObject* value);
      // private System.Collections.Specialized.ListDictionary get_List()
      // Offset: 0x184A654
      System::Collections::Specialized::ListDictionary* get_List();
      // private System.Void ChangeOver()
      // Offset: 0x184A1D8
      void ChangeOver();
      // public System.Int32 get_Count()
      // Offset: 0x184A7A4
      int get_Count();
      // public System.Collections.ICollection get_Keys()
      // Offset: 0x184A7D8
      System::Collections::ICollection* get_Keys();
      // public System.Collections.ICollection get_Values()
      // Offset: 0x184A884
      System::Collections::ICollection* get_Values();
      // public System.Void Add(System.Object key, System.Object value)
      // Offset: 0x184A92C
      void Add(::Il2CppObject* key, ::Il2CppObject* value);
      // public System.Boolean Contains(System.Object key)
      // Offset: 0x184AC80
      bool Contains(::Il2CppObject* key);
      // public System.Void CopyTo(System.Array array, System.Int32 index)
      // Offset: 0x184AEC8
      void CopyTo(System::Array* array, int index);
      // public System.Collections.IDictionaryEnumerator GetEnumerator()
      // Offset: 0x184B0B8
      System::Collections::IDictionaryEnumerator* GetEnumerator();
      // private System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
      // Offset: 0x184B1D4
      System::Collections::IEnumerator* System_Collections_IEnumerable_GetEnumerator();
      // public System.Void .ctor()
      // Offset: 0x1849E14
      // Implemented from: System.Object
      // Base method: System.Void Object::.ctor()
      template<::il2cpp_utils::CreationType creationType = ::il2cpp_utils::CreationType::Temporary>
      static HybridDictionary* New_ctor() {
        static auto ___internal__logger = ::Logger::get().WithContext("System::Collections::Specialized::HybridDictionary::.ctor");
        return THROW_UNLESS((::il2cpp_utils::New<HybridDictionary*, creationType>()));
      }
    }; // System.Collections.Specialized.HybridDictionary
    #pragma pack(pop)
    static check_size<sizeof(HybridDictionary), 32 + sizeof(bool)> __System_Collections_Specialized_HybridDictionarySizeCheck;
    static_assert(sizeof(HybridDictionary) == 0x21);
  }
  DEFINE_IL2CPP_ARG_TYPE(System::Collections::Specialized::HybridDictionary*, "System.Collections.Specialized", "HybridDictionary");
  