package foundation.e.mail.mail.oauth;

import foundation.e.mail.mail.AuthenticationFailedException;
import foundation.e.mail.mail.MessagingException;

public abstract class SpecificOAuth2TokenProvider {

    public abstract OAuth2AuthorizationCodeFlowTokenProvider.Tokens exchangeCode(String username, String code) throws AuthenticationFailedException;

    public abstract String refreshToken(String username, String refreshToken) throws AuthenticationFailedException;

    public abstract void showAuthDialog() throws AuthenticationFailedException;
}

