using System.Threading;

namespace QCRPG.Framework;

public class ConnectionSpecificProtocolInfo
{
	public enum SleepModeState
	{
		NONE,
		IN_BAND_NORMAL_HANDLING,
		IN_BAND_ALWAYS_AWAKE
	}

	public const int MAX_WAKE_RETRIES = 30;

	public const byte IN_BAND_WAKE_SLEEP_ACK = 252;

	public const byte IN_BAND_WAKE = 253;

	public const byte IN_BAND_SLEEP = 254;

	public const int IN_BAND_WAKE_SLEEP_ACK_TIMEOUT_MS = 15;

	public const int MAX_CONT_FD_UNTIL_ACK = 30;

	public SleepModeState SleepMode;

	public bool SentWakeByte;

	public ManualResetEvent receivedInBandWakeSleepAckEvent = new ManualResetEvent(initialState: false);

	public bool SentAckResponse;

	public bool awake;

	public int FdCount;
}
