// @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.RLV.AttachmentRequest`.
pub struct AttachmentRequest;
impl AttachmentRequest {
    /// C# member: `M:LibreMetaverse.RLV.AttachmentRequest.#ctor(System.Guid,LibreMetaverse.RLV.RlvAttachmentPoint,System.Boolean)`.
    pub fn new(
        item_id: libremetaverse_types::compat::Guid,
        attachment_point: libremetaverse_rlv::RlvAttachmentPoint,
        replace_existing_attachments: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.AttachmentRequest.#ctor(System.Guid,LibreMetaverse.RLV.RlvAttachmentPoint,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.AttachmentRequest.Equals(System.Object)`.
    pub fn equals(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.AttachmentRequest.Equals(System.Object)"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.AttachmentRequest.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.AttachmentRequest.GetHashCode"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.AttachmentRequest.AttachmentPoint`.
    pub fn attachment_point(&self) -> libremetaverse_rlv::RlvAttachmentPoint {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.AttachmentRequest.AttachmentPoint"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.AttachmentRequest.ItemId`.
    pub fn item_id(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.AttachmentRequest.ItemId")
    }
    /// C# member: `P:LibreMetaverse.RLV.AttachmentRequest.ReplaceExistingAttachments`.
    pub fn replace_existing_attachments(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.AttachmentRequest.ReplaceExistingAttachments"
        )
    }
}

/// C# type: `T:LibreMetaverse.RLV.CameraRestrictions`.
pub struct CameraRestrictions;
impl CameraRestrictions {
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.AvDist`.
    pub fn av_dist(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.AvDist")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.AvDistMax`.
    pub fn av_dist_max(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.CameraRestrictions.AvDistMax"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.AvDistMin`.
    pub fn av_dist_min(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.CameraRestrictions.AvDistMin"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.DrawAlphaMax`.
    pub fn draw_alpha_max(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.CameraRestrictions.DrawAlphaMax"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.DrawAlphaMin`.
    pub fn draw_alpha_min(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.CameraRestrictions.DrawAlphaMin"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.DrawColor`.
    pub fn draw_color(&self) -> Option<Option<libremetaverse_types::compat::Vector3>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.CameraRestrictions.DrawColor"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.DrawMax`.
    pub fn draw_max(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.DrawMax")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.DrawMin`.
    pub fn draw_min(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.DrawMin")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.FovMax`.
    pub fn fov_max(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.FovMax")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.FovMin`.
    pub fn fov_min(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.FovMin")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.IsLocked`.
    pub fn is_locked(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.IsLocked")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.Texture`.
    pub fn texture(&self) -> Option<Option<libremetaverse_types::compat::Guid>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.Texture")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.ZoomMax`.
    pub fn zoom_max(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.ZoomMax")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraRestrictions.ZoomMin`.
    pub fn zoom_min(&self) -> Option<Option<f32>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraRestrictions.ZoomMin")
    }
}

/// C# type: `T:LibreMetaverse.RLV.CameraSettings`.
pub struct CameraSettings;
impl CameraSettings {
    /// C# member: `M:LibreMetaverse.RLV.CameraSettings.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)`.
    pub fn new(
        av_dist_min: f32,
        av_dist_max: f32,
        fov_min: f32,
        fov_max: f32,
        zoom_min: f32,
        current_fov: f32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.CameraSettings.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)",
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.AvDistMax`.
    pub fn av_dist_max(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.AvDistMax")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.AvDistMin`.
    pub fn av_dist_min(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.AvDistMin")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.CurrentFov`.
    pub fn current_fov(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.CurrentFov")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.FovMax`.
    pub fn fov_max(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.FovMax")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.FovMin`.
    pub fn fov_min(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.FovMin")
    }
    /// C# member: `P:LibreMetaverse.RLV.CameraSettings.ZoomMin`.
    pub fn zoom_min(&self) -> f32 {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.CameraSettings.ZoomMin")
    }
}

/// C# type: `T:LibreMetaverse.RLV.IRlvActionCallbacks`.
pub trait IRlvActionCallbacks {
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.AdjustHeightAsync(System.Single,System.Single,System.Single,System.Threading.CancellationToken)`.
    fn adjust_height(
        &self,
        distance: f32,
        factor: f32,
        delta: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.AdjustHeightAsync(System.Single,System.Single,System.Single,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.AttachAsync(System.Collections.Generic.IReadOnlyList{LibreMetaverse.RLV.AttachmentRequest},System.Threading.CancellationToken)`.
    fn attach(
        &self,
        items_to_attach: Vec<libremetaverse_rlv::AttachmentRequest>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.AttachAsync(System.Collections.Generic.IReadOnlyList{LibreMetaverse.RLV.AttachmentRequest},System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.DetachAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)`.
    fn detach(
        &self,
        item_ids: Vec<libremetaverse_types::compat::Guid>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.DetachAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.RemOutfitAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)`.
    fn rem_outfit(
        &self,
        item_ids: Vec<libremetaverse_types::compat::Guid>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.RemOutfitAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SendInstantMessageAsync(System.Guid,System.String,System.Threading.CancellationToken)`.
    fn send_instant_message(
        &self,
        target_user: libremetaverse_types::compat::Guid,
        message: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SendInstantMessageAsync(System.Guid,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SendReplyAsync(System.Int32,System.String,System.Threading.CancellationToken)`.
    fn send_reply(
        &self,
        channel: i32,
        message: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SendReplyAsync(System.Int32,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetCamFOVAsync(System.Single,System.Threading.CancellationToken)`.
    fn set_cam_fov(
        &self,
        fov_in_radians: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetCamFOVAsync(System.Single,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetDebugAsync(System.String,System.String,System.Threading.CancellationToken)`.
    fn set_debug(
        &self,
        setting_name: String,
        setting_value: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetDebugAsync(System.String,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetEnvAsync(System.String,System.String,System.Threading.CancellationToken)`.
    fn set_env(
        &self,
        setting_name: String,
        setting_value: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetEnvAsync(System.String,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetGroupAsync(System.Guid,System.String,System.Threading.CancellationToken)`.
    fn set_group_with_guid_string_cancellation_token(
        &self,
        group_id: libremetaverse_types::compat::Guid,
        role_name: Option<String>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetGroupAsync(System.Guid,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetGroupAsync(System.String,System.String,System.Threading.CancellationToken)`.
    fn set_group_with_string_string_cancellation_token(
        &self,
        group_name: String,
        role_name: Option<String>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetGroupAsync(System.String,System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SetRotAsync(System.Single,System.Threading.CancellationToken)`.
    fn set_rot(
        &self,
        angle_in_radians: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SetRotAsync(System.Single,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SitAsync(System.Guid,System.Threading.CancellationToken)`.
    fn sit(
        &self,
        target: libremetaverse_types::compat::Guid,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SitAsync(System.Guid,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.SitGroundAsync(System.Threading.CancellationToken)`.
    fn sit_ground(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.SitGroundAsync(System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.TpToAsync(System.Single,System.Single,System.Single,System.String,System.Nullable{System.Single},System.Threading.CancellationToken)`.
    fn tp_to(
        &self,
        x: f32,
        y: f32,
        z: f32,
        region_name: Option<String>,
        lookat: Option<Option<f32>>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.TpToAsync(System.Single,System.Single,System.Single,System.String,System.Nullable{System.Single},System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvActionCallbacks.UnsitAsync(System.Threading.CancellationToken)`.
    fn unsit(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvActionCallbacks.UnsitAsync(System.Threading.CancellationToken)",
            )
        })
    }
}

/// C# type: `T:LibreMetaverse.RLV.IRlvQueryCallbacks`.
pub trait IRlvQueryCallbacks {
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.IsSittingAsync(System.Threading.CancellationToken)`.
    fn is_sitting(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<bool, crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.IsSittingAsync(System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.ObjectExistsAsync(System.Guid,System.Threading.CancellationToken)`.
    fn object_exists(
        &self,
        object_id: libremetaverse_types::compat::Guid,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<Box<dyn std::future::Future<Output = Result<bool, crate::Error>> + Send + '_>>
    {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.ObjectExistsAsync(System.Guid,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetActiveGroupNameAsync(System.Threading.CancellationToken)`.
    fn try_get_active_group_name(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<dyn std::future::Future<Output = Result<(bool, String), crate::Error>> + Send + '_>,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetActiveGroupNameAsync(System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetCameraSettingsAsync(System.Threading.CancellationToken)`.
    fn try_get_camera_settings(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<
            dyn std::future::Future<
                    Output = Result<
                        (bool, Option<libremetaverse_rlv::CameraSettings>),
                        crate::Error,
                    >,
                > + Send
                + '_,
        >,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetCameraSettingsAsync(System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetDebugSettingValueAsync(System.String,System.Threading.CancellationToken)`.
    fn try_get_debug_setting_value(
        &self,
        setting_name: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<dyn std::future::Future<Output = Result<(bool, String), crate::Error>> + Send + '_>,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetDebugSettingValueAsync(System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetEnvironmentSettingValueAsync(System.String,System.Threading.CancellationToken)`.
    fn try_get_environment_setting_value(
        &self,
        setting_name: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<dyn std::future::Future<Output = Result<(bool, String), crate::Error>> + Send + '_>,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetEnvironmentSettingValueAsync(System.String,System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetInventoryMapAsync(System.Threading.CancellationToken)`.
    fn try_get_inventory_map(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<
            dyn std::future::Future<
                    Output = Result<(bool, Option<libremetaverse_rlv::InventoryMap>), crate::Error>,
                > + Send
                + '_,
        >,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetInventoryMapAsync(System.Threading.CancellationToken)",
            )
        })
    }
    /// C# member: `M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetSitIdAsync(System.Threading.CancellationToken)`.
    fn try_get_sit_id(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> std::pin::Pin<
        Box<
            dyn std::future::Future<
                    Output = Result<(bool, libremetaverse_types::compat::Guid), crate::Error>,
                > + Send
                + '_,
        >,
    > {
        Box::pin(async {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.IRlvQueryCallbacks.TryGetSitIdAsync(System.Threading.CancellationToken)",
            )
        })
    }
}

/// C# type: `T:LibreMetaverse.RLV.InventoryMap`.
pub struct InventoryMap;
impl InventoryMap {
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.#ctor(LibreMetaverse.RLV.RlvSharedFolder,System.Collections.Generic.IReadOnlyCollection{LibreMetaverse.RLV.RlvInventoryItem})`.
    pub fn new(
        root: libremetaverse_rlv::RlvSharedFolder,
        external_items: Vec<libremetaverse_rlv::RlvInventoryItem>,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.#ctor(LibreMetaverse.RLV.RlvSharedFolder,System.Collections.Generic.IReadOnlyCollection{LibreMetaverse.RLV.RlvInventoryItem})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.FindFoldersContaining(System.Boolean,System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})`.
    pub fn find_folders_containing(
        &self,
        limit_to_one_result: bool,
        attached_prim_id: Option<Option<libremetaverse_types::compat::Guid>>,
        attachment_point: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
        wearable_type: Option<Option<libremetaverse_rlv::RlvWearableType>>,
    ) -> Result<Box<dyn Iterator<Item = libremetaverse_rlv::RlvSharedFolder>>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.FindFoldersContaining(System.Boolean,System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.GetItemsByAttachmentPoint(LibreMetaverse.RLV.RlvAttachmentPoint)`.
    pub fn get_items_by_attachment_point(
        &self,
        attachment_point: libremetaverse_rlv::RlvAttachmentPoint,
    ) -> Result<Vec<libremetaverse_rlv::RlvInventoryItem>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.GetItemsByAttachmentPoint(LibreMetaverse.RLV.RlvAttachmentPoint)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.GetItemsById(System.Guid)`.
    pub fn get_items_by_id(
        &self,
        item_id: libremetaverse_types::compat::Guid,
    ) -> Result<Vec<libremetaverse_rlv::RlvInventoryItem>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.GetItemsById(System.Guid)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.GetItemsByPrimId(System.Guid)`.
    pub fn get_items_by_prim_id(
        &self,
        prim_id: libremetaverse_types::compat::Guid,
    ) -> Result<Vec<libremetaverse_rlv::RlvInventoryItem>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.GetItemsByPrimId(System.Guid)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.GetItemsByWearableType(LibreMetaverse.RLV.RlvWearableType)`.
    pub fn get_items_by_wearable_type(
        &self,
        wearable_type: libremetaverse_rlv::RlvWearableType,
    ) -> Result<Vec<libremetaverse_rlv::RlvInventoryItem>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.InventoryMap.GetItemsByWearableType(LibreMetaverse.RLV.RlvWearableType)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.TryBuildPathToFolder(System.Guid,System.String@)`.
    pub fn try_build_path_to_folder(
        &self,
        folder_id: libremetaverse_types::compat::Guid,
        final_path: &mut Option<String>,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.InventoryMap.TryBuildPathToFolder(System.Guid,System.String@)"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.InventoryMap.TryGetFolderFromPath(System.String,System.Boolean,LibreMetaverse.RLV.RlvSharedFolder@)`.
    pub fn try_get_folder_from_path(
        &self,
        path: String,
        skip_private_folders: bool,
        folder: &mut Option<libremetaverse_rlv::RlvSharedFolder>,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.InventoryMap.TryGetFolderFromPath(System.String,System.Boolean,LibreMetaverse.RLV.RlvSharedFolder@)"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.InventoryMap.ExternalItems`.
    pub fn external_items(
        &self,
    ) -> libremetaverse_types::compat::ImmutableDictionary<
        libremetaverse_types::compat::Guid,
        libremetaverse_rlv::RlvInventoryItem,
    > {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.InventoryMap.ExternalItems")
    }
    /// C# member: `P:LibreMetaverse.RLV.InventoryMap.Folders`.
    pub fn folders(
        &self,
    ) -> libremetaverse_types::compat::ImmutableDictionary<
        libremetaverse_types::compat::Guid,
        libremetaverse_rlv::RlvSharedFolder,
    > {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.InventoryMap.Folders")
    }
    /// C# member: `P:LibreMetaverse.RLV.InventoryMap.Items`.
    pub fn items(
        &self,
    ) -> libremetaverse_types::compat::ImmutableDictionary<
        libremetaverse_types::compat::Guid,
        libremetaverse_types::compat::ImmutableList<libremetaverse_rlv::RlvInventoryItem>,
    > {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.InventoryMap.Items")
    }
    /// C# member: `P:LibreMetaverse.RLV.InventoryMap.Root`.
    pub fn root(&self) -> libremetaverse_rlv::RlvSharedFolder {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.InventoryMap.Root")
    }
}

/// C# type: `T:LibreMetaverse.RLV.LockedFolderPublic`.
pub struct LockedFolderPublic;
impl LockedFolderPublic {
    /// C# member: `M:LibreMetaverse.RLV.LockedFolderPublic.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.RLV.LockedFolderPublic.ToString")
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.AttachExceptions`.
    pub fn attach_exceptions(&self) -> Vec<libremetaverse_rlv::RlvRestriction> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.AttachExceptions"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.AttachRestrictions`.
    pub fn attach_restrictions(&self) -> Vec<libremetaverse_rlv::RlvRestriction> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.AttachRestrictions"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.CanAttach`.
    pub fn can_attach(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.CanAttach"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.CanDetach`.
    pub fn can_detach(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.CanDetach"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.DetachExceptions`.
    pub fn detach_exceptions(&self) -> Vec<libremetaverse_rlv::RlvRestriction> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.DetachExceptions"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.DetachRestrictions`.
    pub fn detach_restrictions(&self) -> Vec<libremetaverse_rlv::RlvRestriction> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.LockedFolderPublic.DetachRestrictions"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.Id`.
    pub fn id(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.LockedFolderPublic.Id")
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.IsLocked`.
    pub fn is_locked(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.LockedFolderPublic.IsLocked")
    }
    /// C# member: `P:LibreMetaverse.RLV.LockedFolderPublic.Name`.
    pub fn name(&self) -> String {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.LockedFolderPublic.Name")
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvActionCallbacksDefault`.
pub struct RlvActionCallbacksDefault;
impl RlvActionCallbacksDefault {
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.#ctor",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.AdjustHeightAsync(System.Single,System.Single,System.Single,System.Threading.CancellationToken)`.
    pub async fn adjust_height(
        &self,
        distance: f32,
        factor: f32,
        delta: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.AdjustHeightAsync(System.Single,System.Single,System.Single,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.AttachAsync(System.Collections.Generic.IReadOnlyList{LibreMetaverse.RLV.AttachmentRequest},System.Threading.CancellationToken)`.
    pub async fn attach(
        &self,
        items_to_attach: Vec<libremetaverse_rlv::AttachmentRequest>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.AttachAsync(System.Collections.Generic.IReadOnlyList{LibreMetaverse.RLV.AttachmentRequest},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.DetachAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)`.
    pub async fn detach(
        &self,
        item_ids: Vec<libremetaverse_types::compat::Guid>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.DetachAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.RemOutfitAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)`.
    pub async fn rem_outfit(
        &self,
        item_ids: Vec<libremetaverse_types::compat::Guid>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.RemOutfitAsync(System.Collections.Generic.IReadOnlyList{System.Guid},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SendInstantMessageAsync(System.Guid,System.String,System.Threading.CancellationToken)`.
    pub async fn send_instant_message(
        &self,
        target_user: libremetaverse_types::compat::Guid,
        message: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SendInstantMessageAsync(System.Guid,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SendReplyAsync(System.Int32,System.String,System.Threading.CancellationToken)`.
    pub async fn send_reply(
        &self,
        channel: i32,
        message: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SendReplyAsync(System.Int32,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetCamFOVAsync(System.Single,System.Threading.CancellationToken)`.
    pub async fn set_cam_fov(
        &self,
        fov_in_radians: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetCamFOVAsync(System.Single,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetDebugAsync(System.String,System.String,System.Threading.CancellationToken)`.
    pub async fn set_debug(
        &self,
        setting_name: String,
        setting_value: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetDebugAsync(System.String,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetEnvAsync(System.String,System.String,System.Threading.CancellationToken)`.
    pub async fn set_env(
        &self,
        setting_name: String,
        setting_value: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetEnvAsync(System.String,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetGroupAsync(System.Guid,System.String,System.Threading.CancellationToken)`.
    pub async fn set_group_with_guid_string_cancellation_token(
        &self,
        group_id: libremetaverse_types::compat::Guid,
        role_name: Option<String>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetGroupAsync(System.Guid,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetGroupAsync(System.String,System.String,System.Threading.CancellationToken)`.
    pub async fn set_group_with_string_string_cancellation_token(
        &self,
        group_name: String,
        role_name: Option<String>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetGroupAsync(System.String,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetRotAsync(System.Single,System.Threading.CancellationToken)`.
    pub async fn set_rot(
        &self,
        angle_in_radians: f32,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SetRotAsync(System.Single,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SitAsync(System.Guid,System.Threading.CancellationToken)`.
    pub async fn sit(
        &self,
        target: libremetaverse_types::compat::Guid,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SitAsync(System.Guid,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SitGroundAsync(System.Threading.CancellationToken)`.
    pub async fn sit_ground(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.SitGroundAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.TpToAsync(System.Single,System.Single,System.Single,System.String,System.Nullable{System.Single},System.Threading.CancellationToken)`.
    pub async fn tp_to(
        &self,
        x: f32,
        y: f32,
        z: f32,
        region_name: Option<String>,
        lookat: Option<Option<f32>>,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.TpToAsync(System.Single,System.Single,System.Single,System.String,System.Nullable{System.Single},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvActionCallbacksDefault.UnsitAsync(System.Threading.CancellationToken)`.
    pub async fn unsit(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvActionCallbacksDefault.UnsitAsync(System.Threading.CancellationToken)",
        )
    }
}
impl libremetaverse_rlv::IRlvActionCallbacks for RlvActionCallbacksDefault {}

/// C# type: `T:LibreMetaverse.RLV.RlvAttachmentPoint`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvAttachmentPoint {
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.AltLeftEar`.
    AltLeftEar = 48,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.AltLeftEye`.
    AltLeftEye = 50,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.AltRightEar`.
    AltRightEar = 49,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.AltRightEye`.
    AltRightEye = 51,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.AvatarCenter`.
    AvatarCenter = 40,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Chest`.
    Chest = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Chin`.
    Chin = 12,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Default`.
    Default = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Groin`.
    Groin = 53,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDBottom`.
    HUDBottom = 37,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDBottomLeft`.
    HUDBottomLeft = 36,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDBottomRight`.
    HUDBottomRight = 38,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDCenter`.
    HUDCenter = 35,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDCenter2`.
    HUDCenter2 = 31,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDTop`.
    HUDTop = 33,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDTopLeft`.
    HUDTopLeft = 34,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.HUDTopRight`.
    HUDTopRight = 32,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Jaw`.
    Jaw = 47,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftEar`.
    LeftEar = 13,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftEyeball`.
    LeftEyeball = 15,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftFoot`.
    LeftFoot = 7,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftForearm`.
    LeftForearm = 21,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftHand`.
    LeftHand = 5,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftHandRing`.
    LeftHandRing = 41,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftHindFoot`.
    LeftHindFoot = 54,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftHip`.
    LeftHip = 25,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftLowerLeg`.
    LeftLowerLeg = 27,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftPec`.
    LeftPec = 29,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftShoulder`.
    LeftShoulder = 3,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftUpperArm`.
    LeftUpperArm = 20,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftUpperLeg`.
    LeftUpperLeg = 26,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.LeftWing`.
    LeftWing = 45,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Mouth`.
    Mouth = 11,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Neck`.
    Neck = 39,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Nose`.
    Nose = 17,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Pelvis`.
    Pelvis = 10,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightEar`.
    RightEar = 14,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightEyeball`.
    RightEyeball = 16,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightFoot`.
    RightFoot = 8,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightForearm`.
    RightForearm = 19,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightHand`.
    RightHand = 6,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightHandRing`.
    RightHandRing = 42,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightHindFoot`.
    RightHindFoot = 55,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightHip`.
    RightHip = 22,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightLowerLeg`.
    RightLowerLeg = 24,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightPec`.
    RightPec = 30,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightShoulder`.
    RightShoulder = 4,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightUpperArm`.
    RightUpperArm = 18,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightUpperLeg`.
    RightUpperLeg = 23,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.RightWing`.
    RightWing = 46,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Skull`.
    Skull = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Spine`.
    Spine = 9,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Stomach`.
    Stomach = 28,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.TailBase`.
    TailBase = 43,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.TailTip`.
    TailTip = 44,
    /// C# member: `F:LibreMetaverse.RLV.RlvAttachmentPoint.Tongue`.
    Tongue = 52,
}

/// C# type: `T:LibreMetaverse.RLV.RlvBlacklist`.
pub struct RlvBlacklist;
impl RlvBlacklist {
    /// C# member: `M:LibreMetaverse.RLV.RlvBlacklist.BlacklistBehavior(System.String)`.
    pub fn blacklist_behavior(&self, behavior: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvBlacklist.BlacklistBehavior(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvBlacklist.GetBlacklist`.
    pub fn get_blacklist(&self) -> Result<Vec<String>, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvBlacklist.GetBlacklist")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvBlacklist.IsBlacklisted(System.String)`.
    pub fn is_blacklisted(&self, behavior: String) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvBlacklist.IsBlacklisted(System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvBlacklist.UnBlacklistBehavior(System.String)`.
    pub fn un_blacklist_behavior(&self, behavior: String) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvBlacklist.UnBlacklistBehavior(System.String)",
        )
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvCallbacksDefault`.
pub struct RlvCallbacksDefault;
impl RlvCallbacksDefault {
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.#ctor`.
    pub fn new() -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvCallbacksDefault.#ctor")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.IsSittingAsync(System.Threading.CancellationToken)`.
    pub async fn is_sitting(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.IsSittingAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.ObjectExistsAsync(System.Guid,System.Threading.CancellationToken)`.
    pub async fn object_exists(
        &self,
        object_id: libremetaverse_types::compat::Guid,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.ObjectExistsAsync(System.Guid,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetActiveGroupNameAsync(System.Threading.CancellationToken)`.
    pub async fn try_get_active_group_name(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, String), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetActiveGroupNameAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetCameraSettingsAsync(System.Threading.CancellationToken)`.
    pub async fn try_get_camera_settings(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, Option<libremetaverse_rlv::CameraSettings>), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetCameraSettingsAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetDebugSettingValueAsync(System.String,System.Threading.CancellationToken)`.
    pub async fn try_get_debug_setting_value(
        &self,
        setting_name: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, String), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetDebugSettingValueAsync(System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetEnvironmentSettingValueAsync(System.String,System.Threading.CancellationToken)`.
    pub async fn try_get_environment_setting_value(
        &self,
        setting_name: String,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, String), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetEnvironmentSettingValueAsync(System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetInventoryMapAsync(System.Threading.CancellationToken)`.
    pub async fn try_get_inventory_map(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, Option<libremetaverse_rlv::InventoryMap>), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetInventoryMapAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetSharedFolderAsync(System.Threading.CancellationToken)`.
    pub async fn try_get_shared_folder(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, Option<libremetaverse_rlv::RlvSharedFolder>), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetSharedFolderAsync(System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetSitIdAsync(System.Threading.CancellationToken)`.
    pub async fn try_get_sit_id(
        &self,
        cancellation_token: libremetaverse_types::compat::CancellationToken,
    ) -> Result<(bool, libremetaverse_types::compat::Guid), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvCallbacksDefault.TryGetSitIdAsync(System.Threading.CancellationToken)",
        )
    }
}
impl libremetaverse_rlv::IRlvQueryCallbacks for RlvCallbacksDefault {}

/// C# type: `T:LibreMetaverse.RLV.RlvCommandProcessor`.
pub struct RlvCommandProcessor;
impl RlvCommandProcessor {}

/// C# type: `T:LibreMetaverse.RLV.RlvCommon`.
pub struct RlvCommon;
impl RlvCommon {
    /// C# member: `M:LibreMetaverse.RLV.RlvCommon.TryGetAttachmentPointFromItemName(System.String,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint}@)`.
    pub fn try_get_attachment_point_from_item_name(
        item_name: String,
        attachment_point: &mut Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvCommon.TryGetAttachmentPointFromItemName(System.String,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint}@)"
        )
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvGestureState`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvGestureState {
    /// C# member: `F:LibreMetaverse.RLV.RlvGestureState.Active`.
    Active = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvGestureState.Inactive`.
    Inactive = 0,
}

/// C# type: `T:LibreMetaverse.RLV.RlvGetDebugType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvGetDebugType {
    /// C# member: `F:LibreMetaverse.RLV.RlvGetDebugType.AvatarSex`.
    AvatarSex = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetDebugType.RenderResolutionDivisor`.
    RenderResolutionDivisor = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetDebugType.RestrainedLoveForbidGiveToRLV`.
    RestrainedLoveForbidGiveToRLV = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetDebugType.RestrainedLoveNoSetEnv`.
    RestrainedLoveNoSetEnv = 3,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetDebugType.WindLightUseAtmosShaders`.
    WindLightUseAtmosShaders = 4,
}

/// C# type: `T:LibreMetaverse.RLV.RlvGetEnvType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvGetEnvType {
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.Ambient`.
    Ambient = 7,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.AmbientB`.
    AmbientB = 5,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.AmbientG`.
    AmbientG = 4,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.AmbientI`.
    AmbientI = 6,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.AmbientR`.
    AmbientR = 3,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.Asset`.
    Asset = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueDensity`.
    BlueDensity = 12,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueDensityB`.
    BlueDensityB = 10,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueDensityG`.
    BlueDensityG = 9,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueDensityI`.
    BlueDensityI = 11,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueDensityR`.
    BlueDensityR = 8,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueHorizon`.
    BlueHorizon = 17,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueHorizonB`.
    BlueHorizonB = 15,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueHorizonG`.
    BlueHorizonG = 14,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueHorizonI`.
    BlueHorizonI = 16,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.BlueHorizonR`.
    BlueHorizonR = 13,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.Cloud`.
    Cloud = 27,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudColor`.
    CloudColor = 22,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudColorB`.
    CloudColorB = 20,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudColorG`.
    CloudColorG = 19,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudColorI`.
    CloudColorI = 21,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudColorR`.
    CloudColorR = 18,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudCoverage`.
    CloudCoverage = 23,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudD`.
    CloudD = 26,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudDetail`.
    CloudDetail = 31,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudDetailD`.
    CloudDetailD = 30,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudDetailX`.
    CloudDetailX = 28,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudDetailY`.
    CloudDetailY = 29,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudImage`.
    CloudImage = 32,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudScale`.
    CloudScale = 33,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudScroll`.
    CloudScroll = 36,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudScrollX`.
    CloudScrollX = 34,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudScrollY`.
    CloudScrollY = 35,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudVariance`.
    CloudVariance = 37,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudX`.
    CloudX = 24,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.CloudY`.
    CloudY = 25,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.Daytime`.
    Daytime = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.DensityMultiplier`.
    DensityMultiplier = 38,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.DistanceMultiplier`.
    DistanceMultiplier = 39,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.DropletRadius`.
    DropletRadius = 40,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.EastAngle`.
    EastAngle = 41,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.HazeDensity`.
    HazeDensity = 43,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.HazeHorizon`.
    HazeHorizon = 44,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.IceLevel`.
    IceLevel = 42,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MaxAltitude`.
    MaxAltitude = 45,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoistureLevel`.
    MoistureLevel = 46,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoonAzim`.
    MoonAzim = 47,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoonElev`.
    MoonElev = 49,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoonImage`.
    MoonImage = 50,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoonNBrightness`.
    MoonNBrightness = 48,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.MoonScale`.
    MoonScale = 51,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.Preset`.
    Preset = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SceneGamma`.
    SceneGamma = 52,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.StarBrightness`.
    StarBrightness = 53,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunAzim`.
    SunAzim = 55,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunElev`.
    SunElev = 56,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunGlowFocus`.
    SunGlowFocus = 54,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunGlowSize`.
    SunGlowSize = 57,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunImage`.
    SunImage = 58,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonColor`.
    SunMoonColor = 63,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonColorB`.
    SunMoonColorB = 61,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonColorG`.
    SunMoonColorG = 60,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonColorI`.
    SunMoonColorI = 62,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonColorR`.
    SunMoonColorR = 59,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunMoonPosition`.
    SunMoonPosition = 64,
    /// C# member: `F:LibreMetaverse.RLV.RlvGetEnvType.SunScale`.
    SunScale = 65,
}

/// C# type: `T:LibreMetaverse.RLV.RlvInventoryItem`.
pub struct RlvInventoryItem;
impl RlvInventoryItem {
    /// C# member: `M:LibreMetaverse.RLV.RlvInventoryItem.#ctor(System.Guid,System.String,System.Boolean,System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvWearableType},System.Nullable{LibreMetaverse.RLV.RlvGestureState})`.
    pub fn new(
        id: libremetaverse_types::compat::Guid,
        name: String,
        is_link: bool,
        external_folder_id: Option<Option<libremetaverse_types::compat::Guid>>,
        attached_to: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
        attached_prim_id: Option<Option<libremetaverse_types::compat::Guid>>,
        worn_on: Option<Option<libremetaverse_rlv::RlvWearableType>>,
        gesture_state: Option<Option<libremetaverse_rlv::RlvGestureState>>,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvInventoryItem.#ctor(System.Guid,System.String,System.Boolean,System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvWearableType},System.Nullable{LibreMetaverse.RLV.RlvGestureState})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvInventoryItem.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.RLV.RlvInventoryItem.ToString")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.AttachedPrimId`.
    pub fn attached_prim_id(&self) -> Option<Option<libremetaverse_types::compat::Guid>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvInventoryItem.AttachedPrimId"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.AttachedPrimId`.
    pub fn set_attached_prim_id(
        &mut self,
        value: Option<Option<libremetaverse_types::compat::Guid>>,
    ) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvInventoryItem.AttachedPrimId"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.AttachedTo`.
    pub fn attached_to(&self) -> Option<Option<libremetaverse_rlv::RlvAttachmentPoint>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.AttachedTo")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.AttachedTo`.
    pub fn set_attached_to(
        &mut self,
        value: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
    ) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.AttachedTo")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.Folder`.
    pub fn folder(&self) -> Option<libremetaverse_rlv::RlvSharedFolder> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.Folder")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.FolderId`.
    pub fn folder_id(&self) -> Option<Option<libremetaverse_types::compat::Guid>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.FolderId")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.GestureState`.
    pub fn gesture_state(&self) -> Option<Option<libremetaverse_rlv::RlvGestureState>> {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvInventoryItem.GestureState"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.GestureState`.
    pub fn set_gesture_state(
        &mut self,
        value: Option<Option<libremetaverse_rlv::RlvGestureState>>,
    ) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvInventoryItem.GestureState"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.Id`.
    pub fn id(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.Id")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.IsLink`.
    pub fn is_link(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.IsLink")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.IsLink`.
    pub fn set_is_link(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.IsLink")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.Name`.
    pub fn name(&self) -> String {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.Name")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.Name`.
    pub fn set_name(&mut self, value: String) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.Name")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.WornOn`.
    pub fn worn_on(&self) -> Option<Option<libremetaverse_rlv::RlvWearableType>> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.WornOn")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvInventoryItem.WornOn`.
    pub fn set_worn_on(&mut self, value: Option<Option<libremetaverse_rlv::RlvWearableType>>) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvInventoryItem.WornOn")
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvPermissionsService`.
pub struct RlvPermissionsService;
impl RlvPermissionsService {
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanAllowIdle`.
    pub fn can_allow_idle(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanAllowIdle",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanAlwaysRun`.
    pub fn can_always_run(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanAlwaysRun",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanAttach(LibreMetaverse.RLV.RlvInventoryItem,System.Boolean)`.
    pub fn can_attach_with_rlv_inventory_item_boolean(
        &self,
        item: libremetaverse_rlv::RlvInventoryItem,
        is_shared: bool,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanAttach(LibreMetaverse.RLV.RlvInventoryItem,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanAttach(System.Nullable{System.Guid},System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})`.
    pub fn can_attach_with_nullable_boolean_nullable_nullable(
        &self,
        object_folder_id: Option<Option<libremetaverse_types::compat::Guid>>,
        is_shared: bool,
        attachment_point: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
        wearable_type: Option<Option<libremetaverse_rlv::RlvWearableType>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanAttach(System.Nullable{System.Guid},System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanChat(System.Int32,System.String)`.
    pub fn can_chat(&self, channel: i32, message: String) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanChat(System.Int32,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanChatNormal`.
    pub fn can_chat_normal(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanChatNormal",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanChatShout`.
    pub fn can_chat_shout(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanChatShout",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanChatWhisper`.
    pub fn can_chat_whisper(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanChatWhisper",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanDefaultWear`.
    pub fn can_default_wear(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanDefaultWear",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanDetach(LibreMetaverse.RLV.RlvInventoryItem)`.
    pub fn can_detach_with_rlv_inventory_item(
        &self,
        item: libremetaverse_rlv::RlvInventoryItem,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanDetach(LibreMetaverse.RLV.RlvInventoryItem)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanDetach(System.Nullable{System.Guid},System.Nullable{System.Guid},System.Nullable{System.Guid},System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})`.
    pub fn can_detach_with_nullable_nullable_nullable_boolean_nullable_nullable(
        &self,
        item_id: Option<Option<libremetaverse_types::compat::Guid>>,
        prim_id: Option<Option<libremetaverse_types::compat::Guid>>,
        folder_id: Option<Option<libremetaverse_types::compat::Guid>>,
        is_shared: bool,
        attachment_point: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
        wearable_type: Option<Option<libremetaverse_rlv::RlvWearableType>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanDetach(System.Nullable{System.Guid},System.Nullable{System.Guid},System.Nullable{System.Guid},System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{LibreMetaverse.RLV.RlvWearableType})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanEdit(LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation,System.Nullable{System.Guid})`.
    pub fn can_edit(
        &self,
        object_location: libremetaverse_rlv::RlvPermissionsServiceObjectLocation,
        object_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanEdit(LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation,System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanEmote`.
    pub fn can_emote(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanEmote")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanFly`.
    pub fn can_fly(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanFly")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanInteract`.
    pub fn can_interact(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanInteract",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanJump`.
    pub fn can_jump(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanJump")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanReceiveChat(System.String,System.Guid)`.
    pub fn can_receive_chat(
        &self,
        message: String,
        user_id: libremetaverse_types::compat::Guid,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanReceiveChat(System.String,System.Guid)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanReceiveIM(System.String,System.Nullable{System.Guid},System.String)`.
    pub fn can_receive_im(
        &self,
        message: String,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
        group_name: Option<String>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanReceiveIM(System.String,System.Nullable{System.Guid},System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanRez`.
    pub fn can_rez(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanRez")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSendChat`.
    pub fn can_send_chat(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSendChat",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSendGesture`.
    pub fn can_send_gesture(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSendGesture",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSendIM(System.String,System.Nullable{System.Guid},System.String)`.
    pub fn can_send_im(
        &self,
        message: String,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
        group_name: Option<String>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSendIM(System.String,System.Nullable{System.Guid},System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSetDebug`.
    pub fn can_set_debug(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSetDebug",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSetEnv`.
    pub fn can_set_env(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSetEnv",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSetGroup`.
    pub fn can_set_group(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSetGroup",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShare(System.Nullable{System.Guid})`.
    pub fn can_share(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShare(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowHoverText(LibreMetaverse.RLV.RlvPermissionsService.HoverTextLocation,System.Nullable{System.Guid})`.
    pub fn can_show_hover_text(
        &self,
        location: libremetaverse_rlv::RlvPermissionsServiceHoverTextLocation,
        object_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowHoverText(LibreMetaverse.RLV.RlvPermissionsService.HoverTextLocation,System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowInv`.
    pub fn can_show_inv(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowInv",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowLoc`.
    pub fn can_show_loc(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowLoc",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowMiniMap`.
    pub fn can_show_mini_map(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowMiniMap",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNameTags(System.Nullable{System.Guid})`.
    pub fn can_show_name_tags(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNameTags(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNames(System.Nullable{System.Guid})`.
    pub fn can_show_names(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNames(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNearby`.
    pub fn can_show_nearby(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowNearby",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanShowWorldMap`.
    pub fn can_show_world_map(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanShowWorldMap",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSit`.
    pub fn can_sit(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanSit")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanSitTp(System.Single@)`.
    pub fn can_sit_tp(&self, max_distance: &mut f32) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanSitTp(System.Single@)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanStandTp`.
    pub fn can_stand_tp(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanStandTp",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanStartIM(System.Guid)`.
    pub fn can_start_im(
        &self,
        user_id: libremetaverse_types::compat::Guid,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanStartIM(System.Guid)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTPLure(System.Nullable{System.Guid})`.
    pub fn can_tp_lure(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanTPLure(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTempRun`.
    pub fn can_temp_run(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanTempRun",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTouch(LibreMetaverse.RLV.RlvPermissionsService.TouchLocation,System.Guid,System.Nullable{System.Guid},System.Nullable{System.Single})`.
    pub fn can_touch(
        &self,
        location: libremetaverse_rlv::RlvPermissionsServiceTouchLocation,
        prim_id: libremetaverse_types::compat::Guid,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
        distance: Option<Option<f32>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanTouch(LibreMetaverse.RLV.RlvPermissionsService.TouchLocation,System.Guid,System.Nullable{System.Guid},System.Nullable{System.Single})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLm`.
    pub fn can_tp_lm(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLm")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLoc`.
    pub fn can_tp_loc(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLoc")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLocal(System.Single@)`.
    pub fn can_tp_local(&self, max_distance: &mut f32) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanTpLocal(System.Single@)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanTpRequest(System.Nullable{System.Guid})`.
    pub fn can_tp_request(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanTpRequest(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanUnsit`.
    pub fn can_unsit(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.RLV.RlvPermissionsService.CanUnsit")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanViewNote`.
    pub fn can_view_note(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanViewNote",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanViewScript`.
    pub fn can_view_script(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanViewScript",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.CanViewTexture`.
    pub fn can_view_texture(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.CanViewTexture",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.GetCameraRestrictions`.
    pub fn get_camera_restrictions(
        &self,
    ) -> Result<libremetaverse_rlv::CameraRestrictions, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.GetCameraRestrictions",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptPermissions`.
    pub fn is_auto_accept_permissions(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptPermissions",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptTp(System.Nullable{System.Guid})`.
    pub fn is_auto_accept_tp(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptTp(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptTpRequest(System.Nullable{System.Guid})`.
    pub fn is_auto_accept_tp_request(
        &self,
        user_id: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoAcceptTpRequest(System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoDenyPermissions`.
    pub fn is_auto_deny_permissions(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.IsAutoDenyPermissions",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.IsPermissive`.
    pub fn is_permissive(&self) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvPermissionsService.IsPermissive",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.TryGetMaxFarTouchDistance(System.Single@)`.
    pub fn try_get_max_far_touch_distance(&self, max_distance: &mut f32) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvPermissionsService.TryGetMaxFarTouchDistance(System.Single@)"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.TryGetRedirChatChannels(System.Collections.Generic.IReadOnlyList{System.Int32}@)`.
    pub fn try_get_redir_chat_channels(&self, channels: &mut Vec<i32>) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvPermissionsService.TryGetRedirChatChannels(System.Collections.Generic.IReadOnlyList{System.Int32}@)"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvPermissionsService.TryGetRedirEmoteChannels(System.Collections.Generic.IReadOnlyList{System.Int32}@)`.
    pub fn try_get_redir_emote_channels(&self, channels: &mut Vec<i32>) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvPermissionsService.TryGetRedirEmoteChannels(System.Collections.Generic.IReadOnlyList{System.Int32}@)"
        )
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvPermissionsService.HoverTextLocation`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvPermissionsServiceHoverTextLocation {
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.HoverTextLocation.Hud`.
    Hud = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.HoverTextLocation.World`.
    World = 0,
}

/// C# type: `T:LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvPermissionsServiceObjectLocation {
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation.Attached`.
    Attached = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation.Hud`.
    Hud = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.ObjectLocation.RezzedInWorld`.
    RezzedInWorld = 2,
}

/// C# type: `T:LibreMetaverse.RLV.RlvPermissionsService.TouchLocation`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvPermissionsServiceTouchLocation {
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.TouchLocation.AttachedOther`.
    AttachedOther = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.TouchLocation.AttachedSelf`.
    AttachedSelf = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.TouchLocation.Hud`.
    Hud = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvPermissionsService.TouchLocation.RezzedInWorld`.
    RezzedInWorld = 3,
}

/// C# type: `T:LibreMetaverse.RLV.RlvRestriction`.
pub struct RlvRestriction;
impl RlvRestriction {
    /// C# member: `M:LibreMetaverse.RLV.RlvRestriction.#ctor(LibreMetaverse.RLV.RlvRestrictionType,System.Guid,System.String,System.Collections.Generic.ICollection{System.Object})`.
    pub fn new(
        behavior: libremetaverse_rlv::RlvRestrictionType,
        sender: libremetaverse_types::compat::Guid,
        sender_name: String,
        args: Vec<libremetaverse_types::compat::Object>,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestriction.#ctor(LibreMetaverse.RLV.RlvRestrictionType,System.Guid,System.String,System.Collections.Generic.ICollection{System.Object})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestriction.Equals(System.Object)`.
    pub fn equals(&self, obj: Option<libremetaverse_types::compat::Object>) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvRestriction.Equals(System.Object)"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestriction.GetHashCode`.
    pub fn get_hash_code(&self) -> i32 {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.RLV.RlvRestriction.GetHashCode")
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestriction.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.RLV.RlvRestriction.ToString")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.Args`.
    pub fn args(
        &self,
    ) -> libremetaverse_types::compat::ImmutableList<libremetaverse_types::compat::Object> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvRestriction.Args")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.Behavior`.
    pub fn behavior(&self) -> libremetaverse_rlv::RlvRestrictionType {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvRestriction.Behavior")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.IsException`.
    pub fn is_exception(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvRestriction.IsException")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.OriginalBehavior`.
    pub fn original_behavior(&self) -> libremetaverse_rlv::RlvRestrictionType {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvRestriction.OriginalBehavior"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.Sender`.
    pub fn sender(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvRestriction.Sender")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvRestriction.SenderName`.
    pub fn sender_name(&self) -> String {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvRestriction.SenderName")
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvRestrictionManager`.
pub struct RlvRestrictionManager;
impl RlvRestrictionManager {
    /// C# member: `E:LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated`.
    pub fn subscribe_restriction_updated(
        &self,
        handler: Option<
            libremetaverse_types::compat::EventHandler<
                libremetaverse_rlv::event_arguments::RestrictionUpdatedEventArgs,
            >,
        >,
    ) -> libremetaverse_types::compat::Subscription {
        libremetaverse_types::unimplemented_api!(
            "E:LibreMetaverse.RLV.RlvRestrictionManager.RestrictionUpdated"
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.FindRestrictions(System.String,System.Nullable{System.Guid})`.
    pub fn find_restrictions(
        &self,
        behavior_name_filter: Option<String>,
        sender_filter: Option<Option<libremetaverse_types::compat::Guid>>,
    ) -> Result<Vec<libremetaverse_rlv::RlvRestriction>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.FindRestrictions(System.String,System.Nullable{System.Guid})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.GetLockedFolders`.
    pub fn get_locked_folders(
        &self,
    ) -> Result<
        std::collections::HashMap<
            libremetaverse_types::compat::Guid,
            libremetaverse_rlv::LockedFolderPublic,
        >,
        crate::Error,
    > {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.GetLockedFolders",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.GetRestrictionsByType(LibreMetaverse.RLV.RlvRestrictionType)`.
    pub fn get_restrictions_by_type(
        &self,
        restriction_type: libremetaverse_rlv::RlvRestrictionType,
    ) -> Result<Vec<libremetaverse_rlv::RlvRestriction>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.GetRestrictionsByType(LibreMetaverse.RLV.RlvRestrictionType)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.GetTrackedPrimIds`.
    pub fn get_tracked_prim_ids(
        &self,
    ) -> Result<Box<dyn Iterator<Item = libremetaverse_types::compat::Guid>>, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.GetTrackedPrimIds",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.RemoveRestrictionsForObjectsAsync(System.Collections.Generic.IEnumerable{System.Guid},System.Threading.CancellationToken)`.
    pub async fn remove_restrictions_for_objects(
        &self,
        prim_ids: Box<dyn Iterator<Item = libremetaverse_types::compat::Guid>>,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.RemoveRestrictionsForObjectsAsync(System.Collections.Generic.IEnumerable{System.Guid},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvRestrictionManager.TryGetLockedFolder(System.Guid,LibreMetaverse.RLV.LockedFolderPublic@)`.
    pub fn try_get_locked_folder(
        &self,
        folder_id: libremetaverse_types::compat::Guid,
        locked_folder: &mut Option<libremetaverse_rlv::LockedFolderPublic>,
    ) -> bool {
        libremetaverse_types::unimplemented_api!(
            "M:LibreMetaverse.RLV.RlvRestrictionManager.TryGetLockedFolder(System.Guid,LibreMetaverse.RLV.LockedFolderPublic@)"
        )
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvRestrictionType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvRestrictionType {
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AcceptPermission`.
    AcceptPermission = 79,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AcceptTp`.
    AcceptTp = 56,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AcceptTpRequest`.
    AcceptTpRequest = 57,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AddAttach`.
    AddAttach = 74,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AddOutfit`.
    AddOutfit = 77,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AllowIdle`.
    AllowIdle = 118,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AlwaysRun`.
    AlwaysRun = 5,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AttachAllThis`.
    AttachAllThis = 88,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AttachAllThisExcept`.
    AttachAllThisExcept = 92,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AttachThis`.
    AttachThis = 87,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.AttachThisExcept`.
    AttachThisExcept = 91,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamAvDist`.
    CamAvDist = 21,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDistMax`.
    CamDistMax = 10,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDistMin`.
    CamDistMin = 12,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDrawAlphaMax`.
    CamDrawAlphaMax = 17,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDrawAlphaMin`.
    CamDrawAlphaMin = 16,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDrawColor`.
    CamDrawColor = 18,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDrawMax`.
    CamDrawMax = 15,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamDrawMin`.
    CamDrawMin = 14,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamTextures`.
    CamTextures = 22,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamUnlock`.
    CamUnlock = 19,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamZoomMax`.
    CamZoomMax = 6,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.CamZoomMin`.
    CamZoomMin = 7,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ChatNormal`.
    ChatNormal = 26,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ChatShout`.
    ChatShout = 25,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ChatWhisper`.
    ChatWhisper = 27,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DefaultWear`.
    DefaultWear = 76,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DenyPermission`.
    DenyPermission = 80,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Detach`.
    Detach = 73,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DetachAllThis`.
    DetachAllThis = 86,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DetachAllThisExcept`.
    DetachAllThisExcept = 90,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DetachThis`.
    DetachThis = 85,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.DetachThisExcept`.
    DetachThisExcept = 89,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Edit`.
    Edit = 64,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.EditAttach`.
    EditAttach = 68,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.EditObj`.
    EditObj = 66,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.EditWorld`.
    EditWorld = 67,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Emote`.
    Emote = 33,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.FarTouch`.
    FarTouch = 93,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Fly`.
    Fly = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Interact`.
    Interact = 103,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Jump`.
    Jump = 3,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Notify`.
    Notify = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Permissive`.
    Permissive = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvChat`.
    RecvChat = 29,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvChatFrom`.
    RecvChatFrom = 31,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvChatSec`.
    RecvChatSec = 30,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvEmote`.
    RecvEmote = 35,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvEmoteFrom`.
    RecvEmoteFrom = 36,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvEmoteSec`.
    RecvEmoteSec = 37,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvIm`.
    RecvIm = 46,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvImFrom`.
    RecvImFrom = 48,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RecvImSec`.
    RecvImSec = 47,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RedirChat`.
    RedirChat = 28,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RedirEmote`.
    RedirEmote = 34,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RemAttach`.
    RemAttach = 75,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.RemOutfit`.
    RemOutfit = 78,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Rez`.
    Rez = 65,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendChannel`.
    SendChannel = 38,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendChannelExcept`.
    SendChannelExcept = 40,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendChannelSec`.
    SendChannelSec = 39,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendChat`.
    SendChat = 24,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendGesture`.
    SendGesture = 32,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendIm`.
    SendIm = 41,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendImSec`.
    SendImSec = 42,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SendImTo`.
    SendImTo = 43,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamAvDistMax`.
    SetCamAvDistMax = 11,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamAvDistMin`.
    SetCamAvDistMin = 13,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamFovMax`.
    SetCamFovMax = 9,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamFovMin`.
    SetCamFovMin = 8,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamTextures`.
    SetCamTextures = 23,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetCamUnlock`.
    SetCamUnlock = 20,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetDebug`.
    SetDebug = 116,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetEnv`.
    SetEnv = 117,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SetGroup`.
    SetGroup = 115,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Share`.
    Share = 69,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShareSec`.
    ShareSec = 70,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SharedUnwear`.
    SharedUnwear = 84,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SharedWear`.
    SharedWear = 83,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowHoverText`.
    ShowHoverText = 112,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowHoverTextAll`.
    ShowHoverTextAll = 111,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowHoverTextHud`.
    ShowHoverTextHud = 113,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowHoverTextWorld`.
    ShowHoverTextWorld = 114,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowInv`.
    ShowInv = 60,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowLoc`.
    ShowLoc = 106,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowMiniMap`.
    ShowMiniMap = 105,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowNameTags`.
    ShowNameTags = 109,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowNames`.
    ShowNames = 107,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowNamesSec`.
    ShowNamesSec = 108,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowNearby`.
    ShowNearby = 110,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ShowWorldMap`.
    ShowWorldMap = 104,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Sit`.
    Sit = 72,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.SitTp`.
    SitTp = 54,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.StandTp`.
    StandTp = 55,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.StartIm`.
    StartIm = 44,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.StartImTo`.
    StartImTo = 45,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TempRun`.
    TempRun = 4,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchAll`.
    TouchAll = 95,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchAttach`.
    TouchAttach = 99,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchAttachOther`.
    TouchAttachOther = 101,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchAttachSelf`.
    TouchAttachSelf = 100,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchFar`.
    TouchFar = 94,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchHud`.
    TouchHud = 102,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchMe`.
    TouchMe = 98,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchThis`.
    TouchThis = 97,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TouchWorld`.
    TouchWorld = 96,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpLm`.
    TpLm = 50,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpLoc`.
    TpLoc = 51,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpLocal`.
    TpLocal = 49,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpLure`.
    TpLure = 52,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpLureSec`.
    TpLureSec = 53,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpRequest`.
    TpRequest = 58,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.TpRequestSec`.
    TpRequestSec = 59,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.UnsharedUnwear`.
    UnsharedUnwear = 82,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.UnsharedWear`.
    UnsharedWear = 81,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.Unsit`.
    Unsit = 71,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ViewNote`.
    ViewNote = 61,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ViewScript`.
    ViewScript = 62,
    /// C# member: `F:LibreMetaverse.RLV.RlvRestrictionType.ViewTexture`.
    ViewTexture = 63,
}

/// C# type: `T:LibreMetaverse.RLV.RlvService`.
pub struct RlvService;
impl RlvService {
    /// C# member: `F:LibreMetaverse.RLV.RlvService.RLVVersion`.
    pub const RLV_VERSION: &'static str = "RestrainedLove viewer v3.4.3 (RLVa 2.4.2)";
    /// C# member: `F:LibreMetaverse.RLV.RlvService.RLVVersionNum`.
    pub const RLV_VERSION_NUM: &'static str = "2040213";
    /// C# member: `M:LibreMetaverse.RLV.RlvService.#ctor(LibreMetaverse.RLV.IRlvQueryCallbacks,LibreMetaverse.RLV.IRlvActionCallbacks,System.Boolean)`.
    pub fn new(
        callbacks: Box<dyn libremetaverse_rlv::IRlvQueryCallbacks>,
        action_callbacks: Box<dyn libremetaverse_rlv::IRlvActionCallbacks>,
        enabled: bool,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.#ctor(LibreMetaverse.RLV.IRlvQueryCallbacks,LibreMetaverse.RLV.IRlvActionCallbacks,System.Boolean)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ProcessInstantMessageAsync(System.String,System.Guid,System.Threading.CancellationToken)`.
    pub async fn process_instant_message(
        &self,
        message: String,
        sender_id: libremetaverse_types::compat::Guid,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ProcessInstantMessageAsync(System.String,System.Guid,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ProcessMessageAsync(System.String,System.Guid,System.String,System.Threading.CancellationToken)`.
    pub async fn process_message(
        &self,
        message: String,
        sender_id: libremetaverse_types::compat::Guid,
        sender_name: String,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ProcessMessageAsync(System.String,System.Guid,System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportInventoryOfferAcceptedAsync(System.String,System.Threading.CancellationToken)`.
    pub async fn report_inventory_offer_accepted(
        &self,
        folder_path: String,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportInventoryOfferAcceptedAsync(System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportInventoryOfferDeclinedAsync(System.String,System.Threading.CancellationToken)`.
    pub async fn report_inventory_offer_declined(
        &self,
        folder_path: String,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportInventoryOfferDeclinedAsync(System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportItemAttachedAsync(System.Guid,System.Boolean,LibreMetaverse.RLV.RlvAttachmentPoint,System.Threading.CancellationToken)`.
    pub async fn report_item_attached(
        &self,
        object_folder_id: libremetaverse_types::compat::Guid,
        is_shared: bool,
        attachment_point: libremetaverse_rlv::RlvAttachmentPoint,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportItemAttachedAsync(System.Guid,System.Boolean,LibreMetaverse.RLV.RlvAttachmentPoint,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportItemDetachedAsync(System.Guid,System.Guid,System.Guid,System.Boolean,LibreMetaverse.RLV.RlvAttachmentPoint,System.Threading.CancellationToken)`.
    pub async fn report_item_detached(
        &self,
        item_id: libremetaverse_types::compat::Guid,
        prim_id: libremetaverse_types::compat::Guid,
        object_folder_id: libremetaverse_types::compat::Guid,
        is_shared: bool,
        attachment_point: libremetaverse_rlv::RlvAttachmentPoint,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportItemDetachedAsync(System.Guid,System.Guid,System.Guid,System.Boolean,LibreMetaverse.RLV.RlvAttachmentPoint,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportItemUnwornAsync(System.Guid,System.Guid,System.Boolean,LibreMetaverse.RLV.RlvWearableType,System.Threading.CancellationToken)`.
    pub async fn report_item_unworn(
        &self,
        item_id: libremetaverse_types::compat::Guid,
        object_folder_id: libremetaverse_types::compat::Guid,
        is_shared: bool,
        wearable_type: libremetaverse_rlv::RlvWearableType,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportItemUnwornAsync(System.Guid,System.Guid,System.Boolean,LibreMetaverse.RLV.RlvWearableType,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportItemWornAsync(System.Guid,System.Boolean,LibreMetaverse.RLV.RlvWearableType,System.Threading.CancellationToken)`.
    pub async fn report_item_worn(
        &self,
        object_folder_id: libremetaverse_types::compat::Guid,
        is_shared: bool,
        wearable_type: libremetaverse_rlv::RlvWearableType,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportItemWornAsync(System.Guid,System.Boolean,LibreMetaverse.RLV.RlvWearableType,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportSendPublicMessageAsync(System.String,System.Threading.CancellationToken)`.
    pub async fn report_send_public_message(
        &self,
        message: String,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportSendPublicMessageAsync(System.String,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportSitAsync(System.Nullable{System.Guid},System.Threading.CancellationToken)`.
    pub async fn report_sit(
        &self,
        object_id: Option<Option<libremetaverse_types::compat::Guid>>,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportSitAsync(System.Nullable{System.Guid},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvService.ReportUnsitAsync(System.Nullable{System.Guid},System.Threading.CancellationToken)`.
    pub async fn report_unsit(
        &self,
        object_id: Option<Option<libremetaverse_types::compat::Guid>>,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvService.ReportUnsitAsync(System.Nullable{System.Guid},System.Threading.CancellationToken)",
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.Blacklist`.
    pub fn blacklist(&self) -> libremetaverse_rlv::RlvBlacklist {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Blacklist")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.Commands`.
    pub fn commands(&self) -> libremetaverse_rlv::RlvCommandProcessor {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Commands")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.EnableInstantMessageProcessing`.
    pub fn enable_instant_message_processing(&self) -> bool {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvService.EnableInstantMessageProcessing"
        )
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvService.EnableInstantMessageProcessing`.
    pub fn set_enable_instant_message_processing(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!(
            "P:LibreMetaverse.RLV.RlvService.EnableInstantMessageProcessing"
        )
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.Enabled`.
    pub fn enabled(&self) -> bool {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Enabled")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvService.Enabled`.
    pub fn set_enabled(&mut self, value: bool) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Enabled")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.Permissions`.
    pub fn permissions(&self) -> libremetaverse_rlv::RlvPermissionsService {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Permissions")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvService.Restrictions`.
    pub fn restrictions(&self) -> libremetaverse_rlv::RlvRestrictionManager {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvService.Restrictions")
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvSharedFolder`.
pub struct RlvSharedFolder;
impl RlvSharedFolder {
    /// C# member: `M:LibreMetaverse.RLV.RlvSharedFolder.#ctor(System.Guid,System.String)`.
    pub fn new(id: libremetaverse_types::compat::Guid, name: String) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvSharedFolder.#ctor(System.Guid,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvSharedFolder.AddChild(System.Guid,System.String)`.
    pub fn add_child(
        &self,
        id: libremetaverse_types::compat::Guid,
        name: String,
    ) -> Result<libremetaverse_rlv::RlvSharedFolder, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvSharedFolder.AddChild(System.Guid,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvSharedFolder.AddItem(System.Guid,System.String,System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvWearableType},System.Nullable{LibreMetaverse.RLV.RlvGestureState})`.
    pub fn add_item(
        &self,
        id: libremetaverse_types::compat::Guid,
        name: String,
        is_link: bool,
        attached_to: Option<Option<libremetaverse_rlv::RlvAttachmentPoint>>,
        attached_prim_id: Option<Option<libremetaverse_types::compat::Guid>>,
        worn_on: Option<Option<libremetaverse_rlv::RlvWearableType>>,
        gesture_state: Option<Option<libremetaverse_rlv::RlvGestureState>>,
    ) -> Result<libremetaverse_rlv::RlvInventoryItem, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.RLV.RlvSharedFolder.AddItem(System.Guid,System.String,System.Boolean,System.Nullable{LibreMetaverse.RLV.RlvAttachmentPoint},System.Nullable{System.Guid},System.Nullable{LibreMetaverse.RLV.RlvWearableType},System.Nullable{LibreMetaverse.RLV.RlvGestureState})",
        )
    }
    /// C# member: `M:LibreMetaverse.RLV.RlvSharedFolder.ToString`.
    pub fn to_string(&self) -> String {
        libremetaverse_types::unimplemented_api!("M:LibreMetaverse.RLV.RlvSharedFolder.ToString")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Children`.
    pub fn children(&self) -> Vec<libremetaverse_rlv::RlvSharedFolder> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Children")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Id`.
    pub fn id(&self) -> libremetaverse_types::compat::Guid {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Id")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Items`.
    pub fn items(&self) -> Vec<libremetaverse_rlv::RlvInventoryItem> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Items")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Name`.
    pub fn name(&self) -> String {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Name")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Name`.
    pub fn set_name(&mut self, value: String) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Name")
    }
    /// C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Parent`.
    pub fn parent(&self) -> Option<libremetaverse_rlv::RlvSharedFolder> {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Parent")
    }
    /// Setter for C# member: `P:LibreMetaverse.RLV.RlvSharedFolder.Parent`.
    pub fn set_parent(&mut self, value: Option<libremetaverse_rlv::RlvSharedFolder>) {
        libremetaverse_types::unimplemented_api!("P:LibreMetaverse.RLV.RlvSharedFolder.Parent")
    }
}

/// C# type: `T:LibreMetaverse.RLV.RlvWearableType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum RlvWearableType {
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Alpha`.
    Alpha = 13,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Eyes`.
    Eyes = 3,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Gloves`.
    Gloves = 9,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Hair`.
    Hair = 2,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Invalid`.
    Invalid = 255,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Jacket`.
    Jacket = 8,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Pants`.
    Pants = 5,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Physics`.
    Physics = 15,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Shape`.
    Shape = 0,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Shirt`.
    Shirt = 4,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Shoes`.
    Shoes = 6,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Skin`.
    Skin = 1,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Skirt`.
    Skirt = 12,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Socks`.
    Socks = 7,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Tattoo`.
    Tattoo = 14,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Underpants`.
    Underpants = 11,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Undershirt`.
    Undershirt = 10,
    /// C# member: `F:LibreMetaverse.RLV.RlvWearableType.Universal`.
    Universal = 16,
}

pub mod event_arguments {
    /// C# type: `T:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs`.
    pub struct RestrictionUpdatedEventArgs;
    impl RestrictionUpdatedEventArgs {
        /// C# member: `M:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.#ctor(LibreMetaverse.RLV.RlvRestriction,System.Boolean,System.Boolean)`.
        pub fn new(
            restriction: libremetaverse_rlv::RlvRestriction,
            is_new: bool,
            is_deleted: bool,
        ) -> Result<Self, crate::Error> {
            libremetaverse_types::not_implemented(
                "M:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.#ctor(LibreMetaverse.RLV.RlvRestriction,System.Boolean,System.Boolean)",
            )
        }
        /// C# member: `P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.IsDeleted`.
        pub fn is_deleted(&self) -> bool {
            libremetaverse_types::unimplemented_api!(
                "P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.IsDeleted"
            )
        }
        /// C# member: `P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.IsNew`.
        pub fn is_new(&self) -> bool {
            libremetaverse_types::unimplemented_api!(
                "P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.IsNew"
            )
        }
        /// C# member: `P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.Restriction`.
        pub fn restriction(&self) -> libremetaverse_rlv::RlvRestriction {
            libremetaverse_types::unimplemented_api!(
                "P:LibreMetaverse.RLV.EventArguments.RestrictionUpdatedEventArgs.Restriction"
            )
        }
    }
}
