using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using UnityEngine;

// Token: 0x020002CF RID: 719
public class UISwitchArrowController : MonoBehaviour
{
	// Token: 0x06005F50 RID: 24400 RVA: 0x00180B24 File Offset: 0x0017ED24
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 594418, RefRangeEnd = 594423, XrefRangeStart = 594398, XrefRangeEnd = 594418, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void Init(Func<int> trySwitchLeftward, Func<int> trySwitchRightward)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.Il2CppObjectBaseToPtr(trySwitchLeftward);
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(trySwitchRightward);
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_Init_Public_Void_Func_1_Int32_Func_1_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06005F51 RID: 24401 RVA: 0x00180B98 File Offset: 0x0017ED98
	[CallerCount(4)]
	[CachedScanResults(RefRangeStart = 594428, RefRangeEnd = 594432, XrefRangeStart = 594423, XrefRangeEnd = 594428, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void SwitchPageLeftward()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_SwitchPageLeftward_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06005F52 RID: 24402 RVA: 0x00180BDC File Offset: 0x0017EDDC
	[CallerCount(4)]
	[CachedScanResults(RefRangeStart = 594437, RefRangeEnd = 594441, XrefRangeStart = 594432, XrefRangeEnd = 594437, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void SwitchPageRightward()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_SwitchPageRightward_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06005F53 RID: 24403 RVA: 0x00180C20 File Offset: 0x0017EE20
	[CallerCount(6)]
	[CachedScanResults(RefRangeStart = 594442, RefRangeEnd = 594448, XrefRangeStart = 594441, XrefRangeEnd = 594442, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void UpdatePageAmount(int pageAmount, int currentPage = 0)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr;
		checked
		{
			ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
			*ptr = ref pageAmount;
		}
		ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref currentPage;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_UpdatePageAmount_Public_Void_Int32_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06005F54 RID: 24404 RVA: 0x00180C88 File Offset: 0x0017EE88
	[CallerCount(6)]
	[CachedScanResults(RefRangeStart = 594455, RefRangeEnd = 594461, XrefRangeStart = 594448, XrefRangeEnd = 594455, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void UpdateArrowState(int currentPage)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		checked
		{
			IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
			*ptr = ref currentPage;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_UpdateArrowState_Private_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}
	}

	// Token: 0x06005F55 RID: 24405 RVA: 0x00180CDC File Offset: 0x0017EEDC
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 594468, RefRangeEnd = 594473, XrefRangeStart = 594461, XrefRangeEnd = 594468, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe void BindPointerEnterEvent(Action pointerEnterHandler)
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		checked
		{
			IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
			*ptr = IL2CPP.Il2CppObjectBaseToPtr(pointerEnterHandler);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_BindPointerEnterEvent_Public_Void_Action_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}
	}

	// Token: 0x06005F56 RID: 24406 RVA: 0x00180D38 File Offset: 0x0017EF38
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 594473, RefRangeEnd = 594478, XrefRangeStart = 594473, XrefRangeEnd = 594473, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe bool HasPointerEntered()
	{
		IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr_HasPointerEntered_Public_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		return *IL2CPP.il2cpp_object_unbox(intPtr);
	}

	// Token: 0x06005F57 RID: 24407 RVA: 0x00180D88 File Offset: 0x0017EF88
	[CallerCount(67)]
	[CachedScanResults(RefRangeStart = 166362, RefRangeEnd = 166429, XrefRangeStart = 166362, XrefRangeEnd = 166429, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
	public unsafe UISwitchArrowController()
		: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr))
	{
		IntPtr* ptr = null;
		IntPtr intPtr2;
		IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UISwitchArrowController.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
		Il2CppException.RaiseExceptionIfNecessary(intPtr2);
	}

	// Token: 0x06005F58 RID: 24408 RVA: 0x00180DD4 File Offset: 0x0017EFD4
	// Note: this type is marked as 'beforefieldinit'.
	static UISwitchArrowController()
	{
		Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "", "UISwitchArrowController");
		IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr);
		UISwitchArrowController.NativeFieldInfoPtr_switchArrows = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, "switchArrows");
		UISwitchArrowController.NativeFieldInfoPtr_trySwitchLeftward = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, "trySwitchLeftward");
		UISwitchArrowController.NativeFieldInfoPtr_trySwitchRightward = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, "trySwitchRightward");
		UISwitchArrowController.NativeFieldInfoPtr_pageAmount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, "pageAmount");
		UISwitchArrowController.NativeMethodInfoPtr_Init_Public_Void_Func_1_Int32_Func_1_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670111);
		UISwitchArrowController.NativeMethodInfoPtr_SwitchPageLeftward_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670112);
		UISwitchArrowController.NativeMethodInfoPtr_SwitchPageRightward_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670113);
		UISwitchArrowController.NativeMethodInfoPtr_UpdatePageAmount_Public_Void_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670114);
		UISwitchArrowController.NativeMethodInfoPtr_UpdateArrowState_Private_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670115);
		UISwitchArrowController.NativeMethodInfoPtr_BindPointerEnterEvent_Public_Void_Action_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670116);
		UISwitchArrowController.NativeMethodInfoPtr_HasPointerEntered_Public_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670117);
		UISwitchArrowController.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100670118);
	}

	// Token: 0x06005F59 RID: 24409 RVA: 0x0000351C File Offset: 0x0000171C
	public UISwitchArrowController(IntPtr pointer)
		: base(pointer)
	{
	}

	// Token: 0x17002106 RID: 8454
	// (get) Token: 0x06005F5A RID: 24410 RVA: 0x00180EF4 File Offset: 0x0017F0F4
	// (set) Token: 0x06005F5B RID: 24411 RVA: 0x00180F28 File Offset: 0x0017F128
	public unsafe Il2CppReferenceArray<UISwitchArrow> switchArrows
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_switchArrows);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new Il2CppReferenceArray<UISwitchArrow>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_switchArrows), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x17002107 RID: 8455
	// (get) Token: 0x06005F5C RID: 24412 RVA: 0x00180F50 File Offset: 0x0017F150
	// (set) Token: 0x06005F5D RID: 24413 RVA: 0x00180F84 File Offset: 0x0017F184
	public unsafe Func<int> trySwitchLeftward
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_trySwitchLeftward);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new Func<int>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_trySwitchLeftward), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x17002108 RID: 8456
	// (get) Token: 0x06005F5E RID: 24414 RVA: 0x00180FAC File Offset: 0x0017F1AC
	// (set) Token: 0x06005F5F RID: 24415 RVA: 0x00180FE0 File Offset: 0x0017F1E0
	public unsafe Func<int> trySwitchRightward
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_trySwitchRightward);
			IntPtr intPtr2 = *intPtr;
			return (intPtr2 != 0) ? new Func<int>(intPtr2) : null;
		}
		set
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_trySwitchRightward), IL2CPP.Il2CppObjectBaseToPtr(value));
		}
	}

	// Token: 0x17002109 RID: 8457
	// (get) Token: 0x06005F60 RID: 24416 RVA: 0x00181008 File Offset: 0x0017F208
	// (set) Token: 0x06005F61 RID: 24417 RVA: 0x00181030 File Offset: 0x0017F230
	public unsafe int pageAmount
	{
		get
		{
			IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_pageAmount);
			return *intPtr;
		}
		set
		{
			*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UISwitchArrowController.NativeFieldInfoPtr_pageAmount)) = value;
		}
	}

	// Token: 0x04003F66 RID: 16230
	private static readonly IntPtr NativeFieldInfoPtr_switchArrows;

	// Token: 0x04003F67 RID: 16231
	private static readonly IntPtr NativeFieldInfoPtr_trySwitchLeftward;

	// Token: 0x04003F68 RID: 16232
	private static readonly IntPtr NativeFieldInfoPtr_trySwitchRightward;

	// Token: 0x04003F69 RID: 16233
	private static readonly IntPtr NativeFieldInfoPtr_pageAmount;

	// Token: 0x04003F6A RID: 16234
	private static readonly IntPtr NativeMethodInfoPtr_Init_Public_Void_Func_1_Int32_Func_1_Int32_0;

	// Token: 0x04003F6B RID: 16235
	private static readonly IntPtr NativeMethodInfoPtr_SwitchPageLeftward_Public_Void_0;

	// Token: 0x04003F6C RID: 16236
	private static readonly IntPtr NativeMethodInfoPtr_SwitchPageRightward_Public_Void_0;

	// Token: 0x04003F6D RID: 16237
	private static readonly IntPtr NativeMethodInfoPtr_UpdatePageAmount_Public_Void_Int32_Int32_0;

	// Token: 0x04003F6E RID: 16238
	private static readonly IntPtr NativeMethodInfoPtr_UpdateArrowState_Private_Void_Int32_0;

	// Token: 0x04003F6F RID: 16239
	private static readonly IntPtr NativeMethodInfoPtr_BindPointerEnterEvent_Public_Void_Action_0;

	// Token: 0x04003F70 RID: 16240
	private static readonly IntPtr NativeMethodInfoPtr_HasPointerEntered_Public_Boolean_0;

	// Token: 0x04003F71 RID: 16241
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
}
