package com.airlock.iam.authentication.api.domain.model.step;

import com.airlock.iam.common.api.domain.model.authmethod.AuthenticationMethod;
import com.airlock.iam.flow.api.domain.model.step.FlowStep;

public interface AuthenticationMethodVerifyingFlowStep extends FlowStep {
   AuthenticationStepResult initialize();

   static boolean isAuthMethodVerifyingFlowStep(FlowStep step) {
      return step instanceof AuthenticationMethodVerifyingFlowStep;
   }

   static AuthenticationMethodVerifyingFlowStep asAuthMethodVerifyingFlowStep(FlowStep step) {
      return (AuthenticationMethodVerifyingFlowStep)step;
   }

   AuthenticationMethod getAuthenticationMethod();
}
