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

namespace MarsSDK
{
	// Token: 0x02000600 RID: 1536
	public class IFileSystem : Il2CppObjectBase
	{
		// Token: 0x06009EE1 RID: 40673 RVA: 0x0028A8B4 File Offset: 0x00288AB4
		[CallerCount(0)]
		public unsafe virtual bool HasFile(int fileGroup, string dataName)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IFileSystem.NativeMethodInfoPtr_HasFile_Public_Abstract_Virtual_New_Boolean_Int32_String_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06009EE2 RID: 40674 RVA: 0x0028A93C File Offset: 0x00288B3C
		[CallerCount(0)]
		public unsafe virtual WriteFileResult WriteFile(int fileGroup, string dataName, Il2CppStructArray<byte> data)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(data);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IFileSystem.NativeMethodInfoPtr_WriteFile_Public_Abstract_Virtual_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06009EE3 RID: 40675 RVA: 0x0028A9DC File Offset: 0x00288BDC
		[CallerCount(0)]
		public unsafe virtual ReadFileResult ReadFile(int fileGroup, string dataName, out Il2CppStructArray<byte> data)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			ref IntPtr ptr2 = ref ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)];
			IntPtr intPtr = 0;
			ptr2 = &intPtr;
			IntPtr intPtr3;
			IntPtr intPtr2 = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IFileSystem.NativeMethodInfoPtr_ReadFile_Public_Abstract_Virtual_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr3);
			Il2CppException.RaiseExceptionIfNecessary(intPtr3);
			IntPtr intPtr4 = intPtr;
			data = ((intPtr4 == 0) ? null : new Il2CppStructArray(intPtr4));
			return *IL2CPP.il2cpp_object_unbox(intPtr2);
		}

		// Token: 0x06009EE4 RID: 40676 RVA: 0x0028AA90 File Offset: 0x00288C90
		[CallerCount(0)]
		public unsafe virtual void DeleteFile(int fileGroup, string dataName)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref fileGroup;
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.ManagedStringToIl2Cpp(dataName);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), IFileSystem.NativeMethodInfoPtr_DeleteFile_Public_Abstract_Virtual_New_Void_Int32_String_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009EE5 RID: 40677 RVA: 0x0028AB08 File Offset: 0x00288D08
		// Note: this type is marked as 'beforefieldinit'.
		static IFileSystem()
		{
			Il2CppClassPointerStore<IFileSystem>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MarsSDK", "IFileSystem");
			IFileSystem.NativeMethodInfoPtr_HasFile_Public_Abstract_Virtual_New_Boolean_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100675511);
			IFileSystem.NativeMethodInfoPtr_WriteFile_Public_Abstract_Virtual_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100675512);
			IFileSystem.NativeMethodInfoPtr_ReadFile_Public_Abstract_Virtual_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100675513);
			IFileSystem.NativeMethodInfoPtr_DeleteFile_Public_Abstract_Virtual_New_Void_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100675514);
		}

		// Token: 0x06009EE6 RID: 40678 RVA: 0x000ED5BE File Offset: 0x000EB7BE
		public IFileSystem(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04006A65 RID: 27237
		private static readonly IntPtr NativeMethodInfoPtr_HasFile_Public_Abstract_Virtual_New_Boolean_Int32_String_0;

		// Token: 0x04006A66 RID: 27238
		private static readonly IntPtr NativeMethodInfoPtr_WriteFile_Public_Abstract_Virtual_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0;

		// Token: 0x04006A67 RID: 27239
		private static readonly IntPtr NativeMethodInfoPtr_ReadFile_Public_Abstract_Virtual_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0;

		// Token: 0x04006A68 RID: 27240
		private static readonly IntPtr NativeMethodInfoPtr_DeleteFile_Public_Abstract_Virtual_New_Void_Int32_String_0;
	}
}
