using Aurora.Services.ClientService.Events; using Aurora.Proto.Events; using Aurora.Proto.Party; using Aurora.Proto.Playback; using Aurora.Proto.Sync; using System.Threading.Tasks; namespace Aurora.Services.ClientService { public interface IClientService { MediaPausedEventHandler OnMediaPaused { get; set; } NewMediaPlayingEventHandler OnNewMediaPlaying { get; set; } PartyMemberJoinedEventHandler OnPartyMemberJoined { get; set; } PartyMemberLeftEventHandler OnPartyMemberLeft { get; set; } MediaResumedEventHandler OnMediaResumed { get; set; } RemotePartyService.RemotePartyServiceClient RemotePartyClient { get; } RemoteEventService.RemoteEventServiceClient RemoteEventClient { get; } RemotePlaybackService.RemotePlaybackServiceClient RemotePlaybackClient { get; } RemoteSyncService.RemoteSyncServiceClient RemoteSyncClient { get; } bool IsStarted { get; } bool IsHost { get; set; } void Start(string hostname, string port); void Close(); /// /// Asynchronous function for processing events off of the event stream. /// /// Task GetEvents(); void StopEvents(); } }