using System.Threading.Tasks;
namespace osu.Game.Online.Spectator
{
///
/// An interface defining a spectator client instance.
///
public interface ISpectatorClient
{
///
/// Signals that a user has begun a new play session.
///
/// The user.
/// The state of gameplay.
Task UserBeganPlaying(string userId, SpectatorState state);
///
/// Signals that a user has finished a play session.
///
/// The user.
/// The state of gameplay.
Task UserFinishedPlaying(string userId, SpectatorState state);
///
/// Called when new frames are available for a subscribed user's play session.
///
/// The user.
/// The frame data.
Task UserSentFrames(string userId, FrameDataBundle data);
}
}