"""Mate-level constraint types for assembly analysis."""

from solver.mates.conversion import (
    MateAnalysisResult,
    analyze_mate_assembly,
    convert_mates_to_joints,
)
from solver.mates.generator import (
    SyntheticMateGenerator,
    generate_mate_training_batch,
)
from solver.mates.labeling import (
    MateAssemblyLabels,
    MateLabel,
    label_mate_assembly,
)
from solver.mates.patterns import (
    JointPattern,
    PatternMatch,
    recognize_patterns,
)
from solver.mates.primitives import (
    GeometryRef,
    GeometryType,
    Mate,
    MateType,
    dof_removed,
)

__all__ = [
    "GeometryRef",
    "GeometryType",
    "JointPattern",
    "Mate",
    "MateAnalysisResult",
    "MateAssemblyLabels",
    "MateLabel",
    "MateType",
    "PatternMatch",
    "SyntheticMateGenerator",
    "analyze_mate_assembly",
    "convert_mates_to_joints",
    "dof_removed",
    "generate_mate_training_batch",
    "label_mate_assembly",
    "recognize_patterns",
]
