//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;

use crate::*;

/// Sound.
#[cfg(feature = "UIFocusSystem")]
impl UIFocusSystem {
    extern_methods!(
        #[cfg(feature = "UIFocus")]
        /// Registers a sound file for a given identifier.
        #[unsafe(method(registerURL:forSoundIdentifier:))]
        #[unsafe(method_family = none)]
        pub fn registerURL_forSoundIdentifier(
            sound_file_url: &NSURL,
            identifier: &UIFocusSoundIdentifier,
            mtm: MainThreadMarker,
        );
    );
}

/// UIFocusSystem.
#[cfg(all(
    feature = "UIResponder",
    feature = "UIScene",
    feature = "UIWindowScene"
))]
impl UIWindowScene {
    extern_methods!(
        #[cfg(feature = "UIFocusSystem")]
        /// Returns the focus system that is responsible for this scene or nil if this scene does not support focus.
        #[unsafe(method(focusSystem))]
        #[unsafe(method_family = none)]
        pub fn focusSystem(&self) -> Option<Retained<UIFocusSystem>>;
    );
}
