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

// Token: 0x02000285 RID: 645
public class UISwitchArrowController : MonoBehaviour
{
	// Token: 0x060058E7 RID: 22759 RVA: 0x0016607C File Offset: 0x0016427C
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 564400, RefRangeEnd = 564405, XrefRangeStart = 564380, XrefRangeEnd = 564400, 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: 0x060058E8 RID: 22760 RVA: 0x001660F0 File Offset: 0x001642F0
	[CallerCount(4)]
	[CachedScanResults(RefRangeStart = 564410, RefRangeEnd = 564414, XrefRangeStart = 564405, XrefRangeEnd = 564410, 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: 0x060058E9 RID: 22761 RVA: 0x00166134 File Offset: 0x00164334
	[CallerCount(4)]
	[CachedScanResults(RefRangeStart = 564419, RefRangeEnd = 564423, XrefRangeStart = 564414, XrefRangeEnd = 564419, 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: 0x060058EA RID: 22762 RVA: 0x00166178 File Offset: 0x00164378
	[CallerCount(6)]
	[CachedScanResults(RefRangeStart = 564424, RefRangeEnd = 564430, XrefRangeStart = 564423, XrefRangeEnd = 564424, 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: 0x060058EB RID: 22763 RVA: 0x001661E0 File Offset: 0x001643E0
	[CallerCount(6)]
	[CachedScanResults(RefRangeStart = 564437, RefRangeEnd = 564443, XrefRangeStart = 564430, XrefRangeEnd = 564437, 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: 0x060058EC RID: 22764 RVA: 0x00166234 File Offset: 0x00164434
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 564450, RefRangeEnd = 564455, XrefRangeStart = 564443, XrefRangeEnd = 564450, 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: 0x060058ED RID: 22765 RVA: 0x00166290 File Offset: 0x00164490
	[CallerCount(5)]
	[CachedScanResults(RefRangeStart = 564455, RefRangeEnd = 564460, XrefRangeStart = 564455, XrefRangeEnd = 564455, 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: 0x060058EE RID: 22766 RVA: 0x001662E0 File Offset: 0x001644E0
	[CallerCount(63)]
	[CachedScanResults(RefRangeStart = 222154, RefRangeEnd = 222217, XrefRangeStart = 222154, XrefRangeEnd = 222217, 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: 0x060058EF RID: 22767 RVA: 0x0016632C File Offset: 0x0016452C
	// 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, 100669564);
		UISwitchArrowController.NativeMethodInfoPtr_SwitchPageLeftward_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669565);
		UISwitchArrowController.NativeMethodInfoPtr_SwitchPageRightward_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669566);
		UISwitchArrowController.NativeMethodInfoPtr_UpdatePageAmount_Public_Void_Int32_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669567);
		UISwitchArrowController.NativeMethodInfoPtr_UpdateArrowState_Private_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669568);
		UISwitchArrowController.NativeMethodInfoPtr_BindPointerEnterEvent_Public_Void_Action_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669569);
		UISwitchArrowController.NativeMethodInfoPtr_HasPointerEntered_Public_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669570);
		UISwitchArrowController.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UISwitchArrowController>.NativeClassPtr, 100669571);
	}

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

	// Token: 0x17001F14 RID: 7956
	// (get) Token: 0x060058F1 RID: 22769 RVA: 0x0016644C File Offset: 0x0016464C
	// (set) Token: 0x060058F2 RID: 22770 RVA: 0x00166480 File Offset: 0x00164680
	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: 0x17001F15 RID: 7957
	// (get) Token: 0x060058F3 RID: 22771 RVA: 0x001664A8 File Offset: 0x001646A8
	// (set) Token: 0x060058F4 RID: 22772 RVA: 0x001664DC File Offset: 0x001646DC
	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: 0x17001F16 RID: 7958
	// (get) Token: 0x060058F5 RID: 22773 RVA: 0x00166504 File Offset: 0x00164704
	// (set) Token: 0x060058F6 RID: 22774 RVA: 0x00166538 File Offset: 0x00164738
	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: 0x17001F17 RID: 7959
	// (get) Token: 0x060058F7 RID: 22775 RVA: 0x00166560 File Offset: 0x00164760
	// (set) Token: 0x060058F8 RID: 22776 RVA: 0x00166588 File Offset: 0x00164788
	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: 0x04003AFC RID: 15100
	private static readonly IntPtr NativeFieldInfoPtr_switchArrows;

	// Token: 0x04003AFD RID: 15101
	private static readonly IntPtr NativeFieldInfoPtr_trySwitchLeftward;

	// Token: 0x04003AFE RID: 15102
	private static readonly IntPtr NativeFieldInfoPtr_trySwitchRightward;

	// Token: 0x04003AFF RID: 15103
	private static readonly IntPtr NativeFieldInfoPtr_pageAmount;

	// Token: 0x04003B00 RID: 15104
	private static readonly IntPtr NativeMethodInfoPtr_Init_Public_Void_Func_1_Int32_Func_1_Int32_0;

	// Token: 0x04003B01 RID: 15105
	private static readonly IntPtr NativeMethodInfoPtr_SwitchPageLeftward_Public_Void_0;

	// Token: 0x04003B02 RID: 15106
	private static readonly IntPtr NativeMethodInfoPtr_SwitchPageRightward_Public_Void_0;

	// Token: 0x04003B03 RID: 15107
	private static readonly IntPtr NativeMethodInfoPtr_UpdatePageAmount_Public_Void_Int32_Int32_0;

	// Token: 0x04003B04 RID: 15108
	private static readonly IntPtr NativeMethodInfoPtr_UpdateArrowState_Private_Void_Int32_0;

	// Token: 0x04003B05 RID: 15109
	private static readonly IntPtr NativeMethodInfoPtr_BindPointerEnterEvent_Public_Void_Action_0;

	// Token: 0x04003B06 RID: 15110
	private static readonly IntPtr NativeMethodInfoPtr_HasPointerEntered_Public_Boolean_0;

	// Token: 0x04003B07 RID: 15111
	private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
}
