"""Audio infrastructure module.

Provide audio capture, level metering, buffering, playback, and encrypted storage.
"""

from noteflow.infrastructure.audio.capture import SoundDeviceCapture
from noteflow.infrastructure.audio.dto import (
    AudioDeviceInfo,
    AudioFrameCallback,
    TimestampedAudio,
)
from noteflow.infrastructure.audio.levels import RmsLevelProvider, compute_rms
from noteflow.infrastructure.audio.partial_buffer import PartialAudioBuffer
from noteflow.infrastructure.audio.playback import PlaybackState, SoundDevicePlayback
from noteflow.infrastructure.audio.protocols import (
    AudioCapture,
    AudioLevelProvider,
    AudioPlayback,
    RingBuffer,
)
from noteflow.infrastructure.audio.reader import MeetingAudioReader
from noteflow.infrastructure.audio.ring_buffer import TimestampedRingBuffer
from noteflow.infrastructure.audio.writer import MeetingAudioWriter

__all__ = [
    "AudioCapture",
    "AudioDeviceInfo",
    "AudioFrameCallback",
    "AudioLevelProvider",
    "AudioPlayback",
    "MeetingAudioReader",
    "MeetingAudioWriter",
    "PartialAudioBuffer",
    "PlaybackState",
    "RingBuffer",
    "RmsLevelProvider",
    "SoundDeviceCapture",
    "SoundDevicePlayback",
    "TimestampedAudio",
    "TimestampedRingBuffer",
    "compute_rms",
]
