"""
tkbo: lightweight Bayesian/adaptive optimization helpers.

Design goals
------------
- Discrete candidate optimization for experimental design.
- Backend switching by ``model`` / ``backend`` parameter.
- PHYSBO can be used in two ways:
    1. PHYSBO native backend: uses PHYSBO's own bayes_search (EI/PI/TS).
    2. Custom backend with PhysBOSurrogate: uses PHYSBO posterior mean/std
       and tkbo-side acquisition functions.
- sklearn GaussianProcessRegressor backend is available for flexible kernels
  and custom acquisition functions.
"""

from .factory import create_optimizer
from .registry import register_backend, register_acquisition, register_surrogate

__all__ = [
    "create_optimizer",
    "register_backend",
    "register_acquisition",
    "register_surrogate",
]
