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

namespace MarsSDK
{
	// Token: 0x02000658 RID: 1624
	public class IFileSystem : Il2CppObjectBase
	{
		// Token: 0x0600A734 RID: 42804 RVA: 0x002AD5F0 File Offset: 0x002AB7F0
		[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: 0x0600A735 RID: 42805 RVA: 0x002AD678 File Offset: 0x002AB878
		[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: 0x0600A736 RID: 42806 RVA: 0x002AD718 File Offset: 0x002AB918
		[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: 0x0600A737 RID: 42807 RVA: 0x002AD7CC File Offset: 0x002AB9CC
		[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: 0x0600A738 RID: 42808 RVA: 0x002AD844 File Offset: 0x002ABA44
		// 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, 100676224);
			IFileSystem.NativeMethodInfoPtr_WriteFile_Public_Abstract_Virtual_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100676225);
			IFileSystem.NativeMethodInfoPtr_ReadFile_Public_Abstract_Virtual_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100676226);
			IFileSystem.NativeMethodInfoPtr_DeleteFile_Public_Abstract_Virtual_New_Void_Int32_String_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<IFileSystem>.NativeClassPtr, 100676227);
		}

		// Token: 0x0600A739 RID: 42809 RVA: 0x000FB296 File Offset: 0x000F9496
		public IFileSystem(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x0400700E RID: 28686
		private static readonly IntPtr NativeMethodInfoPtr_HasFile_Public_Abstract_Virtual_New_Boolean_Int32_String_0;

		// Token: 0x0400700F RID: 28687
		private static readonly IntPtr NativeMethodInfoPtr_WriteFile_Public_Abstract_Virtual_New_WriteFileResult_Int32_String_Il2CppStructArray_1_Byte_0;

		// Token: 0x04007010 RID: 28688
		private static readonly IntPtr NativeMethodInfoPtr_ReadFile_Public_Abstract_Virtual_New_ReadFileResult_Int32_String_byref_Il2CppStructArray_1_Byte_0;

		// Token: 0x04007011 RID: 28689
		private static readonly IntPtr NativeMethodInfoPtr_DeleteFile_Public_Abstract_Virtual_New_Void_Int32_String_0;
	}
}
