using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.AspNet.Identity
{
///
/// Interface that maps users to login providers, i.e. Google, Facebook, Twitter, Microsoft
///
///
public interface IUserLoginStore : IUserStore where TUser : class
{
///
/// Adds a user login with the specified provider and key
///
///
///
///
///
Task AddLoginAsync(TUser user, UserLoginInfo login, CancellationToken cancellationToken = default(CancellationToken));
///
/// Removes the user login with the specified combination if it exists, returns true if found and removed
///
///
///
///
///
Task RemoveLoginAsync(TUser user, UserLoginInfo login, CancellationToken cancellationToken = default(CancellationToken));
///
/// Returns the linked accounts for this user
///
///
///
///
Task> GetLoginsAsync(TUser user, CancellationToken cancellationToken = default(CancellationToken));
///
/// Returns the user associated with this login
///
///
///
///
Task FindByLoginAsync(UserLoginInfo login, CancellationToken cancellationToken = default(CancellationToken));
}
}