// @generated by tools/generate_api_shims.py; do not edit by hand.
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::all, clippy::pedantic, dead_code, unused_variables)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]

/// C# type: `T:LibreMetaverse.Voice.Vivox.TCPPipe`.
pub struct TCPPipe;
impl TCPPipe {
    /// C# member: `E:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected`.
    pub fn subscribe_on_disconnected(
        &self,
        handler: Option<libremetaverse_voice_vivox::TCPPipeOnDisconnectedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine`.
    pub fn subscribe_on_receive_line(
        &self,
        handler: Option<libremetaverse_voice_vivox::TCPPipeOnReceiveLineCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine"
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.TCPPipe.#ctor")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.Connect(System.String,System.Int32)`.
    pub fn connect(
        &self,
        address: String,
        port: i32,
    ) -> Result<Option<libremetaverse_types::compat::SocketException>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.Connect(System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.Disconnect`.
    pub fn disconnect(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.TCPPipe.Disconnect")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.SendData(System.Byte[])`.
    pub fn send_data(&self, data: Vec<u8>) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.SendData(System.Byte[])",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.SendLine(System.String)`.
    pub fn send_line(&self, message: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.SendLine(System.String)",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.TCPPipe.Connected`.
    pub fn connected(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Voice.Vivox.TCPPipe.Connected")
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback`.
pub struct TCPPipeOnDisconnectedCallback;
impl TCPPipeOnDisconnectedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.BeginInvoke(System.Net.Sockets.SocketException,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        se: libremetaverse_types::compat::SocketException,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.BeginInvoke(System.Net.Sockets.SocketException,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.Invoke(System.Net.Sockets.SocketException)`.
    pub fn invoke(
        &self,
        se: libremetaverse_types::compat::SocketException,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.Invoke(System.Net.Sockets.SocketException)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback`.
pub struct TCPPipeOnReceiveLineCallback;
impl TCPPipeOnReceiveLineCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.BeginInvoke(System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        line: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.BeginInvoke(System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.Invoke(System.String)`.
    pub fn invoke(&self, line: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.Invoke(System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway`.
pub struct VoiceGateway;
impl VoiceGateway {
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse`.
    pub fn subscribe_on_account_login_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceAccountEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent`.
    pub fn subscribe_on_account_login_state_change_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayAccountLoginStateChangeEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent`.
    pub fn subscribe_on_aux_audio_properties_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayAudioPropertiesEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse`.
    pub fn subscribe_on_aux_get_capture_devices_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse`.
    pub fn subscribe_on_aux_get_render_devices_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceDevicesEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse`.
    pub fn subscribe_on_connector_create_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceConnectorEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected`.
    pub fn subscribe_on_daemon_connected(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonConnectedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect`.
    pub fn subscribe_on_daemon_couldnt_connect(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonCouldntConnectCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun`.
    pub fn subscribe_on_daemon_couldnt_run(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonCouldntRunCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected`.
    pub fn subscribe_on_daemon_disconnected(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonDisconnectedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited`.
    pub fn subscribe_on_daemon_exited(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonExitedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning`.
    pub fn subscribe_on_daemon_running(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayDaemonRunningCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent`.
    pub fn subscribe_on_session_added_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionAddedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`.
    pub fn subscribe_on_session_create(
        &self,
        handler: Option<libremetaverse_types::compat::EventHandler<()>>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse`.
    pub fn subscribe_on_session_create_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceSessionEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent`.
    pub fn subscribe_on_session_group_added_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionGroupAddedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent`.
    pub fn subscribe_on_session_media_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionMediaEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent`.
    pub fn subscribe_on_session_new_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayNewSessionEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent`.
    pub fn subscribe_on_session_participant_added_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayParticipantAddedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent`.
    pub fn subscribe_on_session_participant_properties_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayParticipantPropertiesEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent`.
    pub fn subscribe_on_session_participant_removed_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayParticipantRemovedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent`.
    pub fn subscribe_on_session_participant_state_change_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayParticipantStateChangeEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent`.
    pub fn subscribe_on_session_participant_updated_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayParticipantUpdatedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`.
    pub fn subscribe_on_session_remove(
        &self,
        handler: Option<libremetaverse_types::compat::EventHandler<()>>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent`.
    pub fn subscribe_on_session_removed_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionRemovedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent`.
    pub fn subscribe_on_session_state_change_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionStateChangeEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent`.
    pub fn subscribe_on_session_updated_event(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewaySessionUpdatedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange`.
    pub fn subscribe_on_voice_connection_change(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceConnectionChangeCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest`.
    pub fn subscribe_on_voice_mic_test(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceMicTestCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse`.
    pub fn subscribe_on_voice_response(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_voice_vivox::VoiceGatewayVoiceResponseEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse"
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.#ctor(LibreMetaverse.GridClient)`.
    pub fn new(c: libremetaverse::GridClient) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.#ctor(LibreMetaverse.GridClient)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogin(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Boolean)`.
    pub fn account_login(
        &self,
        connector_handle: String,
        account_name: String,
        account_password: String,
        audio_session_answer_mode: String,
        account_uri: String,
        participant_property_frequency: i32,
        enable_buddies_and_presence: bool,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogin(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogout(System.String)`.
    pub fn account_logout(&self, account_handle: String) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogout(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStart(System.Int32)`.
    pub fn aux_capture_audio_start(&self, duration: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStart(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStop`.
    pub fn aux_capture_audio_stop(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStop",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetCaptureDevices`.
    pub fn aux_get_capture_devices(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetCaptureDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetRenderDevices`.
    pub fn aux_get_render_devices(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetRenderDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetCaptureDevice(System.String)`.
    pub fn aux_set_capture_device(
        &self,
        capture_device_specifier: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetCaptureDevice(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetMicLevel(System.Int32)`.
    pub fn aux_set_mic_level(&self, level: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetMicLevel(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetRenderDevice(System.String)`.
    pub fn aux_set_render_device(
        &self,
        render_device_specifier: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetRenderDevice(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetSpeakerLevel(System.Int32)`.
    pub fn aux_set_speaker_level(&self, level: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetSpeakerLevel(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectToDaemon(System.String,System.Int32)`.
    pub fn connect_to_daemon(&self, address: String, port: i32) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectToDaemon(System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorCreate(System.String,System.String,System.UInt16,System.UInt16,LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings)`.
    pub fn connector_create(
        &self,
        client_name: String,
        account_management_server: String,
        minimum_port: u16,
        maximum_port: u16,
        logging: libremetaverse_voice_vivox::VoiceGatewayVoiceLoggingSettings,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorCreate(System.String,System.String,System.UInt16,System.UInt16,LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorInitiateShutdown(System.String)`.
    pub fn connector_initiate_shutdown(
        &self,
        connector_handle: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorInitiateShutdown(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalMic(System.String,System.Boolean)`.
    pub fn connector_mute_local_mic(
        &self,
        connector_handle: String,
        mute: bool,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalMic(System.String,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalSpeaker(System.String,System.Boolean)`.
    pub fn connector_mute_local_speaker(
        &self,
        connector_handle: String,
        mute: bool,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalSpeaker(System.String,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalMicVolume(System.String,System.Int32)`.
    pub fn connector_set_local_mic_volume(
        &self,
        connector_handle: String,
        value: i32,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalMicVolume(System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalSpeakerVolume(System.String,System.Int32)`.
    pub fn connector_set_local_speaker_volume(
        &self,
        connector_handle: String,
        value: i32,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalSpeakerVolume(System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Dispose`.
    pub fn dispose(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.VoiceGateway.Dispose")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.MakeXML(System.String,System.String)`.
    pub fn make_xml(name: String, text: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.MakeXML(System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String)`.
    pub fn request_with_string(&self, action: String) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String,System.String)`.
    pub fn request_with_string_string(
        &self,
        action: String,
        request_xml: Option<String>,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SIPFromUUID(LibreMetaverse.UUID)`.
    pub fn sip_from_uuid(&self, id: libremetaverse_types::UUID) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SIPFromUUID(LibreMetaverse.UUID)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionConnect(System.String,System.String)`.
    pub fn session_connect(
        &self,
        session_handle: String,
        audio_media: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionConnect(System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionCreate(System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String)`.
    pub fn session_create(
        &self,
        account_handle: String,
        session_uri: String,
        name: String,
        password: String,
        join_audio: bool,
        join_text: bool,
        password_hash_algorithm: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionCreate(System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStart(System.String,System.Boolean)`.
    pub fn session_render_audio_start(
        &self,
        sound_file_path: String,
        loop_: bool,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStart(System.String,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStop(System.String)`.
    pub fn session_render_audio_stop(&self, sound_file_path: String) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStop(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSet3DPosition(System.String,LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)`.
    pub fn session_set3_d_position(
        &self,
        session_handle: String,
        speaker_position: libremetaverse_voice_vivox::VoicePosition,
        listener_position: libremetaverse_voice_vivox::VoicePosition,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSet3DPosition(System.String,LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSetParticipantVolumeForMe(System.String,System.String,System.Int32)`.
    pub fn session_set_participant_volume_for_me(
        &self,
        session_handle: String,
        participant_uri: String,
        volume: i32,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSetParticipantVolumeForMe(System.String,System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionTerminate(System.String)`.
    pub fn session_terminate(&self, session_handle: String) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionTerminate(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Start`.
    pub fn start(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.VoiceGateway.Start")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.StartDaemon(System.String,System.String)`.
    pub fn start_daemon(&self, path: String, args: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.StartDaemon(System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Stop`.
    pub fn stop(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.VoiceGateway.Stop")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.StopDaemon`.
    pub fn stop_daemon(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.StopDaemon",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice`.
    pub fn current_capture_device(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice`.
    pub fn set_current_capture_device(&mut self, value: String) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected`.
    pub fn daemon_is_connected(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected`.
    pub fn set_daemon_is_connected(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning`.
    pub fn daemon_is_running(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning`.
    pub fn set_daemon_is_running(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicLevel`.
    pub fn set_mic_level(&mut self, value: i32) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicLevel"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicMute`.
    pub fn set_mic_mute(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicMute"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice`.
    pub fn playback_device(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice`.
    pub fn set_playback_device(&mut self, value: String) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId`.
    pub fn request_id(&self) -> i32 {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId`.
    pub fn set_request_id(&mut self, value: i32) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrLevel`.
    pub fn set_spkr_level(&mut self, value: i32) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrLevel"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrMute`.
    pub fn set_spkr_mute(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrMute"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode`.
    pub fn test_mode(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode`.
    pub fn set_test_mode(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs`.
pub struct VoiceGatewayAccountLoginStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.AccountHandle`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.State`.
    pub state: libremetaverse_voice_vivox::VoiceGatewayLoginState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusCode`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusString`.
    pub status_string: String,
}
impl VoiceGatewayAccountLoginStateChangeEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState)`.
    pub fn new(
        account_handle: String,
        status_code: i32,
        status_string: String,
        state: libremetaverse_voice_vivox::VoiceGatewayLoginState,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs`.
pub struct VoiceGatewayAudioPropertiesEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.IsMicActive`.
    pub is_mic_active: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicEnergy`.
    pub mic_energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicVolume`.
    pub mic_volume: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.SpeakerVolume`.
    pub speaker_volume: i32,
}
impl VoiceGatewayAudioPropertiesEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.#ctor(System.Boolean,System.Single,System.Int32,System.Int32)`.
    pub fn new(
        mic_is_active: bool,
        mic_energy: f32,
        mic_volume: i32,
        speaker_volume: i32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.#ctor(System.Boolean,System.Single,System.Int32,System.Int32)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice`.
pub struct VoiceGatewayCaptureDevice {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.Device`.
    pub device: Option<String>,
}
impl VoiceGatewayCaptureDevice {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayConnectionState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.AccountLogin`.
    AccountLogin = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.ConnectorConnected`.
    ConnectorConnected = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonConnected`.
    DaemonConnected = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonStarted`.
    DaemonStarted = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.None`.
    None = 0,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.Provisioned`.
    Provisioned = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.RegionCapAvailable`.
    RegionCapAvailable = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.SessionRunning`.
    SessionRunning = 7,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback`.
pub struct VoiceGatewayDaemonConnectedCallback;
impl VoiceGatewayDaemonConnectedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback`.
pub struct VoiceGatewayDaemonCouldntConnectCallback;
impl VoiceGatewayDaemonCouldntConnectCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback`.
pub struct VoiceGatewayDaemonCouldntRunCallback;
impl VoiceGatewayDaemonCouldntRunCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback`.
pub struct VoiceGatewayDaemonDisconnectedCallback;
impl VoiceGatewayDaemonDisconnectedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback`.
pub struct VoiceGatewayDaemonExitedCallback;
impl VoiceGatewayDaemonExitedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback`.
pub struct VoiceGatewayDaemonRunningCallback;
impl VoiceGatewayDaemonRunningCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.BeginInvoke(System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.Invoke`.
    pub fn invoke(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.Invoke",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayLoginState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.Error`.
    Error = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedIn`.
    LoggedIn = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedOut`.
    LoggedOut = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs`.
pub struct VoiceGatewayNewSessionEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AccountHandle`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AudioMedia`.
    pub audio_media: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Name`.
    pub name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewayNewSessionEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.String,System.String)`.
    pub fn new(
        account_handle: String,
        session_handle: String,
        uri: String,
        is_channel: bool,
        name: String,
        audio_media: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs`.
pub struct VoiceGatewayParticipantAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.AccountName`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Appllication`.
    pub appllication: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.DisplayName`.
    pub display_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Type`.
    pub type_: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewayParticipantAddedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.#ctor(System.String,System.String,System.String,System.String,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType,System.String)`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        participant_uri: String,
        account_name: String,
        display_name: String,
        type_: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
        application: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.#ctor(System.String,System.String,System.String,System.String,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs`.
pub struct VoiceGatewayParticipantPropertiesEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Energy`.
    pub energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsLocallyMuted`.
    pub is_locally_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsModeratorMuted`.
    pub is_moderator_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsSpeaking`.
    pub is_speaking: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Uri`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Volume`.
    pub volume: i32,
}
impl VoiceGatewayParticipantPropertiesEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.#ctor(System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single)`.
    pub fn new(
        session_handle: String,
        participant_uri: String,
        is_locally_muted: bool,
        is_moderator_muted: bool,
        is_speaking: bool,
        volume: i32,
        energy: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.#ctor(System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs`.
pub struct VoiceGatewayParticipantRemovedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.AccountName`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Reason`.
    pub reason: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewayParticipantRemovedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.#ctor(System.String,System.String,System.String,System.String,System.String)`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        participant_uri: String,
        account_name: String,
        reason: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.#ctor(System.String,System.String,System.String,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayParticipantState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Answering`.
    Answering = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Connected`.
    Connected = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnected`.
    Disconnected = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnecting`.
    Disconnecting = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Idle`.
    Idle = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.InProgress`.
    InProgress = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Incoming`.
    Incoming = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Pending`.
    Pending = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Ringing`.
    Ringing = 6,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs`.
pub struct VoiceGatewayParticipantStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.AccountName`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.DisplayName`.
    pub display_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.State`.
    pub state: libremetaverse_voice_vivox::VoiceGatewayParticipantState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusCode`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusString`.
    pub status_string: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Type`.
    pub type_: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewayParticipantStateChangeEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState,System.String,System.String,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType)`.
    pub fn new(
        session_handle: String,
        status_code: i32,
        status_string: String,
        state: libremetaverse_voice_vivox::VoiceGatewayParticipantState,
        participant_uri: String,
        account_name: String,
        display_name: String,
        participant_type: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState,System.String,System.String,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayParticipantType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Focus`.
    Focus = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Moderator`.
    Moderator = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.User`.
    User = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs`.
pub struct VoiceGatewayParticipantUpdatedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Energy`.
    pub energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsMuted`.
    pub is_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsSpeaking`.
    pub is_speaking: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Uri`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Volume`.
    pub volume: i32,
}
impl VoiceGatewayParticipantUpdatedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.#ctor(System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.Single)`.
    pub fn new(
        session_handle: String,
        uri: String,
        is_muted: bool,
        is_speaking: bool,
        volume: i32,
        energy: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.#ctor(System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice`.
pub struct VoiceGatewayRenderDevice {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.Device`.
    pub device: Option<String>,
}
impl VoiceGatewayRenderDevice {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayResponseType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogin`.
    AccountLogin = 15,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogout`.
    AccountLogout = 16,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStart`.
    CaptureAudioStart = 11,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStop`.
    CaptureAudioStop = 12,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorCreate`.
    ConnectorCreate = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorInitiateShutdown`.
    ConnectorInitiateShutdown = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetCaptureDevices`.
    GetCaptureDevices = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetRenderDevices`.
    GetRenderDevices = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalMic`.
    MuteLocalMic = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalSpeaker`.
    MuteLocalSpeaker = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.None`.
    None = 0,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStart`.
    RenderAudioStart = 17,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStop`.
    RenderAudioStop = 18,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionConnect`.
    SessionConnect = 20,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionCreate`.
    SessionCreate = 19,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionTerminate`.
    SessionTerminate = 21,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.Set3DPosition`.
    Set3DPosition = 24,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetCaptureDevice`.
    SetCaptureDevice = 10,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalMicVolume`.
    SetLocalMicVolume = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalSpeakerVolume`.
    SetLocalSpeakerVolume = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetMicLevel`.
    SetMicLevel = 13,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantMuteForMe`.
    SetParticipantMuteForMe = 23,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantVolumeForMe`.
    SetParticipantVolumeForMe = 22,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetRenderDevice`.
    SetRenderDevice = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetSpeakerLevel`.
    SetSpeakerLevel = 14,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs`.
pub struct VoiceGatewaySessionAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsChannel`.
    pub is_channel: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsIncoming`.
    pub is_incoming: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewaySessionAddedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.Boolean)`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        uri: String,
        is_channel: bool,
        is_incoming: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.Boolean)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs`.
pub struct VoiceGatewaySessionGroupAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.AccountHandle`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.Type`.
    pub type_: String,
}
impl VoiceGatewaySessionGroupAddedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.#ctor(System.String,System.String,System.String)`.
    pub fn new(
        acct_handle: String,
        session_group_handle: String,
        type_: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.#ctor(System.String,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs`.
pub struct VoiceGatewaySessionMediaEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasAudio`.
    pub has_audio: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasText`.
    pub has_text: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasVideo`.
    pub has_video: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.Terminated`.
    pub terminated: bool,
}
impl VoiceGatewaySessionMediaEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.#ctor(System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean)`.
    pub fn new(
        session_handle: String,
        has_text: bool,
        has_audio: bool,
        has_video: bool,
        terminated: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.#ctor(System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs`.
pub struct VoiceGatewaySessionRemovedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewaySessionRemovedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.#ctor(System.String,System.String,System.String)`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        uri: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.#ctor(System.String,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewaySessionState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Answering`.
    Answering = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Connected`.
    Connected = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Disconnected`.
    Disconnected = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Hold`.
    Hold = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Idle`.
    Idle = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.InProgress`.
    InProgress = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Refer`.
    Refer = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Ringing`.
    Ringing = 8,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs`.
pub struct VoiceGatewaySessionStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.ChannelName`.
    pub channel_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.IsChannel`.
    pub is_channel: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.State`.
    pub state: libremetaverse_voice_vivox::VoiceGatewaySessionState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusCode`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusString`.
    pub status_string: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.Uri`.
    pub uri: String,
}
impl VoiceGatewaySessionStateChangeEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState,System.String,System.Boolean,System.String)`.
    pub fn new(
        session_handle: String,
        status_code: i32,
        status_string: String,
        state: libremetaverse_voice_vivox::VoiceGatewaySessionState,
        uri: String,
        is_channel: bool,
        channel_name: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.#ctor(System.String,System.Int32,System.String,LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState,System.String,System.Boolean,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs`.
pub struct VoiceGatewaySessionUpdatedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsFocused`.
    pub is_focused: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsMuted`.
    pub is_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionGroupHandle`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionHandle`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.TransmitEnabled`.
    pub transmit_enabled: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Uri`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Volume`.
    pub volume: i32,
}
impl VoiceGatewaySessionUpdatedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.Int32,System.Boolean,System.Boolean)`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        uri: String,
        is_muted: bool,
        volume: i32,
        transmit_enabled: bool,
        is_focused: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.Int32,System.Boolean,System.Boolean)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs`.
pub struct VoiceGatewayVoiceAccountEventArgs;
impl VoiceGatewayVoiceAccountEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)`.
    pub fn new(
        rcode: i32,
        scode: i32,
        text: String,
        ahandle: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.AccountHandle`.
    pub fn account_handle(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.AccountHandle"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback`.
pub struct VoiceGatewayVoiceConnectionChangeCallback;
impl VoiceGatewayVoiceConnectionChangeCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.BeginInvoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        state: libremetaverse_voice_vivox::VoiceGatewayConnectionState,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.BeginInvoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.Invoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState)`.
    pub fn invoke(
        &self,
        state: libremetaverse_voice_vivox::VoiceGatewayConnectionState,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.Invoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs`.
pub struct VoiceGatewayVoiceConnectorEventArgs;
impl VoiceGatewayVoiceConnectorEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String,System.String)`.
    pub fn new(
        rcode: i32,
        scode: i32,
        text: String,
        version: String,
        handle: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String,System.String)",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Handle`.
    pub fn handle(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Handle"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Version`.
    pub fn version(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Version"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs`.
pub struct VoiceGatewayVoiceDevicesEventArgs;
impl VoiceGatewayVoiceDevicesEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.List{System.String})`.
    pub fn new(
        type_: libremetaverse_voice_vivox::VoiceGatewayResponseType,
        rcode: i32,
        scode: i32,
        text: String,
        current: String,
        avail: Vec<String>,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType,System.Int32,System.Int32,System.String,System.String,System.Collections.Generic.List{System.String})",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.CurrentDevice`.
    pub fn current_device(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.CurrentDevice"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.Devices`.
    pub fn devices(&self) -> Vec<String> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.Devices"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent`.
pub struct VoiceGatewayVoiceEvent {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountHandle`.
    pub account_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountName`.
    pub account_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Application`.
    pub application: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AudioMedia`.
    pub audio_media: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ChannelName`.
    pub channel_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.DisplayName`.
    pub display_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Energy`.
    pub energy: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasAudio`.
    pub has_audio: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasText`.
    pub has_text: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasVideo`.
    pub has_video: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Incoming`.
    pub incoming: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsChannel`.
    pub is_channel: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsFocused`.
    pub is_focused: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsIncoming`.
    pub is_incoming: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsLocallyMuted`.
    pub is_locally_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsModeratorMuted`.
    pub is_moderator_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsMuted`.
    pub is_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsSpeaking`.
    pub is_speaking: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicEnergy`.
    pub mic_energy: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicIsActive`.
    pub mic_is_active: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicVolume`.
    pub mic_volume: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Name`.
    pub name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantType`.
    pub participant_type: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantUri`.
    pub participant_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Reason`.
    pub reason: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionGroupHandle`.
    pub session_group_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionHandle`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SpeakerVolume`.
    pub speaker_volume: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.State`.
    pub state: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusCode`.
    pub status_code: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusString`.
    pub status_string: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Terminated`.
    pub terminated: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.TransmitEnabled`.
    pub transmit_enabled: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Type`.
    pub type_: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.URI`.
    pub uri_with_field: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Uri`.
    pub uri_with_field_810c2b7a: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Volume`.
    pub volume: Option<String>,
}
impl VoiceGatewayVoiceEvent {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml`.
pub struct VoiceGatewayVoiceInputXml {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.Request`.
    pub request: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceRequest>,
}
impl VoiceGatewayVoiceInputXml {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings`.
pub struct VoiceGatewayVoiceLoggingSettings {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Enabled`.
    pub enabled: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNamePrefix`.
    pub file_name_prefix: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNameSuffix`.
    pub file_name_suffix: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Folder`.
    pub folder: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.LogLevel`.
    pub log_level: i32,
}
impl VoiceGatewayVoiceLoggingSettings {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback`.
pub struct VoiceGatewayVoiceMicTestCallback;
impl VoiceGatewayVoiceMicTestCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.BeginInvoke(System.Single,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        level: f32,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.BeginInvoke(System.Single,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.Invoke(System.Single)`.
    pub fn invoke(&self, level: f32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.Invoke(System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest`.
pub struct VoiceGatewayVoiceRequest {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountManagementServer`.
    pub account_management_server: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountName`.
    pub account_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountPassword`.
    pub account_password: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountURI`.
    pub account_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Action`.
    pub action: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AudioSessionAnswerMode`.
    pub audio_session_answer_mode: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.CaptureDeviceSpecifier`.
    pub capture_device_specifier: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ClientName`.
    pub client_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ConnectorHandle`.
    pub connector_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Duration`.
    pub duration: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.EnableBuddiesAndPresence`.
    pub enable_buddies_and_presence: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinAudio`.
    pub join_audio: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinText`.
    pub join_text: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Level`.
    pub level: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ListenerPosition`.
    pub listener_position: Option<libremetaverse_voice_vivox::VoicePosition>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Logging`.
    pub logging: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceLoggingSettings>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Loop`.
    pub loop_: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MaximumPort`.
    pub maximum_port: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MinimumPort`.
    pub minimum_port: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Name`.
    pub name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.OrientationType`.
    pub orientation_type: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantPropertyFrequency`.
    pub participant_property_frequency: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantURI`.
    pub participant_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Password`.
    pub password: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.PasswordHashAlgorithm`.
    pub password_hash_algorithm: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RenderDeviceSpecifier`.
    pub render_device_specifier: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RequestId`.
    pub request_id: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SessionHandle`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SoundFilePath`.
    pub sound_file_path: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SpeakerPosition`.
    pub speaker_position: Option<libremetaverse_voice_vivox::VoicePosition>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.URI`.
    pub uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Value`.
    pub value: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Volume`.
    pub volume: Option<String>,
}
impl VoiceGatewayVoiceRequest {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse`.
pub struct VoiceGatewayVoiceResponse {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Action`.
    pub action: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.InputXml`.
    pub input_xml: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceInputXml>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.RequestId`.
    pub request_id: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Results`.
    pub results: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceResponseResults>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.ReturnCode`.
    pub return_code: i32,
}
impl VoiceGatewayVoiceResponse {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs`.
pub struct VoiceGatewayVoiceResponseEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Message`.
    pub message: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.ReturnCode`.
    pub return_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.StatusCode`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Type`.
    pub type_: libremetaverse_voice_vivox::VoiceGatewayResponseType,
}
impl VoiceGatewayVoiceResponseEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType,System.Int32,System.Int32,System.String)`.
    pub fn new(
        type_: libremetaverse_voice_vivox::VoiceGatewayResponseType,
        rcode: i32,
        scode: i32,
        text: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType,System.Int32,System.Int32,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults`.
pub struct VoiceGatewayVoiceResponseResults {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.AccountHandle`.
    pub account_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CaptureDevices`.
    pub capture_devices: Option<Vec<libremetaverse_voice_vivox::VoiceGatewayCaptureDevice>>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.ConnectorHandle`.
    pub connector_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentCaptureDevice`.
    pub current_capture_device: Option<libremetaverse_voice_vivox::VoiceGatewayCaptureDevice>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentRenderDevice`.
    pub current_render_device: Option<libremetaverse_voice_vivox::VoiceGatewayRenderDevice>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.RenderDevices`.
    pub render_devices: Option<Vec<libremetaverse_voice_vivox::VoiceGatewayRenderDevice>>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.SessionHandle`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusCode`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusString`.
    pub status_string: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.VersionID`.
    pub version_id: Option<String>,
}
impl VoiceGatewayVoiceResponseResults {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.#ctor",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs`.
pub struct VoiceGatewayVoiceSessionEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.SessionHandle`.
    pub session_handle: String,
}
impl VoiceGatewayVoiceSessionEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)`.
    pub fn new(
        rcode: i32,
        scode: i32,
        text: String,
        shandle: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager`.
pub struct VoiceManager {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.BlockingTimeout`.
    pub blocking_timeout: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VoiceServer`.
    pub voice_server: String,
}
impl VoiceManager {
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList`.
    pub fn subscribe_on_account_channel_get_list(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout`.
    pub fn subscribe_on_account_logout(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties`.
    pub fn subscribe_on_aux_audio_properties(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerAuxAudioPropertiesCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnCaptureDevices`.
    pub fn subscribe_on_capture_devices(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerDevicesCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnCaptureDevices"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorCreated`.
    pub fn subscribe_on_connector_created(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerConnectorCreatedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorCreated"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorInitiateShutdown`.
    pub fn subscribe_on_connector_initiate_shutdown(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorInitiateShutdown"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLogin`.
    pub fn subscribe_on_login(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerLoginCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLogin"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLoginStateChange`.
    pub fn subscribe_on_login_state_change(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerLoginStateChangeCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLoginStateChange"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnNewSession`.
    pub fn subscribe_on_new_session(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerNewSessionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnNewSession"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParcelVoiceInfo`.
    pub fn subscribe_on_parcel_voice_info(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerParcelVoiceInfoCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParcelVoiceInfo"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantProperties`.
    pub fn subscribe_on_participant_properties(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerParticipantPropertiesCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantProperties"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantStateChange`.
    pub fn subscribe_on_participant_state_change(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerParticipantStateChangeCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantStateChange"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnProvisionAccount`.
    pub fn subscribe_on_provision_account(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerProvisionAccountCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnProvisionAccount"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnRenderDevices`.
    pub fn subscribe_on_render_devices(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerDevicesCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnRenderDevices"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionConnected`.
    pub fn subscribe_on_session_connected(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionConnected"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated`.
    pub fn subscribe_on_session_created(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerSessionCreatedCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange`.
    pub fn subscribe_on_session_state_change(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerSessionStateChangeCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated`.
    pub fn subscribe_on_session_terminated(
        &self,
        handler: Option<libremetaverse_voice_vivox::VoiceManagerBasicActionCallback>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated"
        )
    }
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_ARGS`.
    pub const DAEMON_ARGS: &'static str = " -p tcp -h -c -ll ";
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_LOG_LEVEL`.
    pub const DAEMON_LOG_LEVEL: i32 = 1;
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_PORT`.
    pub const DAEMON_PORT: i32 = 44124;
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.REQUEST_TERMINATOR`.
    pub const REQUEST_TERMINATOR: &'static str = "\n\n\n";
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_DEBUG_SERVER`.
    pub const VOICE_DEBUG_SERVER: &'static str = "bhd.vivox.com";
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_MAJOR_VERSION`.
    pub const VOICE_MAJOR_VERSION: i32 = 1;
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_RELEASE_SERVER`.
    pub const VOICE_RELEASE_SERVER: &'static str = "bhr.vivox.com";
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.#ctor(LibreMetaverse.GridClient)`.
    pub fn new(client: libremetaverse::GridClient) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.#ctor(LibreMetaverse.GridClient)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CaptureDevices`.
    pub fn capture_devices(&self) -> Result<Vec<String>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.CaptureDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon`.
    pub fn connect_to_daemon_with_method(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon(System.String,System.Int32)`.
    pub fn connect_to_daemon_with_string_int32(
        &self,
        address: String,
        port: i32,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon(System.String,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CreateConnector(System.Int32@)`.
    pub fn create_connector(&self, status: &mut i32) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.CreateConnector(System.Int32@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentCaptureDevices`.
    pub fn current_capture_devices(&self) -> Result<Vec<String>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentCaptureDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentRenderDevices`.
    pub fn current_render_devices(&self) -> Result<Vec<String>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentRenderDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.Dispose`.
    pub fn dispose(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.VoiceManager.Dispose")
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.GetChannelMap`.
    pub fn get_channel_map(
        &self,
    ) -> Result<std::collections::HashMap<String, String>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.GetChannelMap",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.IsDaemonRunning`.
    pub fn is_daemon_running(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.IsDaemonRunning",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.Login(System.String,System.String,System.String,System.Int32@)`.
    pub fn login(
        &self,
        account_name: String,
        password: String,
        connector_handle: String,
        status: &mut i32,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.Login(System.String,System.String,System.String,System.Int32@)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RenderDevices`.
    pub fn render_devices(&self) -> Result<Vec<String>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RenderDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCaptureDevices`.
    pub fn request_capture_devices(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCaptureDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector`.
    pub fn request_create_connector_with_method(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector(System.String)`.
    pub fn request_create_connector_with_string(
        &self,
        voice_server: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestLogin(System.String,System.String,System.String)`.
    pub fn request_login(
        &self,
        account_name: String,
        password: String,
        conn_handle: String,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestLogin(System.String,System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestParcelVoiceInfo`.
    pub fn request_parcel_voice_info(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestParcelVoiceInfo",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestProvisionAccount`.
    pub fn request_provision_account(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestProvisionAccount",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStart(System.String,System.Boolean)`.
    pub fn request_render_audio_start(
        &self,
        file_name: String,
        loop_: bool,
    ) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStart(System.String,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStop`.
    pub fn request_render_audio_stop(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStop",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderDevices`.
    pub fn request_render_devices(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderDevices",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetCaptureVolume(System.Int32)`.
    pub fn request_set_capture_volume(&self, volume: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetCaptureVolume(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetRenderDevice(System.String)`.
    pub fn request_set_render_device(&self, device_name: String) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetRenderDevice(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetSpeakerVolume(System.Int32)`.
    pub fn request_set_speaker_volume(&self, volume: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetSpeakerVolume(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStartTuningMode(System.Int32)`.
    pub fn request_start_tuning_mode(&self, duration: i32) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStartTuningMode(System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStopTuningMode`.
    pub fn request_stop_tuning_mode(&self) -> Result<i32, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStopTuningMode",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SipuriFromVoiceAccount(System.String)`.
    pub fn sipuri_from_voice_account(&self, account: String) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SipuriFromVoiceAccount(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.StartDaemon`.
    pub fn start_daemon(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.StartDaemon",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.StopDaemon`.
    pub fn stop_daemon(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.StopDaemon",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.UuidFromVoiceAccount(System.String)`.
    pub fn uuid_from_voice_account(
        &self,
        account_name: String,
    ) -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.UuidFromVoiceAccount(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.VoiceAccountFromUuid(LibreMetaverse.UUID)`.
    pub fn voice_account_from_uuid(
        &self,
        id: libremetaverse_types::UUID,
    ) -> Result<String, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.VoiceAccountFromUuid(LibreMetaverse.UUID)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback`.
pub struct VoiceManagerAuxAudioPropertiesCallback;
impl VoiceManagerAuxAudioPropertiesCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.BeginInvoke(System.Int32,System.Single,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        energy: f32,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.BeginInvoke(System.Int32,System.Single,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.Invoke(System.Int32,System.Single)`.
    pub fn invoke(&self, cookie: i32, energy: f32) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.Invoke(System.Int32,System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback`.
pub struct VoiceManagerBasicActionCallback;
impl VoiceManagerBasicActionCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.Invoke(System.Int32,System.Int32,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.Invoke(System.Int32,System.Int32,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback`.
pub struct VoiceManagerConnectorCreatedCallback;
impl VoiceManagerConnectorCreatedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        connector_handle: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        connector_handle: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback`.
pub struct VoiceManagerDevicesCallback;
impl VoiceManagerDevicesCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        current_device: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        current_device: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.Invoke(System.Int32,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback`.
pub struct VoiceManagerLoginCallback;
impl VoiceManagerLoginCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        account_handle: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        account_handle: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.Invoke(System.Int32,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback`.
pub struct VoiceManagerLoginStateChangeCallback;
impl VoiceManagerLoginStateChangeCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        account_handle: String,
        status_code: i32,
        status_string: String,
        state: i32,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Int32)`.
    pub fn invoke(
        &self,
        cookie: i32,
        account_handle: String,
        status_code: i32,
        status_string: String,
        state: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Int32)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback`.
pub struct VoiceManagerNewSessionCallback;
impl VoiceManagerNewSessionCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.BeginInvoke(System.Int32,System.String,System.String,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        account_handle: String,
        event_session_handle: String,
        state: i32,
        name_string: String,
        uri_string: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.BeginInvoke(System.Int32,System.String,System.String,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.Invoke(System.Int32,System.String,System.String,System.Int32,System.String,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        account_handle: String,
        event_session_handle: String,
        state: i32,
        name_string: String,
        uri_string: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.Invoke(System.Int32,System.String,System.String,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback`.
pub struct VoiceManagerParcelVoiceInfoCallback;
impl VoiceManagerParcelVoiceInfoCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.BeginInvoke(System.String,System.Int32,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        region_name: String,
        local_id: i32,
        channel_uri: Option<String>,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.BeginInvoke(System.String,System.Int32,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.Invoke(System.String,System.Int32,System.String)`.
    pub fn invoke(
        &self,
        region_name: String,
        local_id: i32,
        channel_uri: Option<String>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.Invoke(System.String,System.Int32,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback`.
pub struct VoiceManagerParticipantPropertiesCallback;
impl VoiceManagerParticipantPropertiesCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        is_locally_muted: bool,
        is_moderator_muted: bool,
        is_speaking: bool,
        volume: i32,
        energy: f32,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single)`.
    pub fn invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        is_locally_muted: bool,
        is_moderator_muted: bool,
        is_speaking: bool,
        volume: i32,
        energy: f32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int32,System.Single)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback`.
pub struct VoiceManagerParticipantStateChangeCallback;
impl VoiceManagerParticipantStateChangeCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        state: i32,
        name_string: String,
        display_name_string: String,
        participant_type: i32,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32)`.
    pub fn invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        state: i32,
        name_string: String,
        display_name_string: String,
        participant_type: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.String,System.String,System.Int32)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback`.
pub struct VoiceManagerProvisionAccountCallback;
impl VoiceManagerProvisionAccountCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.BeginInvoke(System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        username: String,
        password: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.BeginInvoke(System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.Invoke(System.String,System.String)`.
    pub fn invoke(&self, username: String, password: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.Invoke(System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback`.
pub struct VoiceManagerSessionCreatedCallback;
impl VoiceManagerSessionCreatedCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        session_handle: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        status_code: i32,
        status_string: String,
        session_handle: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback`.
pub struct VoiceManagerSessionStateChangeCallback;
impl VoiceManagerSessionStateChangeCallback {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
    pub fn new(
        object: libremetaverse_types::compat::Object,
        method: isize,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.#ctor(System.Object,System.IntPtr)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Boolean,System.String,System.AsyncCallback,System.Object)`.
    pub fn begin_invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        event_session_handle: String,
        state: i32,
        is_channel: bool,
        name_string: String,
        callback: Box<dyn Fn(&dyn std::any::Any) + Send + Sync>,
        object: libremetaverse_types::compat::Object,
    ) -> Result<Box<dyn std::any::Any + Send + Sync>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Boolean,System.String,System.AsyncCallback,System.Object)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.EndInvoke(System.IAsyncResult)`.
    pub fn end_invoke(
        &self,
        result: Box<dyn std::any::Any + Send + Sync>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.EndInvoke(System.IAsyncResult)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Boolean,System.String)`.
    pub fn invoke(
        &self,
        cookie: i32,
        uri_string: String,
        status_code: i32,
        status_string: String,
        event_session_handle: String,
        state: i32,
        is_channel: bool,
        name_string: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.String,System.Int32,System.Boolean,System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceParticipant`.
pub struct VoiceParticipant;
impl VoiceParticipant {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceParticipant.#ctor(System.String,LibreMetaverse.Voice.Vivox.VoiceSession)`.
    pub fn new(
        puri: String,
        s: libremetaverse_voice_vivox::VoiceSession,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceParticipant.#ctor(System.String,LibreMetaverse.Voice.Vivox.VoiceSession)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceParticipant.IDFromName(System.String)`.
    pub fn id_from_name(in_name: String) -> Result<libremetaverse_types::UUID, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceParticipant.IDFromName(System.String)",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy`.
    pub fn energy(&self) -> f32 {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy`.
    pub fn set_energy(&mut self, value: f32) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.ID`.
    pub fn id(&self) -> libremetaverse_types::UUID {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Voice.Vivox.VoiceParticipant.ID")
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted`.
    pub fn is_muted(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted`.
    pub fn set_is_muted(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking`.
    pub fn is_speaking(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking`.
    pub fn set_is_speaking(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Name`.
    pub fn name(&self) -> String {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Name"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Name`.
    pub fn set_name(&mut self, value: String) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Name"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume`.
    pub fn volume(&self) -> i32 {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume`.
    pub fn set_volume(&mut self, value: i32) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoicePosition`.
pub struct VoicePosition {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.AtOrientation`.
    pub at_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.LeftOrientation`.
    pub left_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.Position`.
    pub position: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.UpOrientation`.
    pub up_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.Velocity`.
    pub velocity: libremetaverse_types::Vector3d,
}
impl VoicePosition {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoicePosition.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Voice.Vivox.VoicePosition.#ctor")
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceServiceType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceServiceType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeA`.
    TypeA = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeB`.
    TypeB = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeC`.
    TypeC = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.Unknown`.
    Unknown = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceSession`.
pub struct VoiceSession {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceSession.RegionName`.
    pub region_name: String,
}
impl VoiceSession {
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`.
    pub fn subscribe_on_participant_added(
        &self,
        handler: Option<libremetaverse_types::compat::EventHandler<()>>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`.
    pub fn subscribe_on_participant_removed(
        &self,
        handler: Option<libremetaverse_types::compat::EventHandler<()>>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved"
        )
    }
    /// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`.
    pub fn subscribe_on_participant_update(
        &self,
        handler: Option<libremetaverse_types::compat::EventHandler<()>>,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate"
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceSession.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway,System.String)`.
    pub fn new(
        conn: libremetaverse_voice_vivox::VoiceGateway,
        handle: String,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceSession.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceSession.Set3DPosition(LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)`.
    pub fn set3_d_position(
        &self,
        speaker_position: libremetaverse_voice_vivox::VoicePosition,
        listener_position: libremetaverse_voice_vivox::VoicePosition,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Voice.Vivox.VoiceSession.Set3DPosition(LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)",
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.Connector`.
    pub fn connector(&self) -> libremetaverse_voice_vivox::VoiceGateway {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceSession.Connector"
        )
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.Handle`.
    pub fn handle(&self) -> String {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.Voice.Vivox.VoiceSession.Handle")
    }
    /// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.IsSpatial`.
    pub fn is_spatial(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.Voice.Vivox.VoiceSession.IsSpatial"
        )
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceStatus`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceStatus {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.BeginErrorStatus`.
    BeginErrorStatus = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelFull`.
    ErrorChannelFull = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelLocked`.
    ErrorChannelLocked = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorNotAvailable`.
    ErrorNotAvailable = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorUnknown`.
    ErrorUnknown = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoined`.
    StatusJoined = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoining`.
    StatusJoining = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLeftChannel`.
    StatusLeftChannel = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoggedIn`.
    StatusLoggedIn = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoginRetry`.
    StatusLoginRetry = 0,
}
