# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405
r"""
Axis bitflag for multi-axis machines.

Represents a single axis or combination of axes (X, Y, Z, A, B, C, U).
Axis values can be combined using bitwise operators (|, &, ^, ~) to
represent multiple axes at once, useful when specifying which axes
participate in a coordinated move or transformation.
"""

import builtins
import typing
__all__ = [
    "Axis",
]

@typing.final
class Axis:
    r"""
    Represents a single axis or a combination of axes (X, Y, Z, A, B, C, U).
    
    Axis values can be combined using bitwise operators (``|``, ``&``, ``^``, ``~``)
    to represent multiple axes at once.
    """
    X: Axis = Axis.X
    Y: Axis = Axis.Y
    Z: Axis = Axis.Z
    A: Axis = Axis.A
    B: Axis = Axis.B
    C: Axis = Axis.C
    U: Axis = Axis.U
    @property
    def value(self) -> builtins.int:
        r"""
        The raw bit value of the axis.
        """
    @property
    def label(self) -> builtins.str:
        r"""
        The uppercase label of the axis (e.g. ``"X"``, ``"Y"``, ``"Z"``).
        """
    @property
    def name(self) -> builtins.str:
        r"""
        The uppercase name of the axis (e.g. ``"X"``, ``"Y"``, ``"Z"``).
        
        Legacy alias for :attr:`label` to match Python ``IntFlag.name``.
        """
    def __eq__(self, other: object) -> bool:
        r"""
        Check equality with another Axis.
        """
    def __ne__(self, other: object) -> bool:
        r"""
        Check inequality with another Axis.
        """
    def __or__(self, other: Axis) -> Axis:
        r"""
        Combine two axis masks with bitwise OR.
        """
    def __and__(self, other: Axis) -> Axis:
        r"""
        Intersect two axis masks with bitwise AND.
        """
    def __xor__(self, other: Axis) -> Axis:
        r"""
        Compute the symmetric difference of two axis masks.
        """
    def __invert__(self) -> Axis:
        r"""
        Invert (complement) the axis mask.
        """
    def __repr__(self) -> builtins.str:
        r"""
        Return a string representation like ``Axis.X``.
        """
    def __hash__(self) -> builtins.int:
        r"""
        Hash based on the raw bit value.
        """
    @classmethod
    def from_name(cls, name: builtins.str) -> Axis:
        r"""
        Look up an Axis by its uppercase name.
        
        :param name: The uppercase letter (``"X"``, ``"Y"``, etc.).
        :returns: The corresponding Axis constant.
        :raises ValueError: If the name is unknown.
        """
    def __bool__(self) -> builtins.bool:
        r"""
        Check whether the axis mask is non-zero.
        """
    def __iter__(self) -> typing.Any:
        r"""
        Iterate over individual axes set in this mask.
        
        Yields each single-axis value (e.g. iterating ``Axis.X | Axis.Z``
        yields ``Axis.X`` then ``Axis.Z``).
        """
    def assert_single_axis(self) -> None:
        r"""
        Assert that this Axis represents exactly one axis (not a combination).
        
        :raises ValueError: If the axis mask contains multiple or zero bits set.
        :returns: The single active axis.
        """

