# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405
r"""
Stage specification types.
"""

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

class StageSpec:
    r"""
    Stage specification for one node of the intent tree.
    
    ``Compute`` — a leaf node that produces Ops from geometry via an
    assembler. ``Aggregate`` — an interior node that concatenates and
    transforms Ops from one or more upstream nodes.
    """
    @typing.final
    class Compute(StageSpec):
        r"""
        A compute leaf node.
        """
        __match_args__ = ("part", "params", "face_id",)
        @property
        def part(self) -> typing.Any:
            r"""
            The part to process.
            """
        @property
        def params(self) -> typing.Any:
            r"""
            Compute parameters (assembler, etc.).
            """
        @property
        def face_id(self) -> builtins.str:
            r"""
            Face identifier for multi-face parts.
            """
        def __new__(cls, part: typing.Any, params: typing.Any, face_id: builtins.str = '') -> StageSpec.Compute: ...
    
    @typing.final
    class Aggregate(StageSpec):
        r"""
        An aggregate interior node.
        """
        __match_args__ = ("spec",)
        @property
        def spec(self) -> typing.Any:
            r"""
            Aggregate specification (groups, markers, placement).
            """
        def __new__(cls, spec: typing.Any) -> StageSpec.Aggregate: ...
    
    ...

