from _typeshed import Incomplete

from .models import JWSObject

class JsonWebSignature:
    REGISTERED_HEADER_PARAMETER_NAMES: frozenset[str]
    MAX_CONTENT_LENGTH: int
    ALGORITHMS_REGISTRY: dict[str, Incomplete]
    def __init__(self, algorithms=None, private_headers=None) -> None: ...
    @classmethod
    def register_algorithm(cls, algorithm) -> None: ...
    def serialize_compact(self, protected, payload, key) -> bytes: ...
    def deserialize_compact(self, s, key, decode=None) -> JWSObject: ...
    def serialize_json(self, header_obj, payload, key): ...
    def deserialize_json(self, obj, key, decode=None) -> JWSObject: ...
    def serialize(self, header, payload, key): ...
    def deserialize(self, s, key, decode=None) -> JWSObject: ...
