@class NSUUID, SBViewMorphAnimatorContentClippingView, NSHashTable, BSAbsoluteMachTimer, UIView, SBViewMorphAnimatorContentBlackCurtainView, SBFFluidBehaviorSettings, NSString, SBWindowScene; @protocol SBViewMorphAnimatorDelegate, SBViewMorphAnimatorDataSource; @interface SBViewMorphAnimator : NSObject <SBViewMorphAnimatorObserver> @property (retain, nonatomic) NSHashTable *observers; @property (nonatomic) unsigned long long startedSourceAnimations; @property (nonatomic) unsigned long long startedTargetAnimations; @property (nonatomic) unsigned long long completedSourceAnimations; @property (nonatomic) unsigned long long completedTargetAnimations; @property (nonatomic) BOOL invalidated; @property (nonatomic) BOOL sourceAllEnded; @property (nonatomic) BOOL targetExternalPlaceholderAllEnded; @property (nonatomic) BOOL sourceContentFrameWasAltered; @property (copy, nonatomic) id /* block */ sourceAllAnimationsCompletionBlock; @property (retain, nonatomic) BSAbsoluteMachTimer *allAnimationsTimeoutTimer; @property (retain, nonatomic) BSAbsoluteMachTimer *morphAnimationTimeout; @property (retain, nonatomic) BSAbsoluteMachTimer *sourceAnimationsCompletionContinueBlockTimeoutTimer; @property (retain, nonatomic) SBViewMorphAnimatorContentBlackCurtainView *sourceBlackCurtainView; @property (retain, nonatomic) SBViewMorphAnimatorContentClippingView *targetContentClippingView; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetContentClippingViewInitialFrame; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } sourceContentContainerFrame; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } sourceContentFrame; @property (nonatomic) double sourceCornerRadius; @property (readonly, nonatomic) NSUUID *uuid; @property (weak, nonatomic) UIView *sourceView; @property (weak, nonatomic) UIView *targetView; @property (weak, nonatomic) UIView *targetContentView; @property (readonly, weak, nonatomic) SBWindowScene *windowScene; @property (nonatomic) long long fromOrientation; @property (nonatomic) long long toOrientation; @property (retain, nonatomic) SBFFluidBehaviorSettings *sourceClipAnimationSettings; @property (retain, nonatomic) SBFFluidBehaviorSettings *targetClipAnimationSettings; @property (weak, nonatomic) id<SBViewMorphAnimatorDelegate> delegate; @property (weak, nonatomic) id<SBViewMorphAnimatorDataSource> dataSource; @property (nonatomic) BOOL automaticallyStartSourceAnimations; @property (nonatomic) BOOL automaticallyStartTargetAnimations; @property (nonatomic) long long direction; @property (readonly, nonatomic) struct CGPoint { double x; double y; } sourceFinalCenter; @property (readonly, nonatomic) double sourceFinalScale; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } sourceClippingFrame; @property (readonly, nonatomic) double sourceClippingCornerRadius; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetSourcePinningFrame; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetFinalFrame; @property (readonly, nonatomic) double targetCornerRadius; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (id)init; - (void)dealloc; - (void)_reset; - (void)_enumerateObserversRespondingToSelector:(SEL)a0 usingBlock:(id /* block */)a1; - (void).cxx_destruct; - (void)_removeMatchMoveAnimation; - (void)addObserver:(id)a0; - (void)cancel:(id /* block */)a0; - (BOOL)_isReversed; - (void)_updateParameters; - (void)interrupt:(id /* block */)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_sourceContentContainerFrameForSourceView:(id)a0 withTargetDataSource:(id)a1; - (void)noteWillRemoveTargeMatchMoveAnimationAtFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 withinSourceFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)_checkAnimationsDependencies:(id /* block */)a0; - (void)_continueSourceAnimationsCompletionPendingBlock; - (void)_handleHandoffTimeout; - (BOOL)_isTargetSourcePinningFrameEquivalentToSourceViewFrame; - (void)_noteAnimatorWasCanceled; - (void)_noteAnimatorWasInterrupted; - (void)_noteDidEndAllAnimations; - (void)_removeBlackCurtainView; - (void)_removeTargetClippingView; - (void)_resetAllAnimations; - (struct CGPoint { double x0; double x1; })_source:(id)a0 finalCenterWithFinalScale:(double)a1 contentFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 targetFinalFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a3; - (double)_sourceFinalScaleWithContentFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 targetFinalFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)_startMorphAnimationTimeoutTimer; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_targetInitialClippingBoundsWithSourceContentFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 sourceFinalScale:(double)a1 targetViewBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_targetSourcePinningFrameWithSourceContentFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 targetFinalFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_validatedSourceContentFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 withinSourceView:(id)a1 withSourceFinalScale:(double)a2; - (void)didEndSourceAnimations:(unsigned long long)a0 finished:(BOOL)a1 continueBlock:(id /* block */)a2; - (void)didEndTargetAnimations:(unsigned long long)a0 finished:(BOOL)a1 continueBlock:(id /* block */)a2; - (id)initWithUUID:(id)a0 windowScene:(id)a1 direction:(long long)a2; - (void)noteSourceAnimationsDidEnd:(unsigned long long)a0 finished:(BOOL)a1 continueBlock:(id /* block */)a2; - (void)noteSourceAnimationsWillStart:(unsigned long long)a0; - (void)noteTargetAnimationsDidEnd:(unsigned long long)a0 finished:(BOOL)a1 continueBlock:(id /* block */)a2; - (void)noteTargetAnimationsWillStart:(unsigned long long)a0; - (BOOL)preflightCheck; - (BOOL)startSourceAnimations:(unsigned long long)a0; - (BOOL)startTargetAnimations:(unsigned long long)a0; - (void)willStartSourceAnimations:(unsigned long long)a0; - (void)willStartTargetAnimations:(unsigned long long)a0; @end