from _typeshed import Incomplete
from typing import ClassVar

class Key:
    kty: str
    ALLOWED_PARAMS: ClassVar[list[str]]
    PRIVATE_KEY_OPS: ClassVar[list[str]]
    PUBLIC_KEY_OPS: ClassVar[list[str]]
    REQUIRED_JSON_FIELDS: ClassVar[list[str]]
    options: dict[Incomplete, Incomplete]
    def __init__(self, options=None) -> None: ...
    @property
    def tokens(self) -> dict[Incomplete, Incomplete]: ...
    @property
    def kid(self): ...
    def keys(self): ...
    def __getitem__(self, item): ...
    @property
    def public_only(self): ...
    def load_raw_key(self): ...
    def load_dict_key(self): ...
    def check_key_op(self, operation) -> None: ...
    def as_dict(self, is_private: bool = False, **params): ...
    def as_json(self, is_private: bool = False, **params) -> str: ...
    def thumbprint(self) -> str: ...
    @classmethod
    def check_required_fields(cls, data) -> None: ...
    @classmethod
    def validate_raw_key(cls, key): ...
