<?php

interface OAuth2
{
    /**
     * Check whether an OAuth access token exists.
     *
     * @return bool true if an access token exists, otherwise false
     */
    public function hasAccessToken();

    /**
     * Get the OAuth authorization URL.
     *
     * @return string the authorization URL
     */
    public function getAuthorizeUrl();

    /**
     * Request a new OAuth access token and store it in CcPref.
     *
     * @param $code string exchange authorization code for access token
     */
    public function requestNewAccessToken($code);

    /**
     * Regenerate the OAuth access token.
     */
    public function accessTokenRefresh();
}