using Ablera.Serdica.Authority.Plugins.Base.Models;

namespace Ablera.Serdica.Authority.Plugins.Base.Contracts;

public interface IPasswordManager<TUser>
    where TUser : class
{
    Task<OperationResult> ChangePasswordAsync(TUser user, string currentPassword, string newPassword, CancellationToken ct = default);
    Task<OperationResult> ResetPasswordAsync(TUser user, string resetToken, string newPassword, CancellationToken ct = default);
}
