@class UIPanGestureRecognizer, _UIHyperregionUnion, SBSystemGestureManager, SBWindowScene, NSDictionary, SBPIPPinchGestureRecognizer, SBSystemPointerInteractionManager, SBPIPInteractionSettings, NSMutableArray, NSMutableDictionary, UIView, NSString, _SBPIPInteractionControllerTransitionInfo, UIViewFloatAnimatableProperty, SBPIPRotationGestureRecognizer, _UIHyperInteractor, SBPIPInteractionControllerVisualizationView, SBPIPContentViewLayoutSettings; @protocol SBPIPInteractionControllerDelegate, BSInvalidatable, SBPIPInteractionControllerDataSource; @interface SBPIPInteractionController : NSObject <UIGestureRecognizerDelegate, SBPIPSystemGestureRecognizerDelegate, PTSettingsKeyPathObserver, SBSystemPointerInteractionDelegate, SBPIPPositionHyperregionComposerDelegate> { id<SBPIPInteractionControllerDelegate> _delegate; UIView *_interactionTargetView; NSString *_shortDescription; long long _shouldStash; BOOL _didLastSettleInStashedState; BOOL _didHandleGestureEndState; BOOL _gesturesWereCancelled; BOOL _isChangingSize; BOOL _threeTouchesPanDetected; SBSystemGestureManager *_systemGestureManagerForResizing; SBSystemPointerInteractionManager *_systemPointerInteractionManager; unsigned long long _hoveringOverEdge; unsigned long long _pointerIsHoveringOverEdge; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _pointerRegion; struct CGSize { double width; double height; } _toBeAppliedPreferredContentSize; UIViewFloatAnimatableProperty *_layoutProgressProperty; unsigned long long _allLayoutSessionUpdateReasons; unsigned long long _gesturesEndedLayoutReason; SBPIPPinchGestureRecognizer *_pinchGestureRecognizer; SBPIPRotationGestureRecognizer *_rotationGestureRecognizer; UIPanGestureRecognizer *_panGestureRecognizer; UIPanGestureRecognizer *_edgeResizeGestureRecognizer; UIPanGestureRecognizer *_externalPanDrivingGestureRecognizer; UIPanGestureRecognizer *_panWhileResizingGestureRecognizer; struct SBPIPPositionGeometryContext { struct CGSize { double width; double height; } pipCurrentSize; struct CGSize { double width; double height; } pipLastSteadySize; struct CGSize { double width; double height; } pipStashedSize; struct CGPoint { double x; double y; } pipAnchorPointOffset; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } containerBounds; struct UIEdgeInsets { double top; double left; double bottom; double right; } edgeInsets; struct UIEdgeInsets { double top; double left; double bottom; double right; } minimumPadding; struct UIEdgeInsets { double top; double left; double bottom; double right; } stashedMinimumPadding; unsigned long long offscreenCorners; long long orientation; } _geometryContext; NSDictionary *_resolvedPositionRegionsMap; NSMutableArray *_positionRegionComposers; _UIHyperregionUnion *_stashedLeftRegion; _UIHyperregionUnion *_stashedRightRegion; _UIHyperInteractor *_positionInteractor; _UIHyperInteractor *_rotationInteractor; _UIHyperInteractor *_scaleInteractor; double _pinchGestureBaselineScale; double _edgeResizeGestureBaselineWidthScale; double _edgeResizeGestureBaselineHeightScale; double _edgeResizeGestureBaselineWidth; double _edgeResizeGestureBaselineHeight; double _pinchGestureScaleFactor; double _lastStashedProgress; struct CGPoint { double x; double y; } _panGestureLocationOffset; struct CGPoint { double x; double y; } _anchorPoint; struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } _stashTabCompensationTransform; struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } _rotationTransform; unsigned long long _inFlightAnimatedLayouts; id /* block */ _pendingInteractionCompletion; SBPIPInteractionSettings *_interactionSettings; id<BSInvalidatable> _stateCaptureInvalidatable; SBPIPContentViewLayoutSettings *_layoutSettings; UIView *_pointerHitTestBlocker; SBPIPInteractionControllerVisualizationView *_positionRegionVisualizationView; SBWindowScene *_targetWindowScene; NSMutableDictionary *_scenePersistentIdentifierToEdgeInsets; NSMutableDictionary *_scenePersistentIdentifierToStashedPadding; _SBPIPInteractionControllerTransitionInfo *_pendingTransition; } @property (readonly, weak, nonatomic) id<SBPIPInteractionControllerDataSource> dataSource; @property (readonly, weak, nonatomic) UIView *targetView; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } initialFrame; @property (readonly, nonatomic) double preferredScale; @property (readonly, nonatomic) double currentNormalizedScale; @property (readonly, nonatomic) double stashProgress; @property (readonly, nonatomic) SBPIPContentViewLayoutSettings *layoutSettings; @property (readonly, nonatomic) struct CGPoint { double x0; double x1; } position; @property (readonly, nonatomic) unsigned long long canonicalPosition; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } nonoperationalFrame; @property (readonly, nonatomic) NSString *debugName; @property (weak, nonatomic) UIView *targetOverlayView; @property (nonatomic, getter=isEnabled) BOOL enabled; @property (nonatomic, getter=isStashed) BOOL stashed; @property (nonatomic) double preferredNormalizedScale; @property (nonatomic) struct CGSize { double width; double height; } preferredContentSize; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_setupStateCapture; - (BOOL)_isRotating; - (void)settings:(id)a0 changedValueForKeyPath:(id)a1; - (void)dealloc; - (void)_removeGestureRecognizers; - (BOOL)gestureRecognizer:(id)a0 shouldReceiveTouch:(id)a1; - (void)_setupGestureRecognizers; - (BOOL)gestureRecognizerShouldBegin:(id)a0; - (id)styleForRegion:(id)a0 forView:(id)a1; - (BOOL)isRotating; - (id)regionAtLocation:(struct CGPoint { double x0; double x1; })a0 forView:(id)a1; - (BOOL)shouldBeginPointerInteractionRequest:(id)a0 atLocation:(struct CGPoint { double x0; double x1; })a1 forView:(id)a2; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })pointerInteractionHitTestInsetsForView:(id)a0; - (BOOL)isPinching; - (void).cxx_destruct; - (void)_updatePreferredContentSize; - (void)pointerWillExitRegion; - (BOOL)gestureRecognizer:(id)a0 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)a1; - (double)_currentScale; - (BOOL)_isInteractive; - (BOOL)_isPanning; - (BOOL)_isPinching; - (void)handlePinchGesture:(id)a0; - (void)handlePanGesture:(id)a0; - (struct CGPoint { double x0; double x1; })_currentPosition; - (double)_currentRotation; - (void)_setDefaults; - (void)_enumerateComposers:(id)a0 usingBlock:(id /* block */)a1; - (struct CGSize { double x0; double x1; })_lastSteadySize; - (void)_updateSettingsDrivenParameters; - (BOOL)_isSizeAffectedByLayoutReasons:(unsigned long long)a0; - (void)__handleGesturesEndedState:(id)a0; - (void)__moveToAnchorPoint:(struct CGPoint { double x0; double x1; })a0 reason:(id)a1; - (unsigned long long)__traitsForGesturesReasons:(unsigned long long)a0; - (void)_adjustContentViewAnchorPointForGestureRecognizer:(id)a0; - (void)_applyPreferredScale; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_cachedEdgeInsetsForScene:(id)a0; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_cachedStashedPaddingForScene:(id)a0; - (void)_cancelAllGestures; - (unsigned long long)_canonicalPositionForPoint:(struct CGPoint { double x0; double x1; })a0; - (struct CGPoint { double x0; double x1; })_closestToDefaultCornersPosition; - (struct CGPoint { double x0; double x1; })_convertPoint:(struct CGPoint { double x0; double x1; })a0 fromWindowForView:(id)a1 toWindowScene:(id)a2; - (struct CGPoint { double x0; double x1; })_convertPoint:(struct CGPoint { double x0; double x1; })a0 toReferenceSpaceFromView:(id)a1; - (struct CGPoint { double x0; double x1; })_convertPointToInteractionTargetView:(struct CGPoint { double x0; double x1; })a0 fromSystemGestureRecognizer:(id)a1; - (struct CGPoint { double x0; double x1; })_currentPositionForLayoutReason:(unsigned long long)a0; - (struct SBPIPPositionInteractionStateContext { BOOL x0; BOOL x1; BOOL x2; BOOL x3; struct CGPoint { double x0; double x1; } x4; struct CGPoint { double x0; double x1; } x5; struct CGPoint { double x0; double x1; } x6; double x7; double x8; })_currentPositionInteractionStateContext; - (struct CGSize { double x0; double x1; })_currentSizeForLayoutReason:(unsigned long long)a0; - (void)_enumeratePositionRegionComposersUsingBlock:(id /* block */)a0; - (void)_handleGestureBeganState:(id)a0; - (void)_handleGestureEndedState:(id)a0; - (BOOL)_hasInFlightLayoutAnimations; - (BOOL)_hasValidInteractionTargetView; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_inFlightHitTestPadding; - (struct CGPoint { double x0; double x1; })_interactionTargetViewPresentationPosition; - (BOOL)_isGestureRecognizerRecognizing:(id)a0; - (BOOL)_isGesturing; - (BOOL)_isPositionCloserToStashedLeftRegion:(struct CGPoint { double x0; double x1; })a0 closestPointOut:(struct CGPoint { double x0; double x1; } *)a1; - (BOOL)_isPreferredContentSizeDirty; - (BOOL)_isSystemGestureRecognizer:(id)a0; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_minimumStashedPadding:(struct UIEdgeInsets { double x0; double x1; double x2; double x3; })a0; - (void)_noteStashProgress:(double)a0 withReason:(unsigned long long)a1; - (void)_performInitialLayoutIfNeeded; - (double)_proratedScaleForNormalizedScale:(double)a0; - (BOOL)_regionIsStashedOne:(id)a0; - (void)_removePointerInteraction; - (void)_resetAnchorPoint; - (id)_rotationHyperregion; - (struct CGPoint { double x0; double x1; })_roundPosition:(struct CGPoint { double x0; double x1; })a0 forSize:(struct CGSize { double x0; double x1; })a1; - (id)_scaleHyperregion; - (BOOL)_setEdgeInsets:(struct UIEdgeInsets { double x0; double x1; double x2; double x3; })a0 forScene:(id)a1; - (void)_setNeedsLayoutForTraits:(unsigned long long)a0 withReason:(unsigned long long)a1 behavior:(int)a2; - (void)_setNeedsLayoutForTraits:(unsigned long long)a0 withReason:(unsigned long long)a1 behavior:(int)a2 layoutCompletion:(id /* block */)a3 interactionCompletion:(id /* block */)a4; - (void)_setPreferredScale:(double)a0 additionalReasons:(unsigned long long)a1 animationBehavior:(int)a2; - (BOOL)_setStashedPadding:(struct UIEdgeInsets { double x0; double x1; double x2; double x3; })a0 forScene:(id)a1; - (void)_setupDefaultInteractorsAndHyperRegions; - (void)_setupForInitialFrame; - (void)_setupPointerInteraction; - (void)_sizeChangeBeganWithBehavior:(int)a0; - (void)_sizeChangeEnded; - (double)_stashProgressForPosition:(struct CGPoint { double x0; double x1; })a0; - (struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })_stashTabCompensationTransformForStashProgress:(double)a0 reason:(unsigned long long)a1; - (struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })_transformFromDisplayArrangeSpaceToWindowScene:(id)a0; - (struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })_transformToDisplayArrangementSpaceFromWindowScene:(id)a0; - (void)_updateGeometryContextBoundsUsingMainDisplayWindowScene; - (BOOL)_updateGeometryContextUsingTargetViewBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 orientation:(long long)a1; - (void)_updateHyperregionVisualizationIfNecessary; - (void)_updateInteractorsAndCommit:(BOOL)a0; - (void)_updatePIPSizeGeometryContext; - (void)_updatePositionRegionComposers; - (void)_updateResolvedPositionHyperRegionsMapWithGeometry:(struct SBPIPPositionGeometryContext { struct CGSize { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; struct CGSize { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x4; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x5; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x6; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x7; unsigned long long x8; long long x9; })a0 interactionState:(struct SBPIPPositionInteractionStateContext { BOOL x0; BOOL x1; BOOL x2; BOOL x3; struct CGPoint { double x0; double x1; } x4; struct CGPoint { double x0; double x1; } x5; struct CGPoint { double x0; double x1; } x6; double x7; double x8; })a1; - (void)_updateTargetWindowSceneIfNeeded; - (void)_updateTargetWindowSceneIfNeededUpdatingInteractors:(BOOL)a0; - (void)addPositionRegionComposer:(id)a0; - (struct CGPoint { double x0; double x1; })edgeResizeAnchorPoint; - (void)finishTransitionToWindowScene:(id)a0; - (BOOL)gestureRecognizerShouldFailForMovementPastHysteresis:(id)a0; - (void)handleEdgeResizeGesture:(id)a0; - (void)handleExternalPanGesture:(id)a0; - (void)handleRotationGesture:(id)a0; - (id)initWithInteractionTargetView:(id)a0 preferredContentSize:(struct CGSize { double x0; double x1; })a1 interactionSettings:(id)a2 dataSource:(id)a3 delegate:(id)a4; - (void)layoutInteractedTraits:(unsigned long long)a0 withReason:(unsigned long long)a1 source:(id)a2; - (void)layoutWithFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 reason:(id)a1 source:(id)a2 usingDisplayArrangementSpace:(BOOL)a3; - (id)positionHyperregion; - (void)positionRegionComposerDidInvalidate:(id)a0; - (void)positionRegionComposerNeedsUpdate:(id)a0 behavior:(int)a1; - (void)prepareForTransitionToWindowScene:(id)a0; - (void)recalculateScale:(out double *)a0 baselineScale:(out double *)a1 forTranslationInView:(struct CGPoint { double x0; double x1; })a2; - (struct SBPIPPositionGeometryContext { struct CGSize { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; struct CGSize { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x4; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x5; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x6; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x7; unsigned long long x8; long long x9; })regionComposer:(id)a0 transformGeometryContext:(struct SBPIPPositionGeometryContext { struct CGSize { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; struct CGSize { double x0; double x1; } x2; struct CGPoint { double x0; double x1; } x3; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x4; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x5; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x6; struct UIEdgeInsets { double x0; double x1; double x2; double x3; } x7; unsigned long long x8; long long x9; })a1 toWindowScene:(id)a2; - (void)reloadHyperregionComposerData; - (void)reloadInsets; - (void)setContainerSize:(struct CGSize { double x0; double x1; })a0 withOrientation:(long long)a1 scene:(id)a2; - (void)setContentLayoutSettings:(id)a0 animationBehavior:(int)a1; - (void)setPlatformMetrics:(id)a0 contentSize:(struct CGSize { double x0; double x1; })a1 animationBehavior:(int)a2; - (void)setPreferredNormalizedScale:(double)a0 additionalReasons:(unsigned long long)a1 animationBehavior:(int)a2; - (id)targetWindowSceneForRegionComposer:(id)a0; - (void)toggleUserPreferredScale; @end