"""
Services package for the Call Management application (Service Type 4 - ElevenLabs WebSocket).

This package contains all service modules organized following Single Responsibility Principle:

- audio_service: Handles all audio processing operations
- connection_manager: Manages WebSocket connections
- elevenlabs_websocket_service: Handles ElevenLabs WebSocket integration
- bot_configuration_service: Loads bot configurations
- mcube_service: Handles Mcube integration

Each service is designed to be independent, testable, and reusable.
"""
from .audio_service import AudioService, AudioMetadata, AudioFormatConverter, AudioTimingManager, AudioBufferManager
from .mcube_service import McubeService
from .connection_manager import WebSocketConnectionManager, ConnectionState
from .call_session import CallSession
from .call_manager import CallManager, call_manager
from .bot_configuration_service import BotConfigurationService, bot_configuration_service

__all__ = [
    # Audio Service
    'AudioService',
    'AudioMetadata', 
    'AudioFormatConverter',
    'AudioTimingManager',
    'AudioBufferManager',
    
    # Mcube Service
    'McubeService',
    
    # Connection Management
    'WebSocketConnectionManager',
    'ConnectionState',
    
    # Call Management
    'CallSession',
    'CallManager',
    'call_manager',
    
    # Bot Configuration Service
    'BotConfigurationService',
    'bot_configuration_service',
]
