package com.airlock.iam.flow.shared.domain.service.cronto;

import com.airlock.iam.base.api.domain.model.exception.EntityNotFoundException;
import com.airlock.iam.base.api.domain.model.store.exception.StoreFailureException;
import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.common.domain.model.cronto.ExternalCrontoDeviceId;
import com.airlock.iam.core.domain.model.cronto.challenge.CrontoDeactivationChallenge;
import com.airlock.iam.core.misc.impl.token.cronto.CrontoDeviceToken;
import java.util.List;

public interface CrontoDeviceManagementService {
   boolean hasUserCrontoAccount(UserId var1) throws StoreFailureException;

   CrontoDeviceToken getDeviceById(UserId var1, ExternalCrontoDeviceId var2) throws EntityNotFoundException, StoreFailureException;

   List<CrontoDeviceToken> getDevicesByUsername(UserId var1) throws EntityNotFoundException, StoreFailureException;

   void setDeviceLabel(UserId var1, ExternalCrontoDeviceId var2, String var3);

   void setDeviceEnabled(UserId var1, ExternalCrontoDeviceId var2, boolean var3);

   CrontoDeactivationChallenge deleteDevice(UserId var1, ExternalCrontoDeviceId var2);

   void allowPushNotification(UserId var1, ExternalCrontoDeviceId var2);

   void disallowPushNotification(UserId var1, ExternalCrontoDeviceId var2);
}
