"""dynaris: A JAX-powered Python library for Dynamic Linear Models (DLMs)."""

from dynaris.core import (
    SSM,
    FilterProtocol,
    FilterResult,
    GaussianState,
    MarkovSwitchingSSM,
    NonlinearSSM,
    SmootherProtocol,
    SmootherResult,
    StateSpaceModel,
    SwitchingFilterResult,
    SwitchingSmootherResult,
)
from dynaris.dlm import (
    DLM,
    Autoregressive,
    Cycle,
    LocalLevel,
    LocalLinearTrend,
    Regression,
    Seasonal,
)
from dynaris.estimation.bayesian import BayesianResult, fit_bayesian
from dynaris.estimation.dfm import DFMResult, fit_dfm_em
from dynaris.filters import (
    ExtendedKalmanFilter,
    HamiltonFilter,
    KalmanFilter,
    ParticleFilter,
    UnscentedKalmanFilter,
    ekf_filter,
    hamilton_filter,
    kalman_filter,
    particle_filter,
    ukf_filter,
)
from dynaris.models import (
    BearingsTracking,
    DynamicFactorModel,
    LorenzAttractor,
    StochasticVolatility,
    transform_returns,
)
from dynaris.models.dfm_api import DFMModel
from dynaris.smoothers import KimSmoother, RTSSmoother, kim_smooth, rts_smooth

__version__ = "0.1.0"

__all__ = [
    "DLM",
    "SSM",
    "Autoregressive",
    "BayesianResult",
    "BearingsTracking",
    "Cycle",
    "DFMModel",
    "DFMResult",
    "DynamicFactorModel",
    "ExtendedKalmanFilter",
    "FilterProtocol",
    "FilterResult",
    "GaussianState",
    "HamiltonFilter",
    "KalmanFilter",
    "KimSmoother",
    "LocalLevel",
    "LocalLinearTrend",
    "LorenzAttractor",
    "MarkovSwitchingSSM",
    "NonlinearSSM",
    "ParticleFilter",
    "RTSSmoother",
    "Regression",
    "Seasonal",
    "SmootherProtocol",
    "SmootherResult",
    "StateSpaceModel",
    "StochasticVolatility",
    "SwitchingFilterResult",
    "SwitchingSmootherResult",
    "UnscentedKalmanFilter",
    "__version__",
    "ekf_filter",
    "fit_bayesian",
    "fit_dfm_em",
    "hamilton_filter",
    "kalman_filter",
    "kim_smooth",
    "particle_filter",
    "rts_smooth",
    "transform_returns",
    "ukf_filter",
]
