using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Connect;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.Connect
{
public interface IConnectManager
{
///
/// Gets the wan API address.
///
/// The wan API address.
string WanApiAddress { get; }
///
/// Links the user.
///
/// The user identifier.
/// The connect username.
/// Task.
Task LinkUser(string userId, string connectUsername);
///
/// Removes the link.
///
/// The user identifier.
/// Task.
Task RemoveConnect(string userId);
///
/// Invites the user.
///
/// The request.
/// Task<UserLinkResult>.
Task InviteUser(ConnectAuthorizationRequest request);
///
/// Gets the pending guests.
///
/// Task<List<ConnectAuthorization>>.
Task> GetPendingGuests();
///
/// Gets the user from exchange token.
///
/// The token.
/// User.
User GetUserFromExchangeToken(string token);
///
/// Cancels the authorization.
///
/// The identifier.
/// Task.
Task CancelAuthorization(string id);
///
/// Authenticates the specified username.
///
/// The username.
/// The password MD5.
/// Task.
Task Authenticate(string username, string passwordMd5);
///
/// Gets the local user.
///
/// The connect user identifier.
/// Task<User>.
Task GetLocalUser(string connectUserId);
///
/// Determines whether [is authorization token valid] [the specified token].
///
/// The token.
/// true if [is authorization token valid] [the specified token]; otherwise, false.
bool IsAuthorizationTokenValid(string token);
}
}