"""Evaluation metrics and plotting utilities."""

from .pareto import pareto_front
from .plots import save_placeholder_plot
from .metrics import (
    BasicSetMetrics,
    DistributionMetrics,
    ScaffoldMetrics,
    ReconstructionMetrics,
    GenerationMetrics,
    ConditionedTargetMetrics,
    compute_basic_set_metrics,
    compute_distribution_metrics,
    compute_scaffold_metrics,
    compute_reconstruction_metrics,
    compute_generation_metrics,
    compute_conditioned_target_metrics,
    filter_valid_smiles,
)
from .prediction_metrics import (
    RegressionMetrics,
    compute_r2,
    compute_regression_metrics,
    compute_regression_metrics_per_split,
)
from .umap_analysis import (
    plot_umap_real_vs_generated,
    plot_umap_property_hue,
    plot_umap_with_labels,
    plot_umap_pretrain_vs_finetuned,
    plot_umap_real_analysis,
    plot_umap_multitype_overlay,
    plot_umap_splits_overlay,
    create_umap_analysis_report,
)
from .oracle_eval import (
    OracleEvalResult,
    SurrogateOracleComparison,
    compute_oracle_properties,
    compare_surrogate_to_oracle,
    plot_surrogate_vs_oracle,
    evaluate_optimization_with_oracle,
)

__all__ = [
    "pareto_front",
    "save_placeholder_plot",
    # Metrics
    "BasicSetMetrics",
    "DistributionMetrics",
    "ScaffoldMetrics",
    "ReconstructionMetrics",
    "GenerationMetrics",
    "ConditionedTargetMetrics",
    "compute_basic_set_metrics",
    "compute_distribution_metrics",
    "compute_scaffold_metrics",
    "compute_reconstruction_metrics",
    "compute_generation_metrics",
    "compute_conditioned_target_metrics",
    "filter_valid_smiles",
    # Prediction metrics
    "RegressionMetrics",
    "compute_r2",
    "compute_regression_metrics",
    "compute_regression_metrics_per_split",
    # UMAP analysis
    "plot_umap_real_vs_generated",
    "plot_umap_property_hue",
    "plot_umap_with_labels",
    "plot_umap_pretrain_vs_finetuned",
    "plot_umap_real_analysis",
    "plot_umap_multitype_overlay",
    "plot_umap_splits_overlay",
    "create_umap_analysis_report",
    # Oracle evaluation
    "OracleEvalResult",
    "SurrogateOracleComparison",
    "compute_oracle_properties",
    "compare_surrogate_to_oracle",
    "plot_surrogate_vs_oracle",
    "evaluate_optimization_with_oracle",
]
