"""
BBox Scale Strategy Module.

Provides field-specific bounding box expansion strategies for YOLO training data.
Expands bboxes using center-point scaling with directional compensation to capture
field labels that typically appear above or to the left of field values.

Two modes are supported:
- Auto-label: Field-specific scale strategies with directional compensation
- Manual-label: Minimal padding only to prevent edge clipping

Usage:
    from shared.bbox import expand_bbox, ScaleStrategy, FIELD_SCALE_STRATEGIES

Available exports:
    - ScaleStrategy: Dataclass for scale strategy configuration
    - DEFAULT_STRATEGY: Default strategy for unknown fields (auto-label)
    - MANUAL_LABEL_STRATEGY: Minimal padding strategy for manual labels
    - FIELD_SCALE_STRATEGIES: dict[str, ScaleStrategy] - field-specific strategies
    - expand_bbox: Function to expand bbox using field-specific strategy
"""

from .scale_strategy import (
    ScaleStrategy,
    DEFAULT_STRATEGY,
    MANUAL_LABEL_STRATEGY,
    FIELD_SCALE_STRATEGIES,
)
from .expander import expand_bbox

__all__ = [
    "ScaleStrategy",
    "DEFAULT_STRATEGY",
    "MANUAL_LABEL_STRATEGY",
    "FIELD_SCALE_STRATEGIES",
    "expand_bbox",
]
