from collections.abc import Callable from .base import DIRKey as DIRKey from .cryptography_backend import ( CryptographyAESKey as CryptographyAESKey, CryptographyECKey as CryptographyECKey, CryptographyHMACKey as CryptographyHMACKey, CryptographyRSAKey as CryptographyRSAKey, ) from .ecdsa_backend import ECDSAECKey as ECDSAECKey from .native import HMACKey as NativeHMACKey from .rsa_backend import RSAKey as BackendRSAKey # python-jose relies on importing from cryptography_backend # then falling back on other imports # these are all the potential options AESKey: type[CryptographyAESKey] | None HMACKey: type[CryptographyHMACKey | NativeHMACKey] RSAKey: type[CryptographyRSAKey | BackendRSAKey] | None ECKey: type[CryptographyECKey | ECDSAECKey] get_random_bytes: Callable[[int], bytes]