#![forbid(unsafe_code)]
#![warn(
    missing_docs,
    missing_debug_implementations,
    rust_2018_idioms,
    unreachable_pub
)]

//! # Lifecycle Core
//!
//! Core library for syntaxis management.
//!
//! This library provides:
//! - Phase management and transitions
//! - Tool management and orchestration
//! - Template engine for project generation
//! - Checklist management and tracking
//! - Configuration management

pub mod assessment;
pub mod audit;
pub mod checklist;
pub mod config;
pub mod context;
pub mod db;
pub mod error;
pub mod integrations;
pub mod migration;
pub mod persistence;
pub mod phase;
pub mod phase_actions;
pub mod phase_enhanced;
pub mod provisioning;
pub mod publication;
pub mod sbom;
pub mod security;
pub mod templates;
pub mod tools;
pub mod types;

#[cfg(test)]
mod expanded_tests;

pub use checklist::{
    Checklist, ChecklistItem, ChecklistManager, TaskPriority, TaskState, TaskType,
};
pub use config::{
    ChecklistConfig, ChecklistPhaseDefaults, ExportConfig, ExportFormat, ProjectConfig, SbomConfig,
    SbomFormat,
};
pub use error::{LifecycleError, Result};
#[cfg(feature = "surrealdb-backend")]
pub use persistence::{SurrealDatabase, SurrealDbBackendConfig, SurrealEngineConfig};
pub use persistence::{
    Database, DatabaseConfig, DbChecklistItem, DbPhaseHistory, DbPhaseTransition, DbProject,
    DbSecurityAssessment, DbSecurityAssessmentDetail, DbTeamMember, DbToolConfiguration,
    DbToolDependency, SqliteDatabase,
};
pub use phase::{PhaseManager, PhaseTransition, ProjectPhase};
pub use phase_actions::PhaseExecutor;
pub use templates::{RustToolTemplate, RustToolType, TemplateEngine};
pub use tools::{ToolConfig, ToolManager};
pub use types::ProjectMetadata;

/// Library version
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
