#[cfg(feature = "audio")]
pub mod audio;
#[cfg(feature = "gpio")]
pub mod gpio;
#[cfg(feature = "bluetooth")]
pub mod bluetooth;
#[cfg(feature = "network")]
pub mod network;
#[cfg(feature = "camera")]
pub mod camera;
#[cfg(feature = "usb")]
pub mod usb;
#[cfg(any(
feature = "homeauto",
feature = "zigbee",
feature = "zwave",
feature = "thread",
feature = "matter",
feature = "matter-ble",
))]
pub mod homeauto;
#[cfg(feature = "audio")]
pub use audio::{
AudioBuffer, AudioCapture, AudioConfig, AudioDevice, AudioError, AudioPlayback, AudioResult,
AudioRingBuffer, DeviceDirection, OutputFormat, SampleFormat, SpeechToText, SttOptions,
TextToSpeech, Transcript, TranscriptSegment, TtsOptions, Voice,
};
#[cfg(feature = "audio")]
pub use audio::{decode_wav, encode_wav};
#[cfg(feature = "audio")]
pub use audio::{
AzureStt, AzureTts, CartesiaTts, DeepgramStt, DeepgramTts, ElevenLabsStt, ElevenLabsTts,
FishStt, FishTts, GoogleTts, MurfTts, OpenAiResponsesStt, OpenAiResponsesTts, OpenAiStt,
OpenAiTts,
};
#[cfg(feature = "audio")]
pub use audio::{CpalCapture, CpalPlayback};
#[cfg(all(feature = "audio", feature = "flac"))]
pub use audio::{decode_flac, encode_flac};
#[cfg(all(feature = "audio", feature = "local-stt"))]
pub use audio::WhisperStt;
#[cfg(feature = "gpio")]
pub use gpio::{GpioChipInfo, GpioLineInfo, GpioPin, GpioPinManager, GpioSafetyPolicy};
#[cfg(feature = "camera")]
pub use camera::{
CameraCapture, CameraDevice, CameraError, CameraFormat, CameraFrame, FrameRate, NokhwaCapture,
PixelFormat, Resolution,
};
#[cfg(feature = "usb")]
pub use usb::{UsbClass, UsbDevice, UsbError, UsbHandle, UsbSpeed};
#[cfg(any(
feature = "homeauto",
feature = "zigbee",
feature = "zwave",
feature = "thread",
feature = "matter",
feature = "matter-ble",
))]
pub use homeauto::{HomeAutoError, HomeAutoEvent, HomeAutoResult, HomeDevice, Protocol};
#[cfg(feature = "zigbee")]
pub use homeauto::{EzspCoordinator, ZigbeeAddr, ZigbeeCoordinator, ZigbeeDevice, ZnpCoordinator};
#[cfg(feature = "zwave")]
pub use homeauto::{CommandClass, NodeId, ZWaveController, ZWaveNode, ZWaveSerialController};
#[cfg(feature = "thread")]
pub use homeauto::{ThreadBorderRouter, ThreadNeighbor, ThreadNodeInfo};
#[cfg(feature = "matter")]
pub use homeauto::{MatterController, MatterDevice, MatterDeviceConfig, MatterDeviceServer};
#[cfg(feature = "audio")]
pub use audio::{EnergyVad, SpeechSegment, VoiceActivityDetector};
#[cfg(feature = "vad")]
pub use audio::{VadMode, WebRtcVad};
#[cfg(feature = "wake-word-porcupine")]
pub use audio::PorcupineDetector;
#[cfg(feature = "wake-word-rustpotter")]
pub use audio::RustpotterDetector;
#[cfg(any(
feature = "wake-word",
feature = "wake-word-rustpotter",
feature = "wake-word-porcupine"
))]
pub use audio::{EnergyTriggerDetector, WakeWordDetection, WakeWordDetector};
#[cfg(feature = "voice-assistant")]
pub use audio::{
AssistantState, VoiceAssistant, VoiceAssistantBuilder, VoiceAssistantConfig,
VoiceAssistantHandler,
};