package com.airlock.iam.common.domain.service.session;

import com.airlock.iam.common.domain.model.session.IamSession;
import com.airlock.iam.common.domain.model.session.ReadOnlyIamSessionData;
import com.airlock.iam.common.domain.model.state.SessionStateId;
import java.util.Optional;

public interface IamSessionRepository<T extends IamSession> {
   T createNewSession();

   Optional<T> retrieveSession(SessionStateId var1);

   void updateSession(T var1);

   void removeSession(SessionStateId var1);

   void unlockSession(SessionStateId var1);

   Optional<ReadOnlyIamSessionData> retrieveReadOnlySessionData(SessionStateId var1);
}
