using System;
using System.Collections.Generic;
namespace Adrenak.UniVoice {
///
/// Audio server interface.
/// The implementation of this class is generally based on some networking
/// framework such as Mirror, FishNet, Unity Netcode, etc.
///
///
/// The identifier data type used by the framework you're using in your implementation.
/// For example, Mirror identifies players using int. So, a MirrorAudioClient class
/// that implements this interface would be MirrorAudioServer : IAudioServer
///
public interface IAudioServer : IDisposable {
///
/// Event fired when the server starts
///
event Action OnServerStart;
///
/// Event fired when the server stops
///
event Action OnServerStop;
///
/// Event fired when the peer voice settings are updated
///
event Action OnClientVoiceSettingsUpdated;
///
/// IDs of all the clients in the voice chat
///
List ClientIDs { get; }
///
/// of every client connected to the server
///
Dictionary ClientVoiceSettings { get; }
}
}