using System.Threading.Tasks;
namespace RMC.Backend.Baas
{
///
/// Defines the API: This subsystem
///
public interface IAccountsSubsystem : IInitializableAsync, IConfigurable
{
// Properties ------------------------------------
AccountsEvent OnInitialized { get; }
AccountsEvent OnUserCreated { get; }
AccountsEvent OnUserDeleted { get; }
AccountsEvent OnUserSignedIn { get; }
AccountsEvent OnUserSignedOut { get; }
bool HasUser();
User GetUser();
// General Methods ------------------------------
Task UserCreateAsync(string email, string password, string nickname);
Task UserSignInAsync(string email, string password);
Task UserSignOutAsync(string tokenId);
}
}