"""Audio filter system.

Provides a pluggable filter architecture for audio analysis postprocessing.
Import this package to ensure all built-in filters are registered.
"""

from wled_controller.core.audio.filters.base import AudioFilter, AudioFilterOptionDef
from wled_controller.core.audio.filters.pipeline import AudioFilterPipeline
from wled_controller.core.audio.filters.registry import AudioFilterRegistry

# Import individual filters to trigger auto-registration
import wled_controller.core.audio.filters.audio_filter_template  # noqa: F401
import wled_controller.core.audio.filters.channel_extract  # noqa: F401
import wled_controller.core.audio.filters.band_extract  # noqa: F401
import wled_controller.core.audio.filters.peak_hold  # noqa: F401
import wled_controller.core.audio.filters.gain  # noqa: F401
import wled_controller.core.audio.filters.noise_gate  # noqa: F401
import wled_controller.core.audio.filters.envelope_follower  # noqa: F401
import wled_controller.core.audio.filters.spectral_smoothing  # noqa: F401
import wled_controller.core.audio.filters.compressor  # noqa: F401
import wled_controller.core.audio.filters.inverter  # noqa: F401
import wled_controller.core.audio.filters.beat_gate  # noqa: F401
import wled_controller.core.audio.filters.delay  # noqa: F401

__all__ = [
    "AudioFilter",
    "AudioFilterOptionDef",
    "AudioFilterPipeline",
    "AudioFilterRegistry",
]
