# Leakage measurement
from .measure import compute_data_leakage

# Data splitting
from .split import (
    temporal_split,
    group_split,
    temporal_train_val_test_split,
    group_train_val_test_split,
)

# Duplicate detection
from .duplicates import (
    find_exact_duplicates,
    remove_exact_duplicates,
    find_near_duplicates,
    remove_near_duplicates,
    find_all_duplicates,
    ExactDuplicateSummary,
    NearDuplicateSummary,
)

# Overlap analysis
from .overlap import (
    compute_id_overlap,
    OverlapResult,
)

# Analysis
from .analysis import (
    LeakageAnalysisResult,
    analyze_dataset,
)

# Report generation
from .report import (
    print_leakage_report,
    save_report_to_file,
)

__all__ = [
    # Measurement
    "compute_data_leakage",
    # Splitting
    "temporal_split",
    "group_split",
    "temporal_train_val_test_split",
    "group_train_val_test_split",
    # Duplicates
    "find_exact_duplicates",
    "remove_exact_duplicates",
    "find_near_duplicates",
    "remove_near_duplicates",
    "find_all_duplicates",
    "ExactDuplicateSummary",
    "NearDuplicateSummary",
    # Overlap
    "compute_id_overlap",
    "OverlapResult",
    # Analysis
    "LeakageAnalysisResult",
    "analyze_dataset",
    # Reports
    "print_leakage_report",
    "save_report_to_file",
]