from _typeshed import Incomplete

from google.auth import credentials as credentials, exceptions as exceptions
from google.oauth2 import reauth as reauth

class Credentials(credentials.ReadOnlyScoped, credentials.CredentialsWithQuotaProject):
    token: Incomplete
    expiry: Incomplete
    def __init__(
        self,
        token,
        refresh_token: Incomplete | None = ...,
        id_token: Incomplete | None = ...,
        token_uri: Incomplete | None = ...,
        client_id: Incomplete | None = ...,
        client_secret: Incomplete | None = ...,
        scopes: Incomplete | None = ...,
        default_scopes: Incomplete | None = ...,
        quota_project_id: Incomplete | None = ...,
        expiry: Incomplete | None = ...,
        rapt_token: Incomplete | None = ...,
        refresh_handler: Incomplete | None = ...,
        enable_reauth_refresh: bool = ...,
    ) -> None: ...
    @property
    def refresh_token(self): ...
    @property
    def scopes(self): ...
    @property
    def token_uri(self): ...
    @property
    def id_token(self): ...
    @property
    def client_id(self): ...
    @property
    def client_secret(self): ...
    @property
    def requires_scopes(self): ...
    @property
    def rapt_token(self): ...
    @property
    def refresh_handler(self): ...
    @refresh_handler.setter
    def refresh_handler(self, value) -> None: ...
    def with_quota_project(self, quota_project_id): ...
    def refresh(self, request) -> None: ...
    @classmethod
    def from_authorized_user_info(cls, info, scopes: Incomplete | None = ...): ...
    @classmethod
    def from_authorized_user_file(cls, filename, scopes: Incomplete | None = ...): ...
    def to_json(self, strip: Incomplete | None = ...): ...

class UserAccessTokenCredentials(credentials.CredentialsWithQuotaProject):
    def __init__(
        self,
        account: Incomplete | None = ...,
        quota_project_id: Incomplete | None = ...,
    ) -> None: ...
    def with_account(self, account): ...
    def with_quota_project(self, quota_project_id): ...
    token: Incomplete
    def refresh(self, request) -> None: ...
    def before_request(self, request, method, url, headers) -> None: ...
