// @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.Utilities.ConnectionManager`.
pub struct ConnectionManager;
impl ConnectionManager {
    /// C# member: `M:LibreMetaverse.Utilities.ConnectionManager.#ctor(LibreMetaverse.GridClient,System.Int32)`.
    pub fn new(
        client: libremetaverse::GridClient,
        timer_frequency: i32,
    ) -> Result<Self, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.ConnectionManager.#ctor(LibreMetaverse.GridClient,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.ConnectionManager.PersistentLogin(LibreMetaverse.GridClient,System.String,System.String,System.String,System.String,System.String,System.String)`.
    pub async fn persistent_login(
        client: libremetaverse::GridClient,
        first_name: String,
        last_name: String,
        password: String,
        user_agent: String,
        start: String,
        author: String,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.ConnectionManager.PersistentLogin(LibreMetaverse.GridClient,System.String,System.String,System.String,System.String,System.String,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.ConnectionManager.StayInSim(System.UInt64,LibreMetaverse.Vector3)`.
    pub fn stay_in_sim(
        &self,
        handle: u64,
        desired_position: libremetaverse_types::Vector3,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.ConnectionManager.StayInSim(System.UInt64,LibreMetaverse.Vector3)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.ConnectionManager.Stop`.
    pub fn stop(&self) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented("M:LibreMetaverse.Utilities.ConnectionManager.Stop")
    }
}

/// C# type: `T:LibreMetaverse.Utilities.Realism`.
pub struct Realism;
impl Realism {
    /// C# member: `M:LibreMetaverse.Utilities.Realism.Chat(LibreMetaverse.GridClient,System.String)`.
    pub fn chat_with_grid_client_string(
        client: libremetaverse::GridClient,
        message: String,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.Realism.Chat(LibreMetaverse.GridClient,System.String)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.Realism.Chat(LibreMetaverse.GridClient,System.String,LibreMetaverse.ChatType,System.Int32)`.
    pub fn chat_with_grid_client_string_chat_type_int32(
        client: libremetaverse::GridClient,
        message: String,
        type_: libremetaverse::ChatType,
        cps: i32,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.Realism.Chat(LibreMetaverse.GridClient,System.String,LibreMetaverse.ChatType,System.Int32)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.Realism.ChatAsync(LibreMetaverse.GridClient,System.String,LibreMetaverse.ChatType,System.Int32,System.Threading.CancellationToken)`.
    pub async fn chat_with_grid_client_string_chat_type_int32_cancellation_token(
        client: libremetaverse::GridClient,
        message: String,
        type_: libremetaverse::ChatType,
        cps: i32,
        cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
    ) -> Result<(), crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.Realism.ChatAsync(LibreMetaverse.GridClient,System.String,LibreMetaverse.ChatType,System.Int32,System.Threading.CancellationToken)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.Realism.Shoot(LibreMetaverse.GridClient)`.
    pub fn shoot_with_grid_client(
        client: libremetaverse::GridClient,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.Realism.Shoot(LibreMetaverse.GridClient)",
        )
    }
    /// C# member: `M:LibreMetaverse.Utilities.Realism.Shoot(LibreMetaverse.GridClient,LibreMetaverse.Vector3)`.
    pub fn shoot_with_grid_client_vector3(
        client: libremetaverse::GridClient,
        target: libremetaverse_types::Vector3,
    ) -> Result<bool, crate::Error> {
        libremetaverse_types::not_implemented(
            "M:LibreMetaverse.Utilities.Realism.Shoot(LibreMetaverse.GridClient,LibreMetaverse.Vector3)",
        )
    }
}

/// C# type: `T:LibreMetaverse.Utilities.WaterType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum WaterType {
    /// C# member: `F:LibreMetaverse.Utilities.WaterType.Dry`.
    Dry = 1,
    /// C# member: `F:LibreMetaverse.Utilities.WaterType.Underwater`.
    Underwater = 3,
    /// C# member: `F:LibreMetaverse.Utilities.WaterType.Unknown`.
    Unknown = 0,
    /// C# member: `F:LibreMetaverse.Utilities.WaterType.Waterfront`.
    Waterfront = 2,
}
