package com.airlock.iam.oauth2.domain.service;

import com.airlock.iam.common.api.domain.model.claims.Claim;
import com.airlock.iam.oauth2.api.domain.model.claims.OAuth2TokenInformation;
import java.util.List;

public interface OAuth2AccessTokenClaimsService {
   List<Claim<?>> evaluateAccessTokenClaims(OAuth2TokenInformation var1);

   List<Claim<?>> loadOrEvaluateAccessTokenClaims(OAuth2TokenInformation var1);

   static OAuth2AccessTokenClaimsService emptyClaims() {
      return new OAuth2AccessTokenClaimsService() {
         @Override
         public List<Claim<?>> evaluateAccessTokenClaims(OAuth2TokenInformation tokenInformation) {
            return List.of();
         }

         @Override
         public List<Claim<?>> loadOrEvaluateAccessTokenClaims(OAuth2TokenInformation tokenInformation) {
            return List.of();
         }
      };
   }
}
