package com.github.hburgmeier.jerseyoauth2.authsrv.api.client;
import java.util.Set;
import com.github.hburgmeier.jerseyoauth2.api.user.IUser;
public interface IClientService {
IRegisteredClientApp registerClient(String appName, String callbackUrl, ClientType clientType) throws ClientServiceException;
IRegisteredClientApp getRegisteredClient(String clientId);
IAuthorizedClientApp authorizeClient(IUser user, IRegisteredClientApp clientApp, Set<String> allowedScopes) throws ClientServiceException;
IAuthorizedClientApp isAuthorized(IUser user, String clientId, Set<String> scopes);
IPendingClientToken createPendingClientToken(IAuthorizedClientApp clientApp) throws ClientServiceException;
IPendingClientToken findPendingClientToken(String clientId, String clientSecret, String code);
void removePendingClientToken(IPendingClientToken pendingClientToken);
void removePendingTokensForUser(IUser user);
}