using System;
using System.Collections.Generic;
using System.IO;
using Cpp2IlInjected;

namespace MarsSDK
{
	// Token: 0x020005EA RID: 1514
	[Token(Token = "0x20005EA")]
	public class StandaloneFileSystem : IFileSystem
	{
		// Token: 0x06002FBE RID: 12222 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002FBE")]
		[Address(RVA = "0xAB4A30", Offset = "0xAB3830", VA = "0x180AB4A30")]
		public StandaloneFileSystem(IReadOnlyList<string> dataPathGroups, string dataExtension = ".dat")
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002FBF RID: 12223 RVA: 0x000658B4 File Offset: 0x00063AB4
		[Token(Token = "0x6002FBF")]
		[Address(RVA = "0xAB4810", Offset = "0xAB3610", VA = "0x180AB4810", Slot = "4")]
		public bool HasFile(int fileGroup, string dataName)
		{
			return File.Exists(this.GetFilePath(fileGroup, dataName));
		}

		// Token: 0x06002FC0 RID: 12224 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002FC0")]
		[Address(RVA = "0xAB48F0", Offset = "0xAB36F0", VA = "0x180AB48F0", Slot = "5")]
		public WriteFileResult WriteFile(int fileGroup, string dataName, byte[] data)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002FC1 RID: 12225 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002FC1")]
		[Address(RVA = "0xAB4830", Offset = "0xAB3630", VA = "0x180AB4830", Slot = "6")]
		public ReadFileResult ReadFile(int fileGroup, string dataName, out byte[] data)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002FC2 RID: 12226 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002FC2")]
		[Address(RVA = "0xAB46C0", Offset = "0xAB34C0", VA = "0x180AB46C0", Slot = "7")]
		public void DeleteFile(int fileGroup, string dataName)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002FC3 RID: 12227 RVA: 0x000658D0 File Offset: 0x00063AD0
		[Token(Token = "0x6002FC3")]
		[Address(RVA = "0xAB4760", Offset = "0xAB3560", VA = "0x180AB4760")]
		private string GetFilePath(int fileGroup, string fileName)
		{
			string[] array = this.pathGroups;
			string text = this.dataExtension;
			string text2 = array[fileGroup];
			string text3 = fileName + text;
			return Path.Combine(text2, text3);
		}

		// Token: 0x04003A04 RID: 14852
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003A04")]
		private readonly string dataExtension;

		// Token: 0x04003A05 RID: 14853
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003A05")]
		private readonly string[] pathGroups;
	}
}
