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

import com.airlock.iam.base.misc.result.Result;
import com.airlock.iam.oauth2.api.domain.model.clientauthentication.OAuth2ClientAuthentication;
import com.airlock.iam.oauth2.api.domain.model.tokenexchange.OAuth2TokenExchangeGrantRequest;
import com.airlock.iam.oauth2.domain.model.client.OAuth2Client;
import com.airlock.iam.oauth2.domain.model.tokenexchange.OAuth2TokenExchangeErrorResponse;
import com.airlock.iam.oauth2.domain.model.tokenexchange.OAuth2TokenExchangeGrantAccessToken;

public interface OAuth2TokenExchangeTokenIssuingService {
   Result<OAuth2TokenExchangeGrantAccessToken, OAuth2TokenExchangeErrorResponse> issueAccessToken(
      OAuth2Client var1, OAuth2ClientAuthentication var2, OAuth2TokenExchangeGrantRequest var3
   );
}
