using System.Threading.Tasks; using System.Collections.Generic; namespace Sandbox { internal interface IStreamService { StreamService ServiceType { get; } Task Connect(); void Disconnect(); void SendMessage( string message ); void ClearChat(); void BanUser( string username, string reason ); void UnbanUser( string username ); void TimeoutUser( string username, int duration, string reason ); void SetChannelGame( string gameId ); void SetChannelLanguage( string language ); void SetChannelTitle( string title ); void SetChannelDelay( int delay ); Task GetUser( string username ); Task> GetUserFollowing( string userId ); Task> GetUserFollowers( string userId ); Task GetChannel(); Task CreatePoll( string userId, string title, int duration, string[] choices ); Task EndPoll( string userId, string pollId, bool archive = false ); Task CreatePrediction( string userId, string title, int duration, string firstOutcome, string secondOutcome ); Task LockPrediction( string userId, string predictionId ); Task CancelPrediction( string userId, string predictionId ); Task ResolvePrediction( string userId, string predictionId, string winningOutcomeId ); Task CreateClip( string userId, bool hasDelay ); void Tick(); } }