from typing import final

@final
class Eq:
    def __eq__(self, other: object, /) -> bool: ...
    def __ne__(self, other: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> Eq: ...

@final
class EqDefaultNe:
    def __eq__(self, other: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> EqDefaultNe: ...

@final
class EqDerived:
    def __eq__(self, value: object, /) -> bool: ...
    def __ne__(self, value: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> EqDerived: ...

@final
class Ordered:
    def __eq__(self, other: object, /) -> bool: ...
    def __ge__(self, other: object, /) -> bool: ...
    def __gt__(self, other: object, /) -> bool: ...
    def __le__(self, other: object, /) -> bool: ...
    def __lt__(self, other: object, /) -> bool: ...
    def __ne__(self, other: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> Ordered: ...

@final
class OrderedDefaultNe:
    def __eq__(self, other: object, /) -> bool: ...
    def __ge__(self, other: object, /) -> bool: ...
    def __gt__(self, other: object, /) -> bool: ...
    def __le__(self, other: object, /) -> bool: ...
    def __lt__(self, other: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> OrderedDefaultNe: ...

@final
class OrderedDerived:
    def __eq__(self, value: object, /) -> bool: ...
    def __ge__(self, value: object, /) -> bool: ...
    def __gt__(self, value: object, /) -> bool: ...
    def __hash__(self, /) -> int: ...
    def __le__(self, value: object, /) -> bool: ...
    def __lt__(self, value: object, /) -> bool: ...
    def __ne__(self, value: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> OrderedDerived: ...
    def __str__(self, /) -> str: ...

@final
class OrderedRichCmp:
    def __eq__(self, other: object, /) -> bool: ...
    def __ge__(self, other: object, /) -> bool: ...
    def __gt__(self, other: object, /) -> bool: ...
    def __le__(self, other: object, /) -> bool: ...
    def __lt__(self, other: object, /) -> bool: ...
    def __ne__(self, other: object, /) -> bool: ...
    def __new__(cls, /, value: int) -> OrderedRichCmp: ...
