from .deconvolution import (
    create_linear_system,
    solve_linear_system,
    DeconvolutionResult,
)
from .design import Design
from .initialization import init
from .main import find_best_design, best_design_for_pool_budget
from .optimization import optimize
from .simulation import (
    simulate_elispot_counts,
    simulate_any_hits_per_pool,
    simulate_number_hits_per_pool,
)
from .types import SpotCounts
from .validity import is_valid, count_violations, violations_per_replicate

__version__ = "2.0.0"

__all__ = [
    "__version__",
    "find_best_design",
    "best_design_for_pool_budget",
    "Design",
    "init",
    "optimize",
    "count_violations",
    "is_valid",
    "violations_per_replicate",
    "simulate_elispot_counts",
    "simulate_any_hits_per_pool",
    "simulate_number_hits_per_pool",
    "create_linear_system",
    "solve_linear_system",
    "SpotCounts",
    "DeconvolutionResult",
]
