"""Feature calculators (gold layer) — faithful Python ports of the Rust ml-features modules. Each is a
streaming, causal calculator behind the SnapshotFeatureCalculator contract."""
from fxhnt.domain.features.base import SnapshotFeatureCalculator
from fxhnt.domain.features.microprice import (
    FEATURE_NAMES as MICROPRICE_FEATURES,
    MicropriceFeatures,
    cartea_adjusted_microprice,
    multilevel_microprice,
    stoikov_microprice,
)
from fxhnt.domain.features.ofi import (
    FEATURE_NAMES as OFI_FEATURES,
    OfiFeatures,
    book_deltas_per_level,
    log_gofi,
    ofi_per_level,
    slope_and_convexity,
)

__all__ = [
    "SnapshotFeatureCalculator",
    "MicropriceFeatures", "MICROPRICE_FEATURES",
    "stoikov_microprice", "multilevel_microprice", "cartea_adjusted_microprice",
    "OfiFeatures", "OFI_FEATURES",
    "ofi_per_level", "log_gofi", "book_deltas_per_level", "slope_and_convexity",
]
