// @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`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.TCPPipe` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `E:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnected`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLine`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.#ctor`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.TCPPipe()`.
/// Mapping contract: ownership `none`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.Connect(System.String,System.Int32)`.
///
/// C# signature: `System.Net.Sockets.SocketException LibreMetaverse.Voice.Vivox.TCPPipe.Connect(System.String address, System.Int32 port)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.Disconnect`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.Disconnect()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.SendData(System.Byte[])`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.SendData(System.Byte[] data)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.SendLine(System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.SendLine(System.String message)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.TCPPipe.Connected`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.TCPPipe.Connected`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::tcp_pipe::TCPPipe;

/// C# type: `T:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.BeginInvoke(System.Net.Sockets.SocketException,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.BeginInvoke(System.Net.Sockets.SocketException se, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.Invoke(System.Net.Sockets.SocketException)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.OnDisconnectedCallback.Invoke(System.Net.Sockets.SocketException se)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::TCPPipeOnDisconnectedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.BeginInvoke(System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.BeginInvoke(System.String line, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.Invoke(System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.TCPPipe.OnReceiveLineCallback.Invoke(System.String line)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::TCPPipeOnReceiveLineCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAccountLoginStateChangeEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxAudioPropertiesEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetCaptureDevicesResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnAuxGetRenderDevicesResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnConnectorCreateResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonConnected`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntConnect`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonCouldntRun`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonDisconnected`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonExited`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnDaemonRunning`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionAddedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`.
///
/// C# signature: `System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreate`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionCreateResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionGroupAddedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionMediaEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionNewEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantAddedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantPropertiesEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantRemovedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantStateChangeEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionParticipantUpdatedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`.
///
/// C# signature: `System.EventHandler LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemove`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionRemovedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionStateChangeEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnSessionUpdatedEvent`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceConnectionChange`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceMicTest`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse`.
///
/// C# signature: `System.EventHandler<LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs> LibreMetaverse.Voice.Vivox.VoiceGateway.OnVoiceResponse`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.#ctor(LibreMetaverse.GridClient)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway(LibreMetaverse.GridClient c)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogin(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Boolean)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogin(System.String ConnectorHandle, System.String AccountName, System.String AccountPassword, System.String AudioSessionAnswerMode, System.String AccountURI, System.Int32 ParticipantPropertyFrequency, System.Boolean EnableBuddiesAndPresence)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogout(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLogout(System.String AccountHandle)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStart(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStart(System.Int32 duration)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStop`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxCaptureAudioStop()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetCaptureDevices`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetCaptureDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetRenderDevices`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxGetRenderDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetCaptureDevice(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetCaptureDevice(System.String captureDeviceSpecifier)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetMicLevel(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetMicLevel(System.Int32 level)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetRenderDevice(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetRenderDevice(System.String renderDeviceSpecifier)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetSpeakerLevel(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AuxSetSpeakerLevel(System.Int32 level)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectToDaemon(System.String,System.Int32)`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectToDaemon(System.String address, System.Int32 port)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorCreate(System.String,System.String,System.UInt16,System.UInt16,LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorCreate(System.String clientName, System.String accountManagementServer, System.UInt16 minimumPort, System.UInt16 maximumPort, LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings logging)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorInitiateShutdown(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorInitiateShutdown(System.String connectorHandle)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalMic(System.String,System.Boolean)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalMic(System.String connectorHandle, System.Boolean mute)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalSpeaker(System.String,System.Boolean)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorMuteLocalSpeaker(System.String connectorHandle, System.Boolean mute)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalMicVolume(System.String,System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalMicVolume(System.String connectorHandle, System.Int32 value)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalSpeakerVolume(System.String,System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectorSetLocalSpeakerVolume(System.String connectorHandle, System.Int32 value)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Dispose`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.Dispose()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.MakeXML(System.String,System.String)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.MakeXML(System.String name, System.String text)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String action)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String,System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.Request(System.String action, System.String requestXML)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SIPFromUUID(LibreMetaverse.UUID)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SIPFromUUID(LibreMetaverse.UUID id)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionConnect(System.String,System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionConnect(System.String SessionHandle, System.String AudioMedia)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionCreate(System.String,System.String,System.String,System.String,System.Boolean,System.Boolean,System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionCreate(System.String AccountHandle, System.String session_uri, System.String Name, System.String Password, System.Boolean JoinAudio, System.Boolean JoinText, System.String PasswordHashAlgorithm)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStart(System.String,System.Boolean)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStart(System.String soundFilePath, System.Boolean Loop)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStop(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRenderAudioStop(System.String SoundFilePath)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSet3DPosition(System.String,LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSet3DPosition(System.String SessionHandle, LibreMetaverse.Voice.Vivox.VoicePosition SpeakerPosition, LibreMetaverse.Voice.Vivox.VoicePosition ListenerPosition)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSetParticipantVolumeForMe(System.String,System.String,System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionSetParticipantVolumeForMe(System.String SessionHandle, System.String ParticipantURI, System.Int32 Volume)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionTerminate(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionTerminate(System.String SessionHandle)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Start`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.Start()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.StartDaemon(System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.StartDaemon(System.String path, System.String args)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.Stop`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.Stop()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.StopDaemon`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.StopDaemon()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.CurrentCaptureDevice`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsConnected`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonIsRunning`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicLevel`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.MicLevel`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.MicMute`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.MicMute`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.PlaybackDevice`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.RequestId`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrLevel`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrLevel`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrMute`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SpkrMute`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.TestMode`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::gateway::VoiceGateway;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayAccountLoginStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.AccountHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.AccountHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.State`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.State`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub state: libremetaverse_voice_vivox::VoiceGatewayLoginState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusString`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs.StatusString`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.AccountLoginStateChangeEventArgs(System.String AccountHandle, System.Int32 StatusCode, System.String StatusString, LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState State)`.
    /// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        account_handle: String,
        status_code: i32,
        status_string: String,
        state: libremetaverse_voice_vivox::VoiceGatewayLoginState,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_handle: account_handle,
            state: state,
            status_code: status_code,
            status_string: status_string,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayAudioPropertiesEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.IsMicActive`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.IsMicActive`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_mic_active: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicEnergy`.
    ///
    /// C# signature: `System.Single LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicEnergy`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub mic_energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicVolume`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.MicVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub mic_volume: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.SpeakerVolume`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.SpeakerVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub speaker_volume: i32,
}
impl VoiceGatewayAudioPropertiesEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs.#ctor(System.Boolean,System.Single,System.Int32,System.Int32)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.AudioPropertiesEventArgs(System.Boolean MicIsActive, System.Single MicEnergy, System.Int32 MicVolume, System.Int32 SpeakerVolume)`.
    /// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        mic_is_active: bool,
        mic_energy: f32,
        mic_volume: i32,
        speaker_volume: i32,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            is_mic_active: mic_is_active,
            mic_energy: mic_energy,
            mic_volume: mic_volume,
            speaker_volume: speaker_volume,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayCaptureDevice {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.Device`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.Device`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub device: Option<String>,
}
impl VoiceGatewayCaptureDevice {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            device: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayConnectionState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.AccountLogin`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.AccountLogin`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    AccountLogin = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.ConnectorConnected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.ConnectorConnected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ConnectorConnected = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonConnected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonConnected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    DaemonConnected = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonStarted`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.DaemonStarted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    DaemonStarted = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.None`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.None`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    None = 0,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.Provisioned`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.Provisioned`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Provisioned = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.RegionCapAvailable`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.RegionCapAvailable`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    RegionCapAvailable = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.SessionRunning`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState.SessionRunning`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SessionRunning = 7,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonConnectedCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonConnectedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntConnectCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonCouldntConnectCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonCouldntRunCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonCouldntRunCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonDisconnectedCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonDisconnectedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonExitedCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonExitedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.BeginInvoke(System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.BeginInvoke(System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.Invoke`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.DaemonRunningCallback.Invoke()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayDaemonRunningCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayLoginState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.Error`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.Error`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Error = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedIn`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedIn`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    LoggedIn = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedOut`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState LibreMetaverse.Voice.Vivox.VoiceGateway.LoginState.LoggedOut`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    LoggedOut = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayNewSessionEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AccountHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AccountHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AudioMedia`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.AudioMedia`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub audio_media: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Name`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Name`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.NewSessionEventArgs(System.String AccountHandle, System.String SessionHandle, System.String URI, System.Boolean IsChannel, System.String Name, System.String AudioMedia)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        account_handle: String,
        session_handle: String,
        uri: String,
        is_channel: bool,
        name: String,
        audio_media: String,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_handle: account_handle,
            audio_media: audio_media,
            name: name,
            session_handle: session_handle,
            uri: uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayParticipantAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.AccountName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.AccountName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Appllication`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Appllication`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub appllication: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.DisplayName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.DisplayName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub display_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Type`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Type`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub type_: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantAddedEventArgs(System.String SessionGroupHandle, System.String SessionHandle, System.String ParticipantUri, System.String AccountName, System.String DisplayName, LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType type, System.String Application)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    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> {
        /* complete generated data model */
        Ok(Self {
            account_name: account_name,
            appllication: application,
            display_name: display_name,
            session_group_handle: session_group_handle,
            session_handle: session_handle,
            type_: type_,
            uri: participant_uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayParticipantPropertiesEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Energy`.
    ///
    /// C# signature: `System.Single LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Energy`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsLocallyMuted`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsLocallyMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_locally_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsModeratorMuted`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsModeratorMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_moderator_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsSpeaking`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.IsSpeaking`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_speaking: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Volume`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs.Volume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantPropertiesEventArgs(System.String SessionHandle, System.String ParticipantURI, System.Boolean IsLocallyMuted, System.Boolean IsModeratorMuted, System.Boolean IsSpeaking, System.Int32 Volume, System.Single Energy)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    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> {
        /* complete generated data model */
        Ok(Self {
            energy: energy,
            is_locally_muted: is_locally_muted,
            is_moderator_muted: is_moderator_muted,
            is_speaking: is_speaking,
            session_handle: session_handle,
            uri: participant_uri,
            volume: volume,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayParticipantRemovedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.AccountName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.AccountName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Reason`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Reason`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub reason: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
}
impl VoiceGatewayParticipantRemovedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs.#ctor(System.String,System.String,System.String,System.String,System.String)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantRemovedEventArgs(System.String SessionGroupHandle, System.String SessionHandle, System.String ParticipantUri, System.String AccountName, System.String Reason)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        participant_uri: String,
        account_name: String,
        reason: String,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_name: account_name,
            reason: reason,
            session_group_handle: session_group_handle,
            session_handle: session_handle,
            uri: participant_uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayParticipantState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Answering`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Answering`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Answering = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Connected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Connected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Connected = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Disconnected = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnecting`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Disconnecting`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Disconnecting = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Idle`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Idle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Idle = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.InProgress`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.InProgress`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    InProgress = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Incoming`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Incoming`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Incoming = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Pending`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Pending`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Pending = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Ringing`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState.Ringing`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Ringing = 6,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayParticipantStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.AccountName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.AccountName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.DisplayName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.DisplayName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub display_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.State`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.State`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub state: libremetaverse_voice_vivox::VoiceGatewayParticipantState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusString`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.StatusString`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_string: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Type`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Type`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub type_: libremetaverse_voice_vivox::VoiceGatewayParticipantType,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantStateChangeEventArgs(System.String SessionHandle, System.Int32 StatusCode, System.String StatusString, LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantState State, System.String ParticipantURI, System.String AccountName, System.String DisplayName, LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType ParticipantType)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    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> {
        /* complete generated data model */
        Ok(Self {
            account_name: account_name,
            display_name: display_name,
            session_handle: session_handle,
            state: state,
            status_code: status_code,
            status_string: status_string,
            type_: participant_type,
            uri: participant_uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayParticipantType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Focus`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Focus`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Focus = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Moderator`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.Moderator`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Moderator = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.User`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantType.User`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    User = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayParticipantUpdatedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Energy`.
    ///
    /// C# signature: `System.Single LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Energy`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub energy: f32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsMuted`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsSpeaking`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.IsSpeaking`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_speaking: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Volume`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs.Volume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ParticipantUpdatedEventArgs(System.String sessionHandle, System.String URI, System.Boolean isMuted, System.Boolean isSpeaking, System.Int32 volume, System.Single energy)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        session_handle: String,
        uri: String,
        is_muted: bool,
        is_speaking: bool,
        volume: i32,
        energy: f32,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            energy: energy,
            is_muted: is_muted,
            is_speaking: is_speaking,
            session_handle: session_handle,
            uri: uri,
            volume: volume,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayRenderDevice {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.Device`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.Device`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub device: Option<String>,
}
impl VoiceGatewayRenderDevice {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            device: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewayResponseType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogin`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogin`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    AccountLogin = 15,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogout`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.AccountLogout`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    AccountLogout = 16,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStart`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStart`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    CaptureAudioStart = 11,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStop`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.CaptureAudioStop`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    CaptureAudioStop = 12,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorCreate`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorCreate`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ConnectorCreate = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorInitiateShutdown`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.ConnectorInitiateShutdown`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ConnectorInitiateShutdown = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetCaptureDevices`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetCaptureDevices`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    GetCaptureDevices = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetRenderDevices`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.GetRenderDevices`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    GetRenderDevices = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalMic`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalMic`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    MuteLocalMic = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalSpeaker`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.MuteLocalSpeaker`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    MuteLocalSpeaker = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.None`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.None`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    None = 0,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStart`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStart`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    RenderAudioStart = 17,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStop`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.RenderAudioStop`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    RenderAudioStop = 18,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionConnect`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionConnect`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SessionConnect = 20,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionCreate`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionCreate`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SessionCreate = 19,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionTerminate`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SessionTerminate`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SessionTerminate = 21,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.Set3DPosition`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.Set3DPosition`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Set3DPosition = 24,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetCaptureDevice`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetCaptureDevice`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetCaptureDevice = 10,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalMicVolume`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalMicVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetLocalMicVolume = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalSpeakerVolume`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetLocalSpeakerVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetLocalSpeakerVolume = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetMicLevel`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetMicLevel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetMicLevel = 13,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantMuteForMe`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantMuteForMe`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetParticipantMuteForMe = 23,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantVolumeForMe`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetParticipantVolumeForMe`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetParticipantVolumeForMe = 22,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetRenderDevice`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetRenderDevice`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetRenderDevice = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetSpeakerLevel`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType.SetSpeakerLevel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    SetSpeakerLevel = 14,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsChannel`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsChannel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_channel: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsIncoming`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.IsIncoming`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_incoming: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
}
impl VoiceGatewaySessionAddedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs.#ctor(System.String,System.String,System.String,System.Boolean,System.Boolean)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionAddedEventArgs(System.String sessionGroupHandle, System.String sessionHandle, System.String uri, System.Boolean isChannel, System.Boolean isIncoming)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        uri: String,
        is_channel: bool,
        is_incoming: bool,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            is_channel: is_channel,
            is_incoming: is_incoming,
            session_group_handle: session_group_handle,
            session_handle: session_handle,
            uri: uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionGroupAddedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.AccountHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.AccountHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.Type`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.Type`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub type_: String,
}
impl VoiceGatewaySessionGroupAddedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs.#ctor(System.String,System.String,System.String)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionGroupAddedEventArgs(System.String acctHandle, System.String sessionGroupHandle, System.String type)`.
    /// Mapping contract: ownership `owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        acct_handle: String,
        session_group_handle: String,
        type_: String,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_handle: acct_handle,
            session_group_handle: session_group_handle,
            type_: type_,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionMediaEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasAudio`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasAudio`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_audio: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasText`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasText`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_text: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasVideo`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.HasVideo`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_video: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.Terminated`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.Terminated`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub terminated: bool,
}
impl VoiceGatewaySessionMediaEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs.#ctor(System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionMediaEventArgs(System.String SessionHandle, System.Boolean HasText, System.Boolean HasAudio, System.Boolean HasVideo, System.Boolean Terminated)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        session_handle: String,
        has_text: bool,
        has_audio: bool,
        has_video: bool,
        terminated: bool,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            has_audio: has_audio,
            has_text: has_text,
            has_video: has_video,
            session_handle: session_handle,
            terminated: terminated,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionRemovedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
}
impl VoiceGatewaySessionRemovedEventArgs {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs.#ctor(System.String,System.String,System.String)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionRemovedEventArgs(System.String SessionGroupHandle, System.String SessionHandle, System.String Uri)`.
    /// Mapping contract: ownership `owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        session_group_handle: String,
        session_handle: String,
        uri: String,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            session_group_handle: session_group_handle,
            session_handle: session_handle,
            uri: uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceGatewaySessionState {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Answering`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Answering`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Answering = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Connected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Connected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Connected = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Disconnected`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Disconnected`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Disconnected = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Hold`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Hold`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Hold = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Idle`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Idle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Idle = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.InProgress`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.InProgress`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    InProgress = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Refer`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Refer`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Refer = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Ringing`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState.Ringing`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Ringing = 8,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionStateChangeEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.ChannelName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.ChannelName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub channel_name: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.IsChannel`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.IsChannel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_channel: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.State`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.State`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub state: libremetaverse_voice_vivox::VoiceGatewaySessionState,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusString`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.StatusString`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_string: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionStateChangeEventArgs(System.String SessionHandle, System.Int32 StatusCode, System.String StatusString, LibreMetaverse.Voice.Vivox.VoiceGateway.SessionState State, System.String URI, System.Boolean IsChannel, System.String ChannelName)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    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> {
        /* complete generated data model */
        Ok(Self {
            channel_name: channel_name,
            is_channel: is_channel,
            session_handle: session_handle,
            state: state,
            status_code: status_code,
            status_string: status_string,
            uri: uri,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewaySessionUpdatedEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsFocused`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsFocused`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_focused: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsMuted`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.IsMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_muted: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.TransmitEnabled`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.TransmitEnabled`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub transmit_enabled: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Volume`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs.Volume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.SessionUpdatedEventArgs(System.String SessionGroupHandle, System.String SessionHandle, System.String URI, System.Boolean IsMuted, System.Int32 Volume, System.Boolean TransmitEnabled, System.Boolean IsFocused)`.
    /// Mapping contract: ownership `owned,owned,owned,owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    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> {
        /* complete generated data model */
        Ok(Self {
            is_focused: is_focused,
            is_muted: is_muted,
            session_group_handle: session_group_handle,
            session_handle: session_handle,
            transmit_enabled: transmit_enabled,
            uri: uri,
            volume: volume,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs(System.Int32 rcode, System.Int32 scode, System.String text, System.String ahandle)`.
/// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.AccountHandle`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceAccountEventArgs.AccountHandle`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::event_args::VoiceGatewayVoiceAccountEventArgs;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.BeginInvoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.BeginInvoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState state, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.Invoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectionChangeCallback.Invoke(LibreMetaverse.Voice.Vivox.VoiceGateway.ConnectionState state)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayVoiceConnectionChangeCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String,System.String)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs(System.Int32 rcode, System.Int32 scode, System.String text, System.String version, System.String handle)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Handle`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Handle`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Version`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceConnectorEventArgs.Version`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::event_args::VoiceGatewayVoiceConnectorEventArgs;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// 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})`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType type, System.Int32 rcode, System.Int32 scode, System.String text, System.String current, System.Collections.Generic.List<System.String> avail)`.
/// Mapping contract: ownership `owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.CurrentDevice`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.CurrentDevice`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.Devices`.
///
/// C# signature: `System.Collections.Generic.List<System.String> LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceDevicesEventArgs.Devices`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::event_args::VoiceGatewayVoiceDevicesEventArgs;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceEvent {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AccountName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Application`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Application`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub application: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AudioMedia`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.AudioMedia`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub audio_media: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ChannelName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ChannelName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub channel_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.DisplayName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.DisplayName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub display_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Energy`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Energy`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub energy: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasAudio`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasAudio`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_audio: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasText`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasText`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_text: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasVideo`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.HasVideo`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub has_video: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Incoming`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Incoming`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub incoming: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsChannel`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsChannel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_channel: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsFocused`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsFocused`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_focused: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsIncoming`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsIncoming`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_incoming: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsLocallyMuted`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsLocallyMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_locally_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsModeratorMuted`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsModeratorMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_moderator_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsMuted`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsMuted`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_muted: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsSpeaking`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.IsSpeaking`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub is_speaking: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicEnergy`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicEnergy`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub mic_energy: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicIsActive`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicIsActive`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub mic_is_active: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicVolume`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.MicVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub mic_volume: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Name`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Name`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantType`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantType`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub participant_type: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantUri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.ParticipantUri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub participant_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Reason`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Reason`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub reason: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionGroupHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionGroupHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_group_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SpeakerVolume`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.SpeakerVolume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub speaker_volume: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.State`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.State`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub state: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusCode`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusString`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.StatusString`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_string: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Terminated`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Terminated`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub terminated: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.TransmitEnabled`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.TransmitEnabled`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub transmit_enabled: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Type`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Type`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub type_: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.URI`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.URI`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `descriptive_overload_name`; kind `direct`.
    pub uri_with_field: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Uri`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Uri`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `descriptive_overload_name_with_stable_id`; kind `direct`.
    pub uri_with_field_810c2b7a: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Volume`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.Volume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub volume: Option<String>,
}
impl VoiceGatewayVoiceEvent {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceEvent()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_handle: Default::default(),
            account_name: Default::default(),
            application: Default::default(),
            audio_media: Default::default(),
            channel_name: Default::default(),
            display_name: Default::default(),
            energy: Default::default(),
            has_audio: Default::default(),
            has_text: Default::default(),
            has_video: Default::default(),
            incoming: Default::default(),
            is_channel: Default::default(),
            is_focused: Default::default(),
            is_incoming: Default::default(),
            is_locally_muted: Default::default(),
            is_moderator_muted: Default::default(),
            is_muted: Default::default(),
            is_speaking: Default::default(),
            mic_energy: Default::default(),
            mic_is_active: Default::default(),
            mic_volume: Default::default(),
            name: Default::default(),
            participant_type: Default::default(),
            participant_uri: Default::default(),
            reason: Default::default(),
            session_group_handle: Default::default(),
            session_handle: Default::default(),
            speaker_volume: Default::default(),
            state: Default::default(),
            status_code: Default::default(),
            status_string: Default::default(),
            terminated: Default::default(),
            transmit_enabled: Default::default(),
            type_: Default::default(),
            uri_with_field: Default::default(),
            uri_with_field_810c2b7a: Default::default(),
            volume: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceInputXml {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.Request`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.Request`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub request: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceRequest>,
}
impl VoiceGatewayVoiceInputXml {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            request: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceLoggingSettings {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Enabled`.
    ///
    /// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Enabled`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub enabled: bool,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNamePrefix`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNamePrefix`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub file_name_prefix: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNameSuffix`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.FileNameSuffix`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub file_name_suffix: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Folder`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.Folder`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub folder: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.LogLevel`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.LogLevel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub log_level: i32,
}
impl VoiceGatewayVoiceLoggingSettings {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            enabled: Default::default(),
            file_name_prefix: "Connector".to_owned(),
            file_name_suffix: ".log".to_owned(),
            folder: Default::default(),
            log_level: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.BeginInvoke(System.Single,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.BeginInvoke(System.Single level, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.Invoke(System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceMicTestCallback.Invoke(System.Single level)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceGatewayVoiceMicTestCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceRequest {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountManagementServer`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountManagementServer`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_management_server: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountPassword`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountPassword`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_password: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountURI`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AccountURI`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Action`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Action`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub action: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AudioSessionAnswerMode`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.AudioSessionAnswerMode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub audio_session_answer_mode: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.CaptureDeviceSpecifier`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.CaptureDeviceSpecifier`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub capture_device_specifier: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ClientName`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ClientName`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub client_name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ConnectorHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ConnectorHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub connector_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Duration`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Duration`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub duration: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.EnableBuddiesAndPresence`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.EnableBuddiesAndPresence`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub enable_buddies_and_presence: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinAudio`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinAudio`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub join_audio: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinText`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.JoinText`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub join_text: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Level`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Level`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub level: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ListenerPosition`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoicePosition LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ListenerPosition`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub listener_position: Option<libremetaverse_voice_vivox::VoicePosition>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Logging`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceLoggingSettings LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Logging`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub logging: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceLoggingSettings>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Loop`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Loop`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub loop_: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MaximumPort`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MaximumPort`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub maximum_port: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MinimumPort`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.MinimumPort`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub minimum_port: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Name`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Name`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub name: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.OrientationType`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.OrientationType`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub orientation_type: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantPropertyFrequency`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantPropertyFrequency`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub participant_property_frequency: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantURI`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.ParticipantURI`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub participant_uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Password`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Password`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub password: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.PasswordHashAlgorithm`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.PasswordHashAlgorithm`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub password_hash_algorithm: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RenderDeviceSpecifier`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RenderDeviceSpecifier`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub render_device_specifier: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RequestId`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.RequestId`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub request_id: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SoundFilePath`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SoundFilePath`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub sound_file_path: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SpeakerPosition`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoicePosition LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.SpeakerPosition`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub speaker_position: Option<libremetaverse_voice_vivox::VoicePosition>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.URI`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.URI`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub uri: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Value`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Value`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub value: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Volume`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.Volume`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub volume: Option<String>,
}
impl VoiceGatewayVoiceRequest {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceRequest()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_management_server: Default::default(),
            account_name: Default::default(),
            account_password: Default::default(),
            account_uri: Default::default(),
            action: Default::default(),
            audio_session_answer_mode: Default::default(),
            capture_device_specifier: Default::default(),
            client_name: Default::default(),
            connector_handle: Default::default(),
            duration: Default::default(),
            enable_buddies_and_presence: Default::default(),
            join_audio: Default::default(),
            join_text: Default::default(),
            level: Default::default(),
            listener_position: Default::default(),
            logging: Default::default(),
            loop_: Default::default(),
            maximum_port: Default::default(),
            minimum_port: Default::default(),
            name: Default::default(),
            orientation_type: Default::default(),
            participant_property_frequency: Default::default(),
            participant_uri: Default::default(),
            password: Default::default(),
            password_hash_algorithm: Default::default(),
            render_device_specifier: Default::default(),
            request_id: Default::default(),
            session_handle: Default::default(),
            sound_file_path: Default::default(),
            speaker_position: Default::default(),
            uri: Default::default(),
            value: Default::default(),
            volume: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceResponse {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Action`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Action`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub action: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.InputXml`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceInputXml LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.InputXml`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub input_xml: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceInputXml>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.RequestId`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.RequestId`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub request_id: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Results`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.Results`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub results: Option<libremetaverse_voice_vivox::VoiceGatewayVoiceResponseResults>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.ReturnCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.ReturnCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub return_code: i32,
}
impl VoiceGatewayVoiceResponse {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponse()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            action: Default::default(),
            input_xml: Default::default(),
            request_id: Default::default(),
            results: Default::default(),
            return_code: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Debug)]
pub struct VoiceGatewayVoiceResponseEventArgs {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Message`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Message`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub message: String,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.ReturnCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.ReturnCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub return_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.StatusCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Type`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs.Type`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    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)`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseEventArgs(LibreMetaverse.Voice.Vivox.VoiceGateway.ResponseType type, System.Int32 rcode, System.Int32 scode, System.String text)`.
    /// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new(
        type_: libremetaverse_voice_vivox::VoiceGatewayResponseType,
        rcode: i32,
        scode: i32,
        text: String,
    ) -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            message: text,
            return_code: rcode,
            status_code: scode,
            type_: type_,
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoiceGatewayVoiceResponseResults {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.AccountHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.AccountHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub account_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CaptureDevices`.
    ///
    /// C# signature: `System.Collections.Generic.List<LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice> LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CaptureDevices`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub capture_devices: Option<Vec<libremetaverse_voice_vivox::VoiceGatewayCaptureDevice>>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.ConnectorHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.ConnectorHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub connector_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentCaptureDevice`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.CaptureDevice LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentCaptureDevice`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub current_capture_device: Option<libremetaverse_voice_vivox::VoiceGatewayCaptureDevice>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentRenderDevice`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.CurrentRenderDevice`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub current_render_device: Option<libremetaverse_voice_vivox::VoiceGatewayRenderDevice>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.RenderDevices`.
    ///
    /// C# signature: `System.Collections.Generic.List<LibreMetaverse.Voice.Vivox.VoiceGateway.RenderDevice> LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.RenderDevices`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub render_devices: Option<Vec<libremetaverse_voice_vivox::VoiceGatewayRenderDevice>>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.SessionHandle`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.SessionHandle`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub session_handle: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusCode`.
    ///
    /// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusCode`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_code: i32,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusString`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.StatusString`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub status_string: Option<String>,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.VersionID`.
    ///
    /// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.VersionID`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub version_id: Option<String>,
}
impl VoiceGatewayVoiceResponseResults {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceResponseResults()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            account_handle: Default::default(),
            capture_devices: Default::default(),
            connector_handle: Default::default(),
            current_capture_device: Default::default(),
            current_render_device: Default::default(),
            render_devices: Default::default(),
            session_handle: Default::default(),
            status_code: Default::default(),
            status_string: Default::default(),
            version_id: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.SessionHandle`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.SessionHandle`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs.#ctor(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway.VoiceSessionEventArgs(System.Int32 rcode, System.Int32 scode, System.String text, System.String shandle)`.
/// Mapping contract: ownership `owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::event_args::VoiceGatewayVoiceSessionEventArgs;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountChannelGetList`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAccountLogout`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnAuxAudioProperties`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnCaptureDevices`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnCaptureDevices`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorCreated`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorCreated`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorInitiateShutdown`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnConnectorInitiateShutdown`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLogin`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnLogin`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnLoginStateChange`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnLoginStateChange`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnNewSession`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnNewSession`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParcelVoiceInfo`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnParcelVoiceInfo`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantProperties`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantProperties`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantStateChange`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnParticipantStateChange`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnProvisionAccount`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnProvisionAccount`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnRenderDevices`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnRenderDevices`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionConnected`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionConnected`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionCreated`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionStateChange`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback LibreMetaverse.Voice.Vivox.VoiceManager.OnSessionTerminated`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.BlockingTimeout`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.BlockingTimeout`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_ARGS`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_ARGS`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_LOG_LEVEL`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_LOG_LEVEL`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_PORT`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.DAEMON_PORT`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.REQUEST_TERMINATOR`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.REQUEST_TERMINATOR`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_DEBUG_SERVER`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_DEBUG_SERVER`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_MAJOR_VERSION`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_MAJOR_VERSION`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_RELEASE_SERVER`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.VOICE_RELEASE_SERVER`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceManager.VoiceServer`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.VoiceServer`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.#ctor(LibreMetaverse.GridClient)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager(LibreMetaverse.GridClient client)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CaptureDevices`.
///
/// C# signature: `System.Collections.Generic.List<System.String> LibreMetaverse.Voice.Vivox.VoiceManager.CaptureDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon(System.String,System.Int32)`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.ConnectToDaemon(System.String address, System.Int32 port)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CreateConnector(System.Int32@)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.CreateConnector(out System.Int32& status)`.
/// Mapping contract: ownership `shared_self,mutable_output`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentCaptureDevices`.
///
/// C# signature: `System.Collections.Generic.List<System.String> LibreMetaverse.Voice.Vivox.VoiceManager.CurrentCaptureDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.CurrentRenderDevices`.
///
/// C# signature: `System.Collections.Generic.List<System.String> LibreMetaverse.Voice.Vivox.VoiceManager.CurrentRenderDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.Dispose`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.Dispose()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.GetChannelMap`.
///
/// C# signature: `System.Collections.Generic.Dictionary<System.String, System.String> LibreMetaverse.Voice.Vivox.VoiceManager.GetChannelMap()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.IsDaemonRunning`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.IsDaemonRunning()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.Login(System.String,System.String,System.String,System.Int32@)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.Login(System.String accountName, System.String password, System.String connectorHandle, out System.Int32& status)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,mutable_output`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RenderDevices`.
///
/// C# signature: `System.Collections.Generic.List<System.String> LibreMetaverse.Voice.Vivox.VoiceManager.RenderDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCaptureDevices`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestCaptureDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestCreateConnector(System.String voiceServer)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `descriptive_overload_name`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestLogin(System.String,System.String,System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestLogin(System.String accountName, System.String password, System.String connHandle)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestParcelVoiceInfo`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.RequestParcelVoiceInfo()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestProvisionAccount`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.RequestProvisionAccount()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStart(System.String,System.Boolean)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStart(System.String fileName, System.Boolean loop)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStop`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderAudioStop()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderDevices`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestRenderDevices()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetCaptureVolume(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetCaptureVolume(System.Int32 volume)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetRenderDevice(System.String)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetRenderDevice(System.String deviceName)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetSpeakerVolume(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestSetSpeakerVolume(System.Int32 volume)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStartTuningMode(System.Int32)`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestStartTuningMode(System.Int32 duration)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.RequestStopTuningMode`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceManager.RequestStopTuningMode()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SipuriFromVoiceAccount(System.String)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.SipuriFromVoiceAccount(System.String account)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.StartDaemon`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceManager.StartDaemon()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.StopDaemon`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.StopDaemon()`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.UuidFromVoiceAccount(System.String)`.
///
/// C# signature: `LibreMetaverse.UUID LibreMetaverse.Voice.Vivox.VoiceManager.UuidFromVoiceAccount(System.String accountName)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.VoiceAccountFromUuid(LibreMetaverse.UUID)`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceManager.VoiceAccountFromUuid(LibreMetaverse.UUID id)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::voice_manager::VoiceManager;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.BeginInvoke(System.Int32,System.Single,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.BeginInvoke(System.Int32 cookie, System.Single energy, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.Invoke(System.Int32,System.Single)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.AuxAudioPropertiesCallback.Invoke(System.Int32 cookie, System.Single energy)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerAuxAudioPropertiesCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.BeginInvoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.Invoke(System.Int32,System.Int32,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.BasicActionCallback.Invoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerBasicActionCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.BeginInvoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String connectorHandle, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ConnectorCreatedCallback.Invoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String connectorHandle)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerConnectorCreatedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.BeginInvoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String currentDevice, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.DevicesCallback.Invoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String currentDevice)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerDevicesCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.BeginInvoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String accountHandle, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.LoginCallback.Invoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String accountHandle)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerLoginCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.BeginInvoke(System.Int32,System.String,System.Int32,System.String,System.Int32,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.BeginInvoke(System.Int32 cookie, System.String accountHandle, System.Int32 statusCode, System.String statusString, System.Int32 state, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.Invoke(System.Int32,System.String,System.Int32,System.String,System.Int32)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.LoginStateChangeCallback.Invoke(System.Int32 cookie, System.String accountHandle, System.Int32 statusCode, System.String statusString, System.Int32 state)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerLoginStateChangeCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// 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)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.BeginInvoke(System.Int32 cookie, System.String accountHandle, System.String eventSessionHandle, System.Int32 state, System.String nameString, System.String uriString, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.Invoke(System.Int32,System.String,System.String,System.Int32,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.NewSessionCallback.Invoke(System.Int32 cookie, System.String accountHandle, System.String eventSessionHandle, System.Int32 state, System.String nameString, System.String uriString)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerNewSessionCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.BeginInvoke(System.String,System.Int32,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.BeginInvoke(System.String regionName, System.Int32 localId, System.String channelUri, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.Invoke(System.String,System.Int32,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParcelVoiceInfoCallback.Invoke(System.String regionName, System.Int32 localId, System.String channelUri)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerParcelVoiceInfoCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// 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)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.BeginInvoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.Boolean isLocallyMuted, System.Boolean isModeratorMuted, System.Boolean isSpeaking, System.Int32 volume, System.Single energy, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// 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)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantPropertiesCallback.Invoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.Boolean isLocallyMuted, System.Boolean isModeratorMuted, System.Boolean isSpeaking, System.Int32 volume, System.Single energy)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerParticipantPropertiesCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// 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)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.BeginInvoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.Int32 state, System.String nameString, System.String displayNameString, System.Int32 participantType, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// 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)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ParticipantStateChangeCallback.Invoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.Int32 state, System.String nameString, System.String displayNameString, System.Int32 participantType)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerParticipantStateChangeCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.BeginInvoke(System.String,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.BeginInvoke(System.String username, System.String password, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.Invoke(System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.ProvisionAccountCallback.Invoke(System.String username, System.String password)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerProvisionAccountCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.BeginInvoke(System.Int32,System.Int32,System.String,System.String,System.AsyncCallback,System.Object)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.BeginInvoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String sessionHandle, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.Invoke(System.Int32,System.Int32,System.String,System.String)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.SessionCreatedCallback.Invoke(System.Int32 cookie, System.Int32 statusCode, System.String statusString, System.String sessionHandle)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerSessionCreatedCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.#ctor(System.Object,System.IntPtr)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback(System.Object object, System.IntPtr method)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// 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)`.
///
/// C# signature: `System.IAsyncResult LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.BeginInvoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.String eventSessionHandle, System.Int32 state, System.Boolean isChannel, System.String nameString, System.AsyncCallback callback, System.Object object)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.EndInvoke(System.IAsyncResult)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.EndInvoke(System.IAsyncResult result)`.
/// Mapping contract: ownership `shared_self,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `native_callback_replaces_delegate_apm`.
/// 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)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceManager.SessionStateChangeCallback.Invoke(System.Int32 cookie, System.String uriString, System.Int32 statusCode, System.String statusString, System.String eventSessionHandle, System.Int32 state, System.Boolean isChannel, System.String nameString)`.
/// Mapping contract: ownership `shared_self,owned,owned,owned,owned,owned,owned,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
pub use crate::callbacks::VoiceManagerSessionStateChangeCallback;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceParticipant`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceParticipant` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceParticipant.#ctor(System.String,LibreMetaverse.Voice.Vivox.VoiceSession)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceParticipant(System.String puri, LibreMetaverse.Voice.Vivox.VoiceSession s)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceParticipant.IDFromName(System.String)`.
///
/// C# signature: `LibreMetaverse.UUID LibreMetaverse.Voice.Vivox.VoiceParticipant.IDFromName(System.String inName)`.
/// Mapping contract: ownership `owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy`.
///
/// C# signature: `System.Single LibreMetaverse.Voice.Vivox.VoiceParticipant.Energy`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.ID`.
///
/// C# signature: `LibreMetaverse.UUID LibreMetaverse.Voice.Vivox.VoiceParticipant.ID`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceParticipant.IsMuted`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceParticipant.IsSpeaking`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Name`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceParticipant.Name`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume`.
///
/// C# signature: `System.Int32 LibreMetaverse.Voice.Vivox.VoiceParticipant.Volume`.
/// Mapping contract: ownership `shared_or_mutable_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::session::VoiceParticipant;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoicePosition`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoicePosition` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
pub struct VoicePosition {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.AtOrientation`.
    ///
    /// C# signature: `LibreMetaverse.Vector3d LibreMetaverse.Voice.Vivox.VoicePosition.AtOrientation`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub at_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.LeftOrientation`.
    ///
    /// C# signature: `LibreMetaverse.Vector3d LibreMetaverse.Voice.Vivox.VoicePosition.LeftOrientation`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub left_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.Position`.
    ///
    /// C# signature: `LibreMetaverse.Vector3d LibreMetaverse.Voice.Vivox.VoicePosition.Position`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub position: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.UpOrientation`.
    ///
    /// C# signature: `LibreMetaverse.Vector3d LibreMetaverse.Voice.Vivox.VoicePosition.UpOrientation`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub up_orientation: libremetaverse_types::Vector3d,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoicePosition.Velocity`.
    ///
    /// C# signature: `LibreMetaverse.Vector3d LibreMetaverse.Voice.Vivox.VoicePosition.Velocity`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    pub velocity: libremetaverse_types::Vector3d,
}
impl VoicePosition {
    /// C# member: `M:LibreMetaverse.Voice.Vivox.VoicePosition.#ctor`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoicePosition()`.
    /// Mapping contract: ownership `none`; async `sync`;
    /// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
    pub fn new() -> Result<Self, crate::Error> {
        /* complete generated data model */
        Ok(Self {
            at_orientation: Default::default(),
            left_orientation: Default::default(),
            position: Default::default(),
            up_orientation: Default::default(),
            velocity: Default::default(),
        })
    }
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceServiceType`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceServiceType` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceServiceType {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeA`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceServiceType LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeA`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    TypeA = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeB`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceServiceType LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeB`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    TypeB = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeC`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceServiceType LibreMetaverse.Voice.Vivox.VoiceServiceType.TypeC`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    TypeC = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceServiceType.Unknown`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceServiceType LibreMetaverse.Voice.Vivox.VoiceServiceType.Unknown`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    Unknown = 0,
}

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceSession`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceSession` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`.
///
/// C# signature: `System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantAdded`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`.
///
/// C# signature: `System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantRemoved`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `E:LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`.
///
/// C# signature: `System.EventHandler LibreMetaverse.Voice.Vivox.VoiceSession.OnParticipantUpdate`.
/// Mapping contract: ownership `shared_self,stored_callback`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `subscription_guard`.
/// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceSession.RegionName`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceSession.RegionName`.
/// Mapping contract: ownership `owned_value`; async `sync`;
/// errors `none`; overload `direct_snake_case`; kind `direct`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceSession.#ctor(LibreMetaverse.Voice.Vivox.VoiceGateway,System.String)`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceSession(LibreMetaverse.Voice.Vivox.VoiceGateway conn, System.String handle)`.
/// Mapping contract: ownership `owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `M:LibreMetaverse.Voice.Vivox.VoiceSession.Set3DPosition(LibreMetaverse.Voice.Vivox.VoicePosition,LibreMetaverse.Voice.Vivox.VoicePosition)`.
///
/// C# signature: `System.Void LibreMetaverse.Voice.Vivox.VoiceSession.Set3DPosition(LibreMetaverse.Voice.Vivox.VoicePosition speakerPosition, LibreMetaverse.Voice.Vivox.VoicePosition listenerPosition)`.
/// Mapping contract: ownership `shared_self,owned,owned`; async `sync`;
/// errors `Result<_, crate::Error>`; overload `direct_snake_case`; kind `method`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.Connector`.
///
/// C# signature: `LibreMetaverse.Voice.Vivox.VoiceGateway LibreMetaverse.Voice.Vivox.VoiceSession.Connector`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.Handle`.
///
/// C# signature: `System.String LibreMetaverse.Voice.Vivox.VoiceSession.Handle`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
/// C# member: `P:LibreMetaverse.Voice.Vivox.VoiceSession.IsSpatial`.
///
/// C# signature: `System.Boolean LibreMetaverse.Voice.Vivox.VoiceSession.IsSpatial`.
/// Mapping contract: ownership `shared_self`; async `sync`;
/// errors `infallible_placeholder`; overload `direct_snake_case`; kind `accessor_methods`.
pub use crate::session::VoiceSession;

/// C# type: `T:LibreMetaverse.Voice.Vivox.VoiceStatus`.
///
/// Native Rust mapping of C# `LibreMetaverse.Voice.Vivox.VoiceStatus` using decision
/// `native_metacrate_type`. See the [pinned C# source](https://github.com/cinderblocks/libremetaverse/tree/2aa70bb68513b39795da5d13c88f31b86e85a3ba).
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum VoiceStatus {
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.BeginErrorStatus`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.BeginErrorStatus`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    BeginErrorStatus = 5,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelFull`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelFull`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ErrorChannelFull = 6,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelLocked`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorChannelLocked`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ErrorChannelLocked = 7,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorNotAvailable`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorNotAvailable`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ErrorNotAvailable = 8,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorUnknown`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.ErrorUnknown`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    ErrorUnknown = 9,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoined`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoined`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    StatusJoined = 3,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoining`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.StatusJoining`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    StatusJoining = 2,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLeftChannel`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLeftChannel`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    StatusLeftChannel = 4,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoggedIn`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoggedIn`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    StatusLoggedIn = 1,
    /// C# member: `F:LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoginRetry`.
    ///
    /// C# signature: `LibreMetaverse.Voice.Vivox.VoiceStatus LibreMetaverse.Voice.Vivox.VoiceStatus.StatusLoginRetry`.
    /// Mapping contract: ownership `owned_value`; async `sync`;
    /// errors `none`; overload `direct_snake_case`; kind `direct`.
    StatusLoginRetry = 0,
}
