@class NSNumber, NSString, _UIFocusUpdateRequest, UIResponder, NSTimer, _UIFocusSystemSceneComponent, _UIFocusLinearMovementCache, UIView, _UIFocusUpdateThrottle, _UIFocusCastingController, _UIFocusSoundGenerator, UIFocusAnimationCoordinator, UIFocusMovementAction, _UIFocusAnimationCoordinatorManager, NSArray, _UIFocusItemFrameReporter, _UIFocusEffectManager, _UIFocusGroupHistory, _UIFocusEventDelivery; @protocol UIFocusEnvironment, _UIFocusRegionContainer, _UIFocusSystemDelegate, UIFocusItemContainer, _UIFocusBehavior, UIFocusItem, _UIFocusHapticFeedbackGenerator; @interface UIFocusSystem : NSObject <_UIFocusEnvironmentInternal, _UIFocusEnvironmentPrivate> { _UIFocusSystemSceneComponent *_sceneComponent; _UIFocusUpdateRequest *_pendingFocusUpdateRequest; id _deferredFocusUpdateTarget; id _appearingFocusEnvironment; id _disappearingFocusEnvironment; UIResponder *_overridePreferredFirstResponder; NSTimer *_hasSeenFocusedItemDidExpireTimer; struct { unsigned char hasReceivedTeardownNotification : 1; unsigned char shouldIgnoreFocusUpdateIfNeeded : 1; unsigned char isPendingFocusRestoration : 1; unsigned char isPostponingUpdates : 1; unsigned char hasSeenFocusedItem : 1; unsigned char wantsModernRing : 1; unsigned char delegateRespondsToPreferredFocusEnvironments : 1; unsigned char delegateRespondsToPrefersDeferralForFocusUpdateInContext : 1; unsigned char delegateRespondsToShouldRestoreFocusInContext : 1; unsigned char delegateRespondsToDidFinishUpdatingFocusInContext : 1; unsigned char delegateRespondsToFocusMapContainer : 1; unsigned char delegateRespondsToFocusItemContainer : 1; } _flags; } @property (class, readonly, copy, nonatomic, getter=_allFocusSystems) NSArray *allFocusSystems; @property (retain, nonatomic, getter=_focusAnimationCoordinatorManager, setter=_setFocusAnimationCoordinatorManager:) _UIFocusAnimationCoordinatorManager *focusAnimationCoordinatorManager; @property (nonatomic) BOOL waitingForFocusMovementAction; @property (retain, nonatomic) UIFocusMovementAction *pendingFocusMovementAction; @property (readonly, nonatomic, getter=_focusEffectManager) _UIFocusEffectManager *focusEffectManager; @property (readonly, nonatomic) _UIFocusUpdateThrottle *updateThrottle; @property (weak, nonatomic, getter=_delegate, setter=_setDelegate:) id<_UIFocusSystemDelegate> delegate; @property (readonly, weak, nonatomic, getter=_focusedView) UIView *focusedView; @property (readonly, nonatomic, getter=_currentFocusAnimationCoordinator) UIFocusAnimationCoordinator *currentFocusAnimationCoordinator; @property (readonly, weak, nonatomic, getter=_previousFocusedItem) id previousFocusedItem; @property (readonly, weak, nonatomic, getter=_hostFocusSystem) UIFocusSystem *hostFocusSystem; @property (readonly, weak, nonatomic, getter=_preferredFirstResponderFocusSystem) UIFocusSystem *preferredFirstResponderFocusSystem; @property (readonly, weak, nonatomic, getter=_preferredFirstResponder) UIResponder *preferredFirstResponder; @property (retain, nonatomic, getter=_focusSoundGenerator, setter=_setFocusSoundGenerator:) _UIFocusSoundGenerator *focusSoundGenerator; @property (retain, nonatomic, getter=_focusItemFrameReporter, setter=_setFocusItemFrameReporter:) _UIFocusItemFrameReporter *focusItemFrameReporter; @property (retain, nonatomic, getter=_focusCastingController, setter=_setFocusCastingController:) _UIFocusCastingController *focusCastingController; @property (retain, nonatomic, getter=_focusMovementCache, setter=_setFocusMovementCache:) _UIFocusLinearMovementCache *focusMovementCache; @property (retain, nonatomic, getter=_focusHapticFeedbackGenerator, setter=_setFocusHapticFeedbackGenerator:) id<_UIFocusHapticFeedbackGenerator> focusHapticFeedbackGenerator; @property (readonly, nonatomic, getter=_focusGroupHistory) _UIFocusGroupHistory *focusGroupHistory; @property (readonly, nonatomic) _UIFocusEventDelivery *_eventDelivery; @property (readonly, nonatomic, getter=_focusBehavior) id<_UIFocusBehavior> focusBehavior; @property (nonatomic, getter=_isEnabled, setter=_setEnabled:) BOOL enabled; @property (retain, nonatomic, getter=_overrideFocusDeferralBehavior, setter=_setOverrideFocusDeferralBehavior:) NSNumber *overrideFocusDeferralBehavior; @property (readonly, nonatomic, getter=_disappearingFocusEnvironment) id disappearingFocusEnvironment; @property (readonly, weak, nonatomic) id _deepestPreferredFocusEnvironment; @property (readonly, weak, nonatomic) id focusedItem; @property (readonly, weak, nonatomic, getter=_focusMapContainer) id<_UIFocusRegionContainer> focusMapContainer; @property (nonatomic) BOOL areChildrenFocused; @property (readonly, nonatomic, getter=_isEligibleForFocusInteraction) BOOL eligibleForFocusInteraction; @property (readonly, nonatomic, getter=_isEligibleForFocusOcclusion) BOOL eligibleForFocusOcclusion; @property (readonly, nonatomic, getter=_preferredFocusMovementStyle) long long preferredFocusMovementStyle; @property (readonly, copy, nonatomic, getter=_linearFocusMovementSequences) NSArray *linearFocusMovementSequences; @property (readonly, copy, nonatomic) NSArray *preferredFocusEnvironments; @property (readonly, weak, nonatomic) id parentFocusEnvironment; @property (readonly, nonatomic) id focusItemContainer; @property (readonly, weak, nonatomic) UIView *preferredFocusedView; @property (readonly, copy, nonatomic) NSString *focusGroupIdentifier; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)registerURL:(id)a0 forSoundIdentifier:(id)a1; + (BOOL)environment:(id)a0 containsEnvironment:(id)a1; + (id)focusSystemForEnvironment:(id)a0; + (id)_focusSystemForEnvironment:(id)a0; - (void)setNeedsFocusUpdate; - (id)init; - (void)_focusBehaviorDidChange:(id)a0; - (id)_init; - (void)updateFocusIfNeeded; - (void).cxx_destruct; - (BOOL)_prefersFocusContainment; - (void)didUpdateFocusInContext:(id)a0 withAnimationCoordinator:(id)a1; - (BOOL)shouldUpdateFocusInContext:(id)a0; - (long long)_effectiveFocusDeferralBehavior; - (void)_focusEnvironmentWillDisappear:(id)a0; - (id)_sceneComponent; - (void)_startDeferringFocusIfSupported; - (id)_topEnvironment; - (BOOL)_updateFocusWithContext:(id)a0 report:(id)a1; - (void)_clearDeferredFocusUpdateTarget; - (void)_cancelPendingFocusRestoration; - (id)_configureFocusDeferralIfNecessaryForContext:(id)a0 report:(id)a1; - (id)_contextForUpdateToEnvironment:(id)a0 withAnimationCoordinator:(id)a1; - (id)_contextForUpdateToEnvironment:(id)a0 withAnimationCoordinator:(id)a1 allowsOverridingPreferedFocusEnvironments:(BOOL)a2 allowsDeferral:(BOOL)a3; - (BOOL)_debug_isEnvironmentEligibleForFocusUpdate:(id)a0 debugReport:(id)a1; - (void)_didFinishUpdatingFocusInContext:(id)a0; - (void)_dropFocusAndStartDeferring:(BOOL)a0 suppressUpdate:(BOOL)a1; - (void)_enableWithoutFocusRestoration; - (void)_firstResponderDidUpdateFromResponder:(id)a0; - (void)_focusEnvironmentDidAppear:(id)a0; - (void)_focusEnvironmentDidBecomeVisible:(id)a0; - (void)_focusEnvironmentWillBecomeInvisible:(id)a0; - (id)_focusItemForValidation; - (BOOL)_focusSystemIsValid; - (id)_focusedItemOrDeferralTarget; - (id)_focusedWindow; - (void)_handleFocusMovementAction:(id)a0; - (void)_hasSeenFocusedItemDidExpire; - (BOOL)_hasValidItemForCurrentDeferralState; - (id)_initWithFocusEnabled:(BOOL)a0 sceneComponent:(id)a1; - (BOOL)_isEnvironmentEligibleForFocusUpdate:(id)a0 fallbackToEnvironment:(id *)a1 debugReport:(id)a2; - (BOOL)_performDeferredFocusUpdateIfAvailable; - (void)_performWithoutFocusUpdates:(id /* block */)a0; - (BOOL)_postsFocusUpdateNotifications; - (id)_preferredFirstResponderFocusSystemForFocusedItem:(id)a0; - (BOOL)_prefersDeferralForFocusUpdateInContext:(id)a0; - (void)_prepareForTeardown; - (void)_reevaluateLockedEnvironments; - (void)_requestFocusEffectUpdateToEnvironment:(id)a0; - (void)_requestFocusUpdate:(id)a0; - (BOOL)_requiresFocusedItemToHaveContainingView; - (void)_resetFocusDeferral; - (BOOL)_safari_moveFocusToNextGroup; - (BOOL)_safari_moveFocusToPreviousGroup; - (void)_sendDidUpdateFocusNotificationsInContext:(id)a0 withAnimationCoordinator:(id)a1; - (void)_sendNotificationsForFocusUpdateInContext:(id)a0 withAnimationCoordinator:(id)a1 usingBlock:(id /* block */)a2; - (void)_sendWillUpdateFocusNotificationsInContext:(id)a0 withAnimationCoordinator:(id)a1; - (void)_setDeferredFocusUpdateTarget:(id)a0; - (void)_setEnabled:(BOOL)a0 withAnimationCoordinator:(id)a1; - (void)_setNeedsFocusRestoration; - (BOOL)_shouldRestoreFocusInContext:(id)a0; - (id)_simulatedNonDeferredProgrammaticFocusUpdateToEnvironment:(id)a0; - (id)_syncResponderWithFocusUpdateContext:(id)a0; - (void)_tickHasSeenFocusedItemTimer:(BOOL)a0; - (void)_uiktest_disableFocusDeferral; - (void)_uiktest_disableThrottle; - (void)_uiktest_setPreviousFocusedItem:(id)a0; - (BOOL)_uiktest_updateFocusToItem:(id)a0; - (void)_updateFocusEffectForItem:(id)a0; - (BOOL)_updateFocusImmediatelyToEnvironment:(id)a0; - (BOOL)_updateFocusImmediatelyToEnvironment:(id)a0 startDeferringOnLostFocus:(BOOL)a1 suppressLostFocusUpdate:(BOOL)a2; - (BOOL)_updateFocusImmediatelyWithContext:(id)a0; - (void)_updateFocusUpdateThrottle; - (void)_updateWantsModernRing; - (void)_validateFocusedItemForFirstResponder:(id)a0; - (id)_validatedAppearingFocusEnvironmentRequest; - (id)_validatedPendingFocusUpdateRequest; - (void)invalidateFocusItemContainer:(id)a0; - (void)requestFocusUpdateToEnvironment:(id)a0; @end