using OtpNet;
namespace EnvelopeGenerator.Application.Common.Interfaces.Services;
///
///
///
public interface IAuthenticator
{
///
///
///
///
///
string GenerateCode(int length);
///
///
///
///
///
string GenerateTotpSecretKey(int? length = null);
///
///
///
///
///
///
///
///
///
byte[] GenerateTotpQrCode(string userEmail, string secretKey, string? issuer = null, string? totpUrlFormat = null, int? pixelsPerModule = null);
///
///
///
///
///
///
///
///
///
byte[] GenerateTotpQrCode(string userEmail, int? length = null, string? issuer = null, string? totpUrlFormat = null, int? pixelsPerModule = null);
///
///
///
///
///
///
string GenerateTotp(string secretKey, int step = 30);
///
///
///
///
///
///
///
///
bool VerifyTotp(string totpCode, string secretKey, int step = 30, VerificationWindow? window = null);
}