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

import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.oauth2.api.domain.model.AuthorizationServerId;
import com.airlock.iam.oauth2.api.domain.model.OAuth2ClientId;
import com.airlock.iam.oauth2.domain.model.consent.OAuth2Consent;
import com.airlock.iam.oauth2.domain.model.consent.OAuth2ConsentId;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;

public interface OAuth2ConsentService {
   Collection<OAuth2Consent> findByUser(UserId var1);

   void grantConsent(OAuth2ConsentId var1, UserId var2);

   void denyConsent(OAuth2ConsentId var1, UserId var2);

   Optional<OAuth2Consent> get(UserId var1, OAuth2ConsentId var2);

   Collection<OAuth2Consent> findByUserAndAuthorizationServer(UserId var1, AuthorizationServerId var2);

   void delete(OAuth2ConsentId var1);

   Map<AuthorizationServerId, List<OAuth2ClientId>> findAuthorizationServersAndClientsForUser(UserId var1);
}
