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

namespace Obi
{
	// Token: 0x020004E8 RID: 1256
	public class IObiSolverClient : Il2CppObjectBase
	{
		// Token: 0x06008FDB RID: 36827 RVA: 0x0025008C File Offset: 0x0024E28C
		[CallerCount(0)]
		public unsafe virtual bool AddToSolver(Object info)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(info);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IObiSolverClient.NativeMethodInfoPtr_AddToSolver_Public_Abstract_Virtual_New_Boolean_Object_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008FDC RID: 36828 RVA: 0x00250100 File Offset: 0x0024E300
		[CallerCount(0)]
		public unsafe virtual bool RemoveFromSolver(Object info)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(info);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IObiSolverClient.NativeMethodInfoPtr_RemoveFromSolver_Public_Abstract_Virtual_New_Boolean_Object_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008FDD RID: 36829 RVA: 0x00250174 File Offset: 0x0024E374
		[CallerCount(0)]
		public unsafe virtual void PushDataToSolver(ParticleData data = ParticleData.NONE)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref data;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IObiSolverClient.NativeMethodInfoPtr_PushDataToSolver_Public_Abstract_Virtual_New_Void_ParticleData_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008FDE RID: 36830 RVA: 0x002501D4 File Offset: 0x0024E3D4
		[CallerCount(0)]
		public unsafe virtual void PullDataFromSolver(ParticleData data = ParticleData.NONE)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref data;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IObiSolverClient.NativeMethodInfoPtr_PullDataFromSolver_Public_Abstract_Virtual_New_Void_ParticleData_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008FDF RID: 36831 RVA: 0x00250234 File Offset: 0x0024E434
		// Note: this type is marked as 'beforefieldinit'.
		static IObiSolverClient()
		{
			Il2CppClassPointerStore<IObiSolverClient>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "IObiSolverClient");
			IObiSolverClient.NativeMethodInfoPtr_AddToSolver_Public_Abstract_Virtual_New_Boolean_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IObiSolverClient>.NativeClassPtr, 100674441);
			IObiSolverClient.NativeMethodInfoPtr_RemoveFromSolver_Public_Abstract_Virtual_New_Boolean_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IObiSolverClient>.NativeClassPtr, 100674442);
			IObiSolverClient.NativeMethodInfoPtr_PushDataToSolver_Public_Abstract_Virtual_New_Void_ParticleData_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IObiSolverClient>.NativeClassPtr, 100674443);
			IObiSolverClient.NativeMethodInfoPtr_PullDataFromSolver_Public_Abstract_Virtual_New_Void_ParticleData_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IObiSolverClient>.NativeClassPtr, 100674444);
		}

		// Token: 0x06008FE0 RID: 36832 RVA: 0x000ED5BE File Offset: 0x000EB7BE
		public IObiSolverClient(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04005FF1 RID: 24561
		private static readonly IntPtr NativeMethodInfoPtr_AddToSolver_Public_Abstract_Virtual_New_Boolean_Object_0;

		// Token: 0x04005FF2 RID: 24562
		private static readonly IntPtr NativeMethodInfoPtr_RemoveFromSolver_Public_Abstract_Virtual_New_Boolean_Object_0;

		// Token: 0x04005FF3 RID: 24563
		private static readonly IntPtr NativeMethodInfoPtr_PushDataToSolver_Public_Abstract_Virtual_New_Void_ParticleData_0;

		// Token: 0x04005FF4 RID: 24564
		private static readonly IntPtr NativeMethodInfoPtr_PullDataFromSolver_Public_Abstract_Virtual_New_Void_ParticleData_0;
	}
}
