# Path: flask_jwt_extended/exceptions.py
# class CSRFError(JWTExtendedException):
#     """
#     An error with CSRF protection
#     """
# 
#     pass
# 
# Path: flask_jwt_extended/exceptions.py
# class JWTDecodeError(JWTExtendedException):
#     """
#     An error decoding a JWT
#     """
# 
#     pass
# 
# Path: flask_jwt_extended/typing.py



import uuid
import jwt
from datetime import datetime
from datetime import timedelta
from datetime import timezone
from hmac import compare_digest
from typing import Any
from typing import Iterable
from typing import List
from typing import Type
from typing import Union
from flask.json import JSONEncoder
from flask_jwt_extended.exceptions import CSRFError
from flask_jwt_extended.exceptions import JWTDecodeError
from flask_jwt_extended.typing import ExpiresDelta




def _encode_jwt(
    algorithm: str,
    audience: Union[str, Iterable[str]],
    claim_overrides: dict,
    csrf: bool,

# Path: flask_jwt_extended/exceptions.py
# class CSRFError(JWTExtendedException):
#     """
#     An error with CSRF protection
#     """
# 
#     pass
# 
# Path: flask_jwt_extended/exceptions.py
# class JWTDecodeError(JWTExtendedException):
#     """
#     An error decoding a JWT
#     """
# 
#     pass
# 
# Path: flask_jwt_extended/typing.py



# Path: flask_jwt_extended/tokens.py
import uuid
import jwt
from datetime import datetime
from datetime import timedelta
from datetime import timezone
from hmac import compare_digest
from typing import Any
from typing import Iterable
from typing import List
from typing import Type
from typing import Union
from flask.json import JSONEncoder
from flask_jwt_extended.exceptions import CSRFError
from flask_jwt_extended.exceptions import JWTDecodeError
from flask_jwt_extended.typing import ExpiresDelta





def _encode_jwt(
    algorithm: str,
    audience: Union[str, Iterable[str]],
    claim_overrides: dict,
    csrf: bool,

    expires_delta: ExpiresDelta,