using System;
using System.Threading.Tasks;
namespace Octokit
{
///
/// Provides methods used in the OAuth web flow.
///
public interface IOauthClient
{
///
/// Gets the URL used in the first step of the web flow. The Web application should redirect to this URL.
///
/// Parameters to the Oauth web flow login url
///
Uri GetGitHubLoginUrl(OauthLoginRequest request);
///
/// Makes a request to get an access token using the code returned when GitHub.com redirects back from the URL
/// GitHub login url to the application.
///
///
/// If the user accepts your request, GitHub redirects back to your site with a temporary code in a code
/// parameter as well as the state you provided in the previous step in a state parameter. If the states don’t
/// match, the request has been created by a third party and the process should be aborted. Exchange this for
/// an access token using this method.
///
///
///
Task CreateAccessToken(OauthTokenRequest request);
}
}