package com.airlock.iam.flow.shared.domain.model.fido;

import com.airlock.iam.authentication.api.domain.service.username.IdentificationResult;
import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.factor.domain.model.fido.FidoAuthenticatorUnverifiedAssertionResponse;
import com.airlock.iam.factor.domain.model.fido.FidoAuthenticatorUnverifiedAttestationResponse;
import com.airlock.iam.factor.domain.model.fido.FidoRegisteredCredential;
import com.airlock.iam.factor.domain.model.fido.FidoRelyingParty;
import com.airlock.iam.factor.domain.model.fido.user.FidoPasswordlessUser;
import com.airlock.iam.factor.domain.model.fido.user.FidoUserPrincipal;
import com.airlock.iam.fido.api.domain.model.FidoRelyingPartyId;

public interface FidoLoginLogger {
   void logRegistrationFailure(
      UserId var1, FidoRelyingPartyId var2, FidoAuthenticatorUnverifiedAttestationResponse var3, FidoRelyingParty.FidoRegistrationVerificationErrorCode var4
   );

   void logRegistrationSuccess(FidoRegisteredCredential var1);

   void logPasswordlessMissingUserHandle(FidoAuthenticatorUnverifiedAssertionResponse var1);

   void logPasswordlessUnknownUserHandle(FidoAuthenticatorUnverifiedAssertionResponse var1);

   void logPasswordlessIdentificationFailure(UserId var1, IdentificationResult.IdentificationFailure.IdentificationError var2);

   void logPasswordlessAuthenticationFailure(FidoPasswordlessUser var1, FidoAuthenticatorUnverifiedAssertionResponse var2);

   void logPasswordlessAuthenticationSuccess(FidoRegisteredCredential var1);

   void logAuthenticationFailure(FidoUserPrincipal var1, FidoAuthenticatorUnverifiedAssertionResponse var2);

   void logAuthenticationSuccess(FidoRegisteredCredential var1);

   void logClientFailure(UserId var1, String var2);
}
