using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x0200003D RID: 61
[Token(Token = "0x200003D")]
public class LogHistory : IDisposable
{
	// Token: 0x17000023 RID: 35
	// (get) Token: 0x060001BD RID: 445 RVA: 0x00006D20 File Offset: 0x00004F20
	// (set) Token: 0x060001BE RID: 446 RVA: 0x00006D34 File Offset: 0x00004F34
	[Token(Token = "0x17000023")]
	public int ErrorCount
	{
		[Token(Token = "0x60001BD")]
		[Address(RVA = "0x3F0050", Offset = "0x3EEE50", VA = "0x1803F0050")]
		get;
		[Token(Token = "0x60001BE")]
		[Address(RVA = "0x3FFE30", Offset = "0x3FEC30", VA = "0x1803FFE30")]
		private set;
	}

	// Token: 0x17000024 RID: 36
	// (get) Token: 0x060001BF RID: 447 RVA: 0x00006D48 File Offset: 0x00004F48
	// (set) Token: 0x060001C0 RID: 448 RVA: 0x00006D5C File Offset: 0x00004F5C
	[Token(Token = "0x17000024")]
	public int AssertCount
	{
		[Token(Token = "0x60001BF")]
		[Address(RVA = "0x3F0000", Offset = "0x3EEE00", VA = "0x1803F0000")]
		get;
		[Token(Token = "0x60001C0")]
		[Address(RVA = "0x3FFE20", Offset = "0x3FEC20", VA = "0x1803FFE20")]
		private set;
	}

	// Token: 0x17000025 RID: 37
	// (get) Token: 0x060001C1 RID: 449 RVA: 0x00006D70 File Offset: 0x00004F70
	// (set) Token: 0x060001C2 RID: 450 RVA: 0x00006D84 File Offset: 0x00004F84
	[Token(Token = "0x17000025")]
	public int WarningCount
	{
		[Token(Token = "0x60001C1")]
		[Address(RVA = "0x3F0040", Offset = "0x3EEE40", VA = "0x1803F0040")]
		get;
		[Token(Token = "0x60001C2")]
		[Address(RVA = "0x3FFE60", Offset = "0x3FEC60", VA = "0x1803FFE60")]
		private set;
	}

	// Token: 0x17000026 RID: 38
	// (get) Token: 0x060001C3 RID: 451 RVA: 0x00006D98 File Offset: 0x00004F98
	// (set) Token: 0x060001C4 RID: 452 RVA: 0x00006DAC File Offset: 0x00004FAC
	[Token(Token = "0x17000026")]
	public int RegularLogCount
	{
		[Token(Token = "0x60001C3")]
		[Address(RVA = "0x3F0010", Offset = "0x3EEE10", VA = "0x1803F0010")]
		get;
		[Token(Token = "0x60001C4")]
		[Address(RVA = "0x3FFE50", Offset = "0x3FEC50", VA = "0x1803FFE50")]
		private set;
	}

	// Token: 0x17000027 RID: 39
	// (get) Token: 0x060001C5 RID: 453 RVA: 0x00006DC0 File Offset: 0x00004FC0
	// (set) Token: 0x060001C6 RID: 454 RVA: 0x00006DD4 File Offset: 0x00004FD4
	[Token(Token = "0x17000027")]
	public int ExceptionCount
	{
		[Token(Token = "0x60001C5")]
		[Address(RVA = "0x3F0030", Offset = "0x3EEE30", VA = "0x1803F0030")]
		get;
		[Token(Token = "0x60001C6")]
		[Address(RVA = "0x3FFE40", Offset = "0x3FEC40", VA = "0x1803FFE40")]
		private set;
	}

	// Token: 0x17000028 RID: 40
	// (get) Token: 0x060001C7 RID: 455 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x17000028")]
	public IList<LogHistoryItem> LogItems
	{
		[Token(Token = "0x60001C7")]
		[Address(RVA = "0x3FFC50", Offset = "0x3FEA50", VA = "0x1803FFC50")]
		get
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x17000029 RID: 41
	// (get) Token: 0x060001C8 RID: 456 RVA: 0x00006DE8 File Offset: 0x00004FE8
	[Token(Token = "0x17000029")]
	public static LogHistory Instance
	{
		[Token(Token = "0x60001C8")]
		[Address(RVA = "0x3FFBF0", Offset = "0x3FE9F0", VA = "0x1803FFBF0")]
		get
		{
			return LogHistory.instance;
		}
	}

	// Token: 0x14000001 RID: 1
	// (add) Token: 0x060001C9 RID: 457 RVA: 0x00006DFC File Offset: 0x00004FFC
	// (remove) Token: 0x060001CA RID: 458 RVA: 0x00006E2C File Offset: 0x0000502C
	[Token(Token = "0x14000001")]
	public event Action<LogHistoryItem> LogHistoryItemAdded
	{
		[Token(Token = "0x60001C9")]
		[Address(RVA = "0x3FFAF0", Offset = "0x3FE8F0", VA = "0x1803FFAF0")]
		add
		{
			Delegate @delegate = Delegate.Combine(this.logHistoryItemAdded, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryItemAdded = num;
			}
			throw new InvalidCastException();
		}
		[Token(Token = "0x60001CA")]
		[Address(RVA = "0x3FFD20", Offset = "0x3FEB20", VA = "0x1803FFD20")]
		remove
		{
			Delegate @delegate = Delegate.Remove(this.logHistoryItemAdded, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryItemAdded = num;
			}
			throw new InvalidCastException();
		}
	}

	// Token: 0x14000002 RID: 2
	// (add) Token: 0x060001CB RID: 459 RVA: 0x00006E5C File Offset: 0x0000505C
	// (remove) Token: 0x060001CC RID: 460 RVA: 0x00006E8C File Offset: 0x0000508C
	[Token(Token = "0x14000002")]
	public event Action<LogHistoryItem> LogHistoryItemRemoved
	{
		[Token(Token = "0x60001CB")]
		[Address(RVA = "0x3FFB70", Offset = "0x3FE970", VA = "0x1803FFB70")]
		add
		{
			Delegate @delegate = Delegate.Combine(this.logHistoryItemRemoved, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryItemRemoved = num;
			}
			throw new InvalidCastException();
		}
		[Token(Token = "0x60001CC")]
		[Address(RVA = "0x3FFDA0", Offset = "0x3FEBA0", VA = "0x1803FFDA0")]
		remove
		{
			Delegate @delegate = Delegate.Remove(this.logHistoryItemRemoved, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryItemRemoved = num;
			}
			throw new InvalidCastException();
		}
	}

	// Token: 0x14000003 RID: 3
	// (add) Token: 0x060001CD RID: 461 RVA: 0x00006EBC File Offset: 0x000050BC
	// (remove) Token: 0x060001CE RID: 462 RVA: 0x00006EEC File Offset: 0x000050EC
	[Token(Token = "0x14000003")]
	public event Action LogHistoryCleared
	{
		[Token(Token = "0x60001CD")]
		[Address(RVA = "0x3FFA70", Offset = "0x3FE870", VA = "0x1803FFA70")]
		add
		{
			Delegate @delegate = Delegate.Combine(this.logHistoryCleared, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryCleared = num;
			}
			throw new InvalidCastException();
		}
		[Token(Token = "0x60001CE")]
		[Address(RVA = "0x3FFCA0", Offset = "0x3FEAA0", VA = "0x1803FFCA0")]
		remove
		{
			Delegate @delegate = Delegate.Remove(this.logHistoryCleared, value);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				this.logHistoryCleared = num;
			}
			throw new InvalidCastException();
		}
	}

