using Bit.Core.Utilities.Fido2; namespace Bit.Core.Abstractions { public interface IFido2MakeCredentialConfirmationUserInterface : IFido2MakeCredentialUserInterface { /// /// Call this method after the user chose where to save the new Fido2 credential. /// /// /// Cipher ID where to save the new credential. /// If null a new default passkey cipher item will be created /// /// /// Whether the user has been verified or not. /// If null verification has not taken place yet. /// void Confirm(string cipherId, bool? userVerified); /// /// Call this method after the user chose where to save the new Fido2 credential. /// /// /// Cipher ID where to save the new credential. /// If null a new default passkey cipher item will be created /// /// /// If the cipher corresponding to the already has a Fido2 credential. /// /// /// Whether the user has been verified or not. /// If null verification has not taken place yet. /// Task ConfirmAsync(string cipherId, bool alreadyHasFido2Credential, bool? userVerified); /// /// Cancels the current flow to make a credential /// void Cancel(); /// /// Call this if an exception needs to happen on the credential making process /// void OnConfirmationException(Exception ex); /// /// True if we are already confirming a new credential. /// bool IsConfirmingNewCredential { get; } /// /// Call this after the vault was unlocked so that Fido2 credential creation can proceed. /// void ConfirmVaultUnlocked(); /// /// True if we are waiting for the vault to be unlocked. /// bool IsWaitingUnlockVault { get; } Fido2UserVerificationOptions? GetCurrentUserVerificationOptions(); void SetCheckHasVaultBeenUnlockedInThisTransaction(Func checkHasVaultBeenUnlockedInThisTransaction); } }