package com.airlock.iam.oauth2.domain.model.session;

import com.airlock.iam.base.api.domain.model.user.UserId;
import com.airlock.iam.oauth2.api.domain.model.OAuth2ClientId;
import java.util.Collection;
import java.util.Optional;

public interface OAuth2ExtendedSessionRepository {
   OAuth2ExtendedSession insert(OAuth2ExtendedSession var1);

   Optional<OAuth2ExtendedSession> findById(OAuth2SessionId var1);

   Collection<OAuth2ExtendedSession> findByUser(UserId var1);

   Collection<OAuth2ExtendedSession> findByUserAndClient(UserId var1, OAuth2ClientId var2);

   boolean delete(OAuth2SessionId var1);

   OperationStatistics delete(Collection<OAuth2SessionId> var1);

   OperationStatistics deleteAllSessionsByUser(UserId var1);

   Optional<OAuth2SessionClaims> getAccessAndIdTokenClaims(OAuth2SessionId var1);

   OAuth2ExtendedSession updateCustomAttributes(OAuth2ExtendedSession var1);
}
