"""Recovery system for error handling and state management."""

from .strategies import (
    RecoveryStrategy,
    RecoveryPriority,
    RecoveryContext,
    RecoveryStrategyBase,
    FallbackStrategy,
    GracefulDegradationStrategy,
    StateRecoveryStrategy,
    TransactionRollbackStrategy,
    ResourceCleanupStrategy,
    HealthCheckStrategy,
    RecoveryManager,
    create_fallback_strategy,
    create_graceful_degradation_strategy,
    create_state_recovery_strategy,
    create_transaction_rollback_strategy,
    create_resource_cleanup_strategy,
    create_health_check_strategy
)

from .fallbacks import (
    FallbackConfig,
    FallbackProvider,
    CacheFallbackProvider,
    ServiceFallbackProvider,
    DefaultValueFallbackProvider,
    FallbackManager,
    TranscriptionFallbackManager,
    MediaDownloadFallbackManager,
    APIFallbackManager,
    fallback_context,
    with_fallbacks,
    create_cache_fallback,
    create_service_fallback,
    create_default_value_fallback
)

from .state import (
    OperationState,
    StateStorage,
    FileStateStorage,
    StateRecoveryManager,
    operation_state_context,
    with_state_tracking,
    create_file_state_storage,
    create_state_recovery_manager,
    recover_interrupted_operations
)

__all__ = [
    # Strategy system
    'RecoveryStrategy',
    'RecoveryPriority',
    'RecoveryContext',
    'RecoveryStrategyBase',
    'FallbackStrategy',
    'GracefulDegradationStrategy',
    'StateRecoveryStrategy',
    'TransactionRollbackStrategy',
    'ResourceCleanupStrategy',
    'HealthCheckStrategy',
    'RecoveryManager',
    'create_fallback_strategy',
    'create_graceful_degradation_strategy',
    'create_state_recovery_strategy',
    'create_transaction_rollback_strategy',
    'create_resource_cleanup_strategy',
    'create_health_check_strategy',
    
    # Fallback system
    'FallbackConfig',
    'FallbackProvider',
    'CacheFallbackProvider',
    'ServiceFallbackProvider',
    'DefaultValueFallbackProvider',
    'FallbackManager',
    'TranscriptionFallbackManager',
    'MediaDownloadFallbackManager',
    'APIFallbackManager',
    'fallback_context',
    'with_fallbacks',
    'create_cache_fallback',
    'create_service_fallback',
    'create_default_value_fallback',
    
    # State recovery system
    'OperationState',
    'StateStorage',
    'FileStateStorage',
    'StateRecoveryManager',
    'operation_state_context',
    'with_state_tracking',
    'create_file_state_storage',
    'create_state_recovery_manager',
    'recover_interrupted_operations'
]
