"""
Explode-Implode Variants Module

This module provides different strategies for exploding markdown files into
directory structures and imploding them back, with full reversibility support.

Key Components:
- ExplodeVariant: Enum defining available variants
- BaseVariant: Abstract base class for variant implementations
- ManifestManager: Handles manifest.md creation and parsing
- VariantDetector: Auto-detects variant types from directory structures
"""

from .enums import ExplodeVariant, ExplodeMode, ManifestVersion, DetectionConfidence
from .base_variant import BaseVariant, ExplodeOptions, ImplodeOptions, ExplodeResult, ImplodeResult
from .manifest_manager import ManifestManager, ManifestData, StructureEntry
from .variant_detector import VariantDetector, DetectionResult
from .flat_variant import FlatVariant
from .hierarchical_variant import HierarchicalVariant
from .semantic_variant import SemanticVariant
from .variant_factory import VariantFactory, get_variant_factory, create_variant, detect_variant, auto_create_variant

__all__ = [
    'ExplodeVariant',
    'ExplodeMode',
    'ManifestVersion',
    'DetectionConfidence',
    'BaseVariant',
    'ExplodeOptions',
    'ImplodeOptions',
    'ExplodeResult',
    'ImplodeResult',
    'ManifestManager',
    'ManifestData',
    'StructureEntry',
    'VariantDetector',
    'DetectionResult',
    'FlatVariant',
    'HierarchicalVariant',
    'SemanticVariant',
    'VariantFactory',
    'get_variant_factory',
    'create_variant',
    'detect_variant',
    'auto_create_variant'
]