using skyscraper5.Mpeg2;
using skyscraper5.src.InteractionChannel.Model;
using skyscraper5.src.InteractionChannel.Model.Descriptors;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.src.InteractionChannel.Model2;
using skyscraper8.GSE.GSE;
using skyscraper8.InteractionChannel.Model;
using skyscraper8.InteractionChannel.Model2;
using skyscraper8.InteractionChannel.Model2.Descriptors;

namespace skyscraper5.src.InteractionChannel
{
	public interface InteractionChannelHandler
	{
		void OnCorrectionMessage(ushort interactiveNetworkId, Cmt cmt);
		void OnFrameComposition(ushort interactiveNetworkId, Fct fct);
		void OnInteractionChannelError(InteractionChannelErrorState unexpectedTable);
		void OnRcsMap(Rmt rmt);
		void OnSatellitePosition(ushort interactiveNetworkId, Spt spt);
		void OnSuperframeComposition(ushort interactiveNetworkId, Sct sct);
		void OnTerminalBurstTimePlan(ushort interactiveNetworkId, Tbtp tbtp);
		void OnTimeslotComposition(ushort interactiveNetworkId, Tct tct);
		void OnTransmissionModeSupport(ushort interactiveNetworkId, Tmst tmst);
		int GetRmtTransmissionStandard(ushort networkId);
        void OnTerminalBurstTimePlan2(ushort interactiveNetworkId, Tbtp2 tbtp2);
        void OnFrameComposition2(ushort networkId, Fct2 fct2);
        void OnBroadcastConfiguration(ushort networkId, Bct bct);
        void OnRcs2Nit(ushort interactiveNetworkId, RcsNit nit);
        void OnRcs2Tdt(ushort interactiveNetworkId, Rcs2Tdt tdt);
        void OnTransmissionModeSupport2(ushort interactiveNetworkId, Tmst2 tmst2);
		void OnTerminalInformationMessage(ushort? interactiveNetworkId, PhysicalAddress physicalAddress, Tim tim);
	}
}
