"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

PyPI(PyQt6): https://pypi.org/project/IceSpringPySideStubs-PyQt6

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import typing
import PyQt6.sip


class QTypeRevision(PyQt6.sip.simplewrapper):
    """
    https://doc.qt.io/qt-6/qtyperevision.html

    **Detailed Description**

    Use this class to describe revisions of a type. Compatible revisions can be
    expressed as increments of the minor version. Breaking changes can be
    expressed as increments of the major version. The return values of
    **QMetaMethod::revision** () and **QMetaProperty::revision** () can be
    passed to **QTypeRevision::fromEncodedVersion** (). The resulting major and
    minor versions specify in which Qt versions the properties and methods were
    added.

    **See also** **QMetaMethod::revision** () and **QMetaProperty::revision**
    ().
    """

    @typing.overload
    def __init__(self) -> None:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#QTypeRevision

        **QTypeRevision::QTypeRevision()**

        Produces an invalid revision.

        **See also** **isValid** ().
        """
        ...

    @typing.overload
    def __init__(self, a0: "QTypeRevision") -> None:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#QTypeRevision

        **QTypeRevision::QTypeRevision()**

        Produces an invalid revision.

        **See also** **isValid** ().
        """
        ...

    def __hash__(self) -> int:
        ...

    def toEncodedVersion(self) -> int:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#toEncodedVersion

        **template <typename Integer, if_valid_value_type<Integer>> Integer
        QTypeRevision::toEncodedVersion() const**

        Transforms the revision into an integer value, encoding the minor
        version into the least significant byte, and the major version into the
        second least significant byte.

        `Integer` needs to be at least 16 bits wide, and must not have a sign
        bit in the least significant 16 bits.

        **See also** **fromEncodedVersion** ().
        """
        ...

    def isValid(self) -> bool:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#isValid

        **bool QTypeRevision::isValid() const**

        Returns true if the major version or the minor version is known,
        otherwise false.

        **See also** **hasMajorVersion** () and **hasMinorVersion** ().
        """
        ...

    def minorVersion(self) -> int:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#minorVersion

        **quint8 QTypeRevision::minorVersion() const**

        Returns the minor version encoded in the revision.

        **See also** **hasMinorVersion** () and **majorVersion** ().
        """
        ...

    def hasMinorVersion(self) -> bool:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#hasMinorVersion

        **bool QTypeRevision::hasMinorVersion() const**

        Returns true if the minor version is known, otherwise false.

        **See also** **minorVersion** () and **hasMajorVersion** ().
        """
        ...

    def majorVersion(self) -> int:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#majorVersion

        **quint8 QTypeRevision::majorVersion() const**

        Returns the major version encoded in the revision.

        **See also** **hasMajorVersion** () and **minorVersion** ().
        """
        ...

    def hasMajorVersion(self) -> bool:
        """
        https://doc.qt.io/qt-6/qtyperevision.html#hasMajorVersion

        **bool QTypeRevision::hasMajorVersion() const**

        Returns true if the major version is known, otherwise false.

        **See also** **majorVersion** () and **hasMinorVersion** ().
        """
        ...

    @staticmethod
    def zero() -> "QTypeRevision":
        """
        https://doc.qt.io/qt-6/qtyperevision.html#zero

        **[static] QTypeRevision QTypeRevision::zero()**

        Produces a **QTypeRevision**  with major and minor version `0`.
        """
        ...
