using System.Collections.Generic;
using System.Threading;
using Cysharp.Threading.Tasks;
namespace MoralisUnity.Platform.Abstractions
{
public interface IAuthenticationProvider
{
///
/// Authenticates with the service.
///
/// The cancellation token.
UniTask> AuthenticateAsync(CancellationToken cancellationToken);
///
/// Deauthenticates (logs out) the user associated with this provider. This
/// call may block.
///
void Deauthenticate();
///
/// Restores authentication that has been serialized, such as session keys,
/// etc.
///
/// The auth data for the provider. This value may be null
/// when unlinking an account.
/// true iff the authData was successfully synchronized. A false return
/// value indicates that the user should no longer be associated because of bad auth
/// data.
bool RestoreAuthentication(IDictionary authData);
///
/// Provides a unique name for the type of authentication the provider does.
/// For example, the FacebookAuthenticationProvider would return "facebook".
///
string AuthType { get; }
}
}