/// Questionnaire System
///
/// Interactive questionnaire engine with:
/// - Conditional questions (only ask if conditions met)
/// - Decision tree navigation
/// - Expression evaluation for conditional logic
/// - TUI interface for interactive prompts
///
/// Example:
/// ```
/// use provisioning_detector::questionnaire::{
///     DecisionTree, DecisionNode, QuestionnaireEngine, Question, QuestionKind,
///     Expression, InteractiveTUI,
/// };
/// use std::collections::HashMap;
///
/// // Create decision tree
/// let root = DecisionNode::new("deployment_mode")
///     .add_transition("prod", "enable_backup")
///     .set_default("END");
/// let tree = DecisionTree::new("deployment_mode")
///     .add_node(root);
///
/// // Create questions
/// let q1 = Question::new("deployment_mode", QuestionKind::Select, "Deployment mode?");
/// let q2 = Question::new("enable_backup", QuestionKind::Confirm, "Enable backups?")
///     .with_condition(Expression::new("deployment_mode == 'prod'"));
///
/// // Create engine
/// let engine = QuestionnaireEngine::new("Setup", "1.0.0", tree)
///     .add_question(q1)
///     .add_question(q2);
///
/// // Run interactive session
/// let response = InteractiveTUI::run(&engine).unwrap();
/// ```
pub mod decision_tree;
pub mod questionnaire_engine;
pub mod tui;

pub use decision_tree::{DecisionNode, DecisionTree, Expression};
pub use questionnaire_engine::{
    Answer, Question, QuestionKind, QuestionnaireEngine, QuestionnaireResponse, ValidationRule,
};
pub use tui::InteractiveTUI;
