using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;

// Token: 0x02000201 RID: 513
[Serializable]
public class UnitySerializedDictionary<TKey, TValue> : Dictionary<TKey, TValue>
{
	// Token: 0x06004DFD RID: 19965 RVA: 0x00135718 File Offset: 0x00133918
	[CallerCount(0)]
	[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 548446, XrefRangeEnd = 548447, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe virtual void UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06004DFE RID: 19966 RVA: 0x0013575C File Offset: 0x0013395C
	[CallerCount(0)]
	[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 548447, XrefRangeEnd = 548456, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe virtual void UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06004DFF RID: 19967 RVA: 0x001357A0 File Offset: 0x001339A0
	[CallerCount(1)]
	[CachedScanResults(RefRangeStart = 548462, RefRangeEnd = 548463, XrefRangeStart = 548456, XrefRangeEnd = 548462, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe UnitySerializedDictionary()
		: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr))
	{
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr__ctor_Protected_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06004E00 RID: 19968 RVA: 0x001357EC File Offset: 0x001339EC
	// Note: this type is marked as 'beforefieldinit'.
	static UnitySerializedDictionary()
	{
		Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr = IL2CPP.il2cpp_class_from_type(Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "", "UnitySerializedDictionary`2"))).MakeGenericType(new Il2CppReferenceArray<Type>(new Type[]
		{
			Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(Il2CppClassPointerStore<TKey>.NativeClassPtr)),
			Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(Il2CppClassPointerStore<TValue>.NativeClassPtr))
		})).TypeHandle.value);
		IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr);
		UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_keyData = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr, "keyData");
		UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_valueData = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr, "valueData");
		UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr, 100668426);
		UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr, 100668427);
		UnitySerializedDictionary<TKey, TValue>.NativeMethodInfoPtr__ctor_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UnitySerializedDictionary<TKey, TValue>>.NativeClassPtr, 100668428);
	}

	// Token: 0x06004E01 RID: 19969 RVA: 0x001358CD File Offset: 0x00133ACD
	public UnitySerializedDictionary(IntPtr pointer)
		: base(pointer)
	{
	}

	// Token: 0x17001C14 RID: 7188
	// (get) Token: 0x06004E02 RID: 19970 RVA: 0x001358D8 File Offset: 0x00133AD8
	// (set) Token: 0x06004E03 RID: 19971 RVA: 0x0013590C File Offset: 0x00133B0C
	public unsafe List<TKey> keyData
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_keyData);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new List<TKey>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_keyData), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x17001C15 RID: 7189
	// (get) Token: 0x06004E04 RID: 19972 RVA: 0x00135934 File Offset: 0x00133B34
	// (set) Token: 0x06004E05 RID: 19973 RVA: 0x00135968 File Offset: 0x00133B68
	public unsafe List<TValue> valueData
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_valueData);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new List<TValue>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UnitySerializedDictionary<TKey, TValue>.NativeFieldInfoPtr_valueData), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x04003331 RID: 13105
	private static readonly IntPtr NativeFieldInfoPtr_keyData;

	// Token: 0x04003332 RID: 13106
	private static readonly IntPtr NativeFieldInfoPtr_valueData;

	// Token: 0x04003333 RID: 13107
	private static readonly IntPtr NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnAfterDeserialize_Private_Virtual_Final_New_Void_0;

	// Token: 0x04003334 RID: 13108
	private static readonly IntPtr NativeMethodInfoPtr_UnityEngine_ISerializationCallbackReceiver_OnBeforeSerialize_Private_Virtual_Final_New_Void_0;

	// Token: 0x04003335 RID: 13109
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Protected_Void_0;
}
