from __future__ import annotations
from ._primitive_type import _PrimitiveType

class Integer(_PrimitiveType):
    @staticmethod
    def decay(value: int | Integer) -> int: ...
    def __init__(
        self,
        val: int | Integer | None = None,
        *,
        min: int | None = None,
        max: int | None = None,
    ): ...
    @property
    def type(self):
        return Integer
    def get_value(self) -> int: ...
    def copy(self) -> Integer: ...
    def __hash__(self) -> int: ...
    def __bool__(self) -> bool: ...
    def __index__(self) -> int: ...
    def __add__(self, other: int | Integer) -> Integer: ...
    def __radd__(self, other: int) -> Integer: ...
    def __sub__(self, other: int | Integer) -> Integer: ...
    def __rsub__(self, other: int) -> Integer: ...
    def __and__(self, other: int | Integer) -> Integer: ...
    def __or__(self, other: int | Integer) -> Integer: ...
    def __xor__(self, other: int | Integer) -> Integer: ...
    def __rand__(self, other: int) -> Integer: ...
    def __ror__(self, other: int) -> Integer: ...
    def __rxor__(self, other: int) -> Integer: ...
    def __floordiv__(self, other: int | Integer) -> Integer: ...
    def __rfloordiv__(self, other: int) -> Integer: ...
    def __neg__(self) -> Integer: ...
    def __pos__(self) -> Integer: ...
    def __eq__(self, other: int | Integer) -> bool: ...
    def __ne__(self, other) -> bool: ...
    def __gt__(self, other) -> bool: ...
    def __lt__(self, other) -> bool: ...
    def __ge__(self, other) -> bool: ...
    def __le__(self, other) -> bool: ...
