"""
Atomizer Study Interview Mode

This module provides an intelligent interview system for gathering engineering requirements
before study generation. It systematically questions users about objectives, constraints,
and design variables to create accurate optimization configurations.

Components:
- StudyInterviewEngine: Main orchestrator
- QuestionEngine: Question flow and conditional logic
- InterviewStateManager: State persistence
- InterviewPresenter: Presentation abstraction (ClaudePresenter)
- EngineeringValidator: Engineering validation and anti-pattern detection
- InterviewIntelligence: Smart features (extractor mapping, complexity)
"""

from .interview_state import (
    InterviewState,
    InterviewPhase,
    AnsweredQuestion,
    InterviewStateManager,
    LogEntry,
)

from .question_engine import (
    QuestionEngine,
    Question,
    QuestionOption,
    QuestionCondition,
    ValidationRule,
)

from .interview_presenter import (
    InterviewPresenter,
    ClaudePresenter,
)

from .study_interview import (
    StudyInterviewEngine,
    InterviewSession,
    NextAction,
)

from .engineering_validator import (
    EngineeringValidator,
    MaterialsDatabase,
    AntiPatternDetector,
    ValidationResult,
    AntiPattern,
)

from .interview_intelligence import (
    InterviewIntelligence,
    ExtractorMapper,
    ExtractorSelection,
)

from .study_blueprint import (
    StudyBlueprint,
    DesignVariable,
    Objective,
    Constraint,
)

__all__ = [
    # State management
    "InterviewState",
    "InterviewPhase",
    "AnsweredQuestion",
    "InterviewStateManager",
    "LogEntry",
    # Question engine
    "QuestionEngine",
    "Question",
    "QuestionOption",
    "QuestionCondition",
    "ValidationRule",
    # Presentation
    "InterviewPresenter",
    "ClaudePresenter",
    # Main engine
    "StudyInterviewEngine",
    "InterviewSession",
    "NextAction",
    # Validation
    "EngineeringValidator",
    "MaterialsDatabase",
    "AntiPatternDetector",
    "ValidationResult",
    "AntiPattern",
    # Intelligence
    "InterviewIntelligence",
    "ExtractorMapper",
    "ExtractorSelection",
    # Blueprint
    "StudyBlueprint",
    "DesignVariable",
    "Objective",
    "Constraint",
]

__version__ = "1.0.0"
