# sage_setup: distribution = sagemath-objects
from typing import Any

class ElementWrapper:
    def __init__(self, parent: Any, value: Any) -> None: ...
    def __getstate__(self) -> tuple[Any, dict[str, Any]]: ...
    def __setstate__(self, state: tuple[Any, dict[str, Any]]) -> None: ...
    def _repr_(self) -> str: ...
    def _latex_(self) -> str: ...
    def _ascii_art_(self) -> str: ...
    def _unicode_art_(self) -> str: ...
    def __hash__(self) -> int: ...
    def __richcmp__(self, right: Any, op: int) -> bool: ...
    def _richcmp_(self, right: Any, op: int) -> bool: ...
    def _lt_by_value(self, other: Any) -> bool: ...
    def __copy__(self) -> Any: ...

class DummyParent:
    def __init__(self, name: str) -> None: ...
    def _repr_(self) -> str: ...

class ElementWrapperTester(ElementWrapper):
    def __init__(self) -> None: ...
    def append(self, x: Any) -> None: ...
    def _repr_(self) -> str: ...

class ElementWrapperCheckWrappedClass(ElementWrapper):
    wrapped_class: Any
    def __hash__(self) -> int: ...
    def __richcmp__(self, right: Any, op: int) -> bool: ...
