// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for golang.org/x/oauth2, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: golang.org/x/oauth2 (exports: Config,Endpoint; functions: )

// Package oauth2 is a stub of golang.org/x/oauth2, generated by depstubber.
package oauth2

import (
	context "context"
	http "net/http"
	time "time"
)

type AuthCodeOption interface{}

type AuthStyle int

type Config struct {
	ClientID     string
	ClientSecret string
	Endpoint     Endpoint
	RedirectURL  string
	Scopes       []string
}

func (_ *Config) AuthCodeURL(_ string, _ ...AuthCodeOption) string {
	return ""
}

func (_ *Config) Client(_ context.Context, _ *Token) *http.Client {
	return nil
}

func (_ *Config) Exchange(_ context.Context, _ string, _ ...AuthCodeOption) (*Token, error) {
	return nil, nil
}

func (_ *Config) PasswordCredentialsToken(_ context.Context, _ string, _ string) (*Token, error) {
	return nil, nil
}

func (_ *Config) TokenSource(_ context.Context, _ *Token) TokenSource {
	return nil
}

type Endpoint struct {
	AuthURL   string
	TokenURL  string
	AuthStyle AuthStyle
}

type Token struct {
	AccessToken  string
	TokenType    string
	RefreshToken string
	Expiry       time.Time
}

func (_ *Token) Extra(_ string) interface{} {
	return nil
}

func (_ *Token) SetAuthHeader(_ *http.Request) {}

func (_ *Token) Type() string {
	return ""
}

func (_ *Token) Valid() bool {
	return false
}

func (_ *Token) WithExtra(_ interface{}) *Token {
	return nil
}

type TokenSource interface {
	Token() (*Token, error)
}
