using System;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.AspNet.Identity
{
///
/// Interface that exposes basic role management
///
///
///
public interface IRoleStore : IDisposable where TRole : IRole
{
///
/// Insert a new role
///
///
///
///
Task Create(TRole role, CancellationToken cancellationToken = default(CancellationToken));
///
/// Update a role
///
///
///
///
Task Update(TRole role, CancellationToken cancellationToken = default(CancellationToken));
///
/// Delete a role
///
///
///
///
Task Delete(TRole role, CancellationToken cancellationToken = default(CancellationToken));
///
/// Finds a role by id
///
///
///
///
Task FindById(TKey roleId, CancellationToken cancellationToken = default(CancellationToken));
///
/// Find a role by name
///
///
///
///
Task FindByName(string roleName, CancellationToken cancellationToken = default(CancellationToken));
}
}