"""mlx-spectro: High-performance STFT/iSTFT for Apple MLX."""

__version__ = "0.7.0"

from .spectral_ops import (
    CenterPadMode,
    CenterTailPad,
    FilteredOutputScale,
    FilteredSpectrogramTransform,
    HybridCQTTransform,
    ISTFTBackendPolicy,
    MFCCTransform,
    MelMode,
    MelNorm,
    MelOutputScale,
    MelScale,
    MelSpectrogramTransform,
    RepeatedShapeCompileCache,
    LogMelMode,
    LogMelSpectrogramTransform,
    SpectralFeatureTransform,
    STFTOutputLayout,
    SpectralTransform,
    WindowLike,
    amplitude_to_db,
    chroma_stft,
    dct_matrix,
    filtered_spectrogram,
    get_cache_debug_stats,
    get_transform_mlx,
    hybrid_cqt,
    log_triangular_fbanks,
    make_window,
    mfcc,
    melscale_fbanks,
    onset_strength,
    onset_strength_multi,
    positive_spectral_diff,
    reset_cache_debug_stats,
    resolve_fft_params,
    rms,
    spectral_bandwidth,
    spectral_centroid,
    spectral_contrast,
    spectral_features,
    spectral_rolloff,
    spec_mlx_device_key,
    zero_crossing_rate,
)

__all__ = [
    "SpectralTransform",
    "RepeatedShapeCompileCache",
    "MelSpectrogramTransform",
    "MFCCTransform",
    "SpectralFeatureTransform",
    "ISTFTBackendPolicy",
    "STFTOutputLayout",
    "CenterPadMode",
    "CenterTailPad",
    "FilteredOutputScale",
    "MelScale",
    "MelNorm",
    "MelMode",
    "MelOutputScale",
    "LogMelMode",
    "WindowLike",
    "LogMelSpectrogramTransform",
    "FilteredSpectrogramTransform",
    "HybridCQTTransform",
    "make_window",
    "melscale_fbanks",
    "amplitude_to_db",
    "chroma_stft",
    "dct_matrix",
    "filtered_spectrogram",
    "hybrid_cqt",
    "log_triangular_fbanks",
    "mfcc",
    "onset_strength",
    "onset_strength_multi",
    "positive_spectral_diff",
    "spectral_features",
    "spectral_centroid",
    "spectral_bandwidth",
    "spectral_rolloff",
    "spectral_contrast",
    "rms",
    "zero_crossing_rate",
    "resolve_fft_params",
    "get_transform_mlx",
    "spec_mlx_device_key",
    "get_cache_debug_stats",
    "reset_cache_debug_stats",
]
