//! TypeScript Macro Host
//!
//! This crate provides the core macro hosting infrastructure for TypeScript macros.
//! It handles macro registration, dispatch, and execution.

pub mod config;
pub mod derived;
pub mod dispatch;
pub mod error;
pub mod expand;
pub mod macros;
pub mod package_registry;
pub mod patch_applicator;
pub mod registry;
pub mod traits;

pub use config::MacroConfig;
pub use dispatch::MacroDispatcher;
pub use error::{MacroError, Result};
pub use expand::{MacroExpander, MacroExpansion, collect_import_sources};
pub use package_registry::MacroPackageRegistration;
pub use patch_applicator::{PatchApplicator, PatchCollector};
pub use registry::MacroRegistry;
pub use traits::Macroforge;

// Re-export commonly used types from abi
pub use crate::ts_syn::abi::{Diagnostic, DiagnosticLevel, MacroKind, MacroResult, Patch};
