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

import com.airlock.iam.common.api.domain.model.authentication.factor.AuthenticationFactor;
import com.airlock.iam.common.api.domain.model.authentication.factor.AuthenticationFactorDetail;
import com.airlock.iam.common.api.domain.model.device.usage.AuthenticationDeviceUsage;
import com.airlock.iam.flow.api.domain.model.step.StepResult;
import java.util.Optional;

public interface AuthenticationStepResult extends StepResult {
   AuthenticationFactor getAuthenticationFactor();

   Optional<AuthenticationFactorDetail> getAuthenticationFactorDetail();

   boolean isFailedFactor();

   Optional<AuthenticationDeviceUsage> getDeviceUsageData();

   AuthenticationStepResultBuilder toBuilder();
}
