"""
Study Management
================

Study creation, state management, and lifecycle.

Modules:
- creator: Study creation from templates
- wizard: Interactive study setup wizard
- state: Study state tracking
- reset: Study reset functionality
- continuation: Resume interrupted studies
"""

# Lazy imports to avoid circular dependencies
def __getattr__(name):
    if name == 'StudyCreator':
        from .creator import StudyCreator
        return StudyCreator
    elif name == 'create_study':
        from .creator import create_study
        return create_study
    elif name == 'StudyWizard':
        from .wizard import StudyWizard
        return StudyWizard
    elif name == 'StudyState':
        from .state import StudyState
        return StudyState
    elif name == 'StudyReset':
        from .reset import StudyReset
        return StudyReset
    elif name == 'reset_study':
        from .reset import reset_study
        return reset_study
    elif name == 'StudyContinuation':
        from .continuation import StudyContinuation
        return StudyContinuation
    elif name == 'continue_study':
        from .continuation import continue_study
        return continue_study
    elif name == 'BenchmarkingSubstudy':
        from .benchmarking import BenchmarkingSubstudy
        return BenchmarkingSubstudy
    elif name == 'generate_history':
        from .history_generator import generate_history
        return generate_history
    raise AttributeError(f"module 'optimization_engine.study' has no attribute '{name}'")

__all__ = [
    'StudyCreator',
    'create_study',
    'StudyWizard',
    'StudyState',
    'StudyReset',
    'reset_study',
    'StudyContinuation',
    'continue_study',
    'BenchmarkingSubstudy',
    'generate_history',
]