	// Token: 0x060001CF RID: 463 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001CF")]
	[Address(RVA = "0x3FF580", Offset = "0x3FE380", VA = "0x1803FF580")]
	public LogHistory()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D0 RID: 464 RVA: 0x00006F1C File Offset: 0x0000511C
	[Token(Token = "0x60001D0")]
	[Address(RVA = "0x3FEC40", Offset = "0x3FDA40", VA = "0x1803FEC40", Slot = "4")]
	public void Dispose()
	{
		Application.logMessageReceived -= this.HandleLoggingEvent;
	}

	// Token: 0x060001D1 RID: 465 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D1")]
	[Address(RVA = "0x3FEB60", Offset = "0x3FD960", VA = "0x1803FEB60")]
	public void Clear()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D2 RID: 466 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D2")]
	[Address(RVA = "0x3FF1B0", Offset = "0x3FDFB0", VA = "0x1803FF1B0")]
	public void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D3 RID: 467 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D3")]
	[Address(RVA = "0x3FED20", Offset = "0x3FDB20", VA = "0x1803FED20")]
	private string GetFilterStackTrace(string stackTrace)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D4 RID: 468 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D4")]
	[Address(RVA = "0x4E7880", Offset = "0x4E6680", VA = "0x1804E7880")]
	private T[] GetSubArray<T>(T[] data, int index, int length)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D5 RID: 469 RVA: 0x00006F3C File Offset: 0x0000513C
	[Token(Token = "0x60001D5")]
	[Address(RVA = "0x3FF170", Offset = "0x3FDF70", VA = "0x1803FF170")]
	private void UpdateTypeCounter(LogType type, int count)
	{
		if (type != LogType.Error)
		{
			if (type == LogType.Error)
			{
				return;
			}
			if (type == LogType.Error)
			{
				return;
			}
			if (type == LogType.Error)
			{
				return;
			}
			if (type == LogType.Assert)
			{
				return;
			}
		}
	}

	// Token: 0x060001D6 RID: 470 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D6")]
	[Address(RVA = "0x3FEF20", Offset = "0x3FDD20", VA = "0x1803FEF20")]
	private void HandleLoggingEvent(string logString, string stackTrace, LogType type)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D7 RID: 471 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60001D7")]
	[Address(RVA = "0x3FF0B0", Offset = "0x3FDEB0", VA = "0x1803FF0B0")]
	private void HandleUnhandledException(object sender, UnhandledExceptionEventArgs e)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060001D8 RID: 472 RVA: 0x000020D3 File Offset: 0x000002D3
	// Note: this type is marked as 'beforefieldinit'.
	[Token(Token = "0x60001D8")]
	[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
	static LogHistory()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0400021F RID: 543
	[Token(Token = "0x400021F")]
	private const int ITEM_LIMIT = 2000;

	// Token: 0x04000220 RID: 544
	[Token(Token = "0x4000220")]
	private static LogHistory instance;

	// Token: 0x04000221 RID: 545
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4000221")]
	private DateTime gameStartTime;

	// Token: 0x04000222 RID: 546
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4000222")]
	private object lockLogItemObject;

	// Token: 0x04000223 RID: 547
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4000223")]
	private readonly List<LogHistoryItem> deferredLogItems;

	// Token: 0x04000224 RID: 548
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4000224")]
	private readonly List<LogHistoryItem> logItems;

	// Token: 0x04000225 RID: 549
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4000225")]
	private Action<LogHistoryItem> logHistoryItemAdded;

	// Token: 0x04000226 RID: 550
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4000226")]
	private Action<LogHistoryItem> logHistoryItemRemoved;

	// Token: 0x04000227 RID: 551
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4000227")]
	private Action logHistoryCleared;
}
