from typing import Any

class Key:
    def __init__(self, key, algorithm) -> None: ...
    def sign(self, msg) -> None: ...
    def verify(self, msg, sig) -> None: ...
    def public_key(self) -> None: ...
    def to_pem(self) -> None: ...
    def to_dict(self) -> None: ...
    def encrypt(self, plain_text, aad: Any | None = ...) -> None: ...
    def decrypt(self, cipher_text, iv: Any | None = ..., aad: Any | None = ..., tag: Any | None = ...) -> None: ...
    def wrap_key(self, key_data) -> None: ...
    def unwrap_key(self, wrapped_key) -> None: ...

class DIRKey(Key):
    def __init__(self, key_data, algorithm) -> None: ...
    def to_dict(self): ...
