"""
Cylindrical/Tapered Roller Bearing Slice Stress Calculation Module

This module provides slice calculation for roller-raceway contact stress distribution,
using Fortran compiled core via f2py.

Features:
- No file I/O, direct memory transfer
- Complete type hints
- Native NumPy array support
- Dataclass wrapped results

Example:
    >>> from slice_wrapper import slice_stress, RollerParams, RacewayParams
    >>> from slice_wrapper import CrownType, RacewayType
    >>> 
    >>> # Define cylindrical roller parameters
    >>> roller = RollerParams(
    ...     d1=10.0, d2=10.0, length=9.6,
    ...     crown_type=CrownType.LOGARITHMIC,
    ...     curve_q=14100.0
    ... )
    >>> 
    >>> # Define outer ring raceway parameters
    >>> raceway = RacewayParams(
    ...     diameter=-150.0,
    ...     raceway_type=RacewayType.OUTER
    ... )
    >>> 
    >>> # Calculate slice stress
    >>> result = slice_stress(roller, raceway, load=1340.0, n_slice=30)
    >>> print(f"Max stress: {result.max_stress:.0f} MPa")
"""

from .models import (
    CrownType,
    RacewayType,
    RollerParams,
    RacewayParams,
    SliceResult,
)

from .wrapper import (
    slice_stress,
    batch_slice_stress,
    is_fortran_available,
)

__all__ = [
    # 枚举类型
    "CrownType",
    "RacewayType",
    # 数据类型
    "RollerParams",
    "RacewayParams",
    "SliceResult",
    # 计算函数
    "slice_stress",
    "batch_slice_stress",
    "is_fortran_available",
]

__version__ = "0.2.0"
