package com.airlock.iam.authentication.domain.service.rememberme;

import com.airlock.iam.authentication.api.domain.service.username.IdentificationResult;
import com.airlock.iam.authentication.domain.model.rememberme.RememberMeJspSecret;
import com.airlock.iam.authentication.domain.model.rememberme.RememberMeJspToken;
import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.base.misc.result.Result;
import com.airlock.iam.flow.shared.domain.model.rememberme.RememberMeSecret;
import com.airlock.iam.flow.shared.domain.model.rememberme.RememberMeToken;
import java.util.Optional;

public interface RememberMeTokenVerificationService {
   Result<RememberMeToken, RememberMeTokenVerificationService.RememberMeVerificationFailure> verifyToken(RememberMeSecret var1);

   IdentificationResult identifyTokenOwner(UserId var1);

   Optional<RememberMeJspToken> verifyJspToken(RememberMeJspSecret var1);

   enum RememberMeVerificationFailure {
      REMEMBER_ME_TOKEN_NOT_FOUND,
      REMEMBER_ME_TOKEN_EXPIRED;
   }
}
