@class UIView, CKAppGrabberView, UILongPressGestureRecognizer, CKBrowserTransitionCoordinator, NSDate, NSMutableDictionary, IMBalloonPlugin, CKBrowserSwitcherCell, NSString, UIViewController, CKImmediatePanGestureRecognizer, UIViewPropertyAnimator; @protocol CKBrowserSwitcherViewControllerDelegate, CKBrowserTransitionCoordinatorDelegate, CKBrowserViewControllerProtocol; @interface CKBrowserSwitcherViewController : UIViewController { CKImmediatePanGestureRecognizer *_expandGestureTracker; UIViewPropertyAnimator *_expandPropertyAnimator; BOOL _isDoingExpandInteraction; BOOL _expandInteractionDidMove; BOOL _expandGestureStartedOnGrabber; double _expandGestureTranslationOffset; } @property (retain, nonatomic) UIView *contentView; @property (retain, nonatomic) CKBrowserTransitionCoordinator *transitionCoordinator; @property (retain, nonatomic) UIView *browserContainer; @property (retain, nonatomic) CKBrowserSwitcherCell *cell; @property (retain, nonatomic) NSMutableDictionary *livePluginIdentifierToTimestampMap; @property (retain, nonatomic) UILongPressGestureRecognizer *touchTracker; @property (retain, nonatomic) IMBalloonPlugin *currentVisiblePlugin; @property (retain, nonatomic) CKAppGrabberView *grabberView; @property (retain, nonatomic) UIView *shadowView; @property (nonatomic) BOOL insertedViaCollapse; @property (nonatomic, getter=isBrowserReadyForUserInteraction) BOOL browserViewReadyForUserInteraction; @property (nonatomic, getter=isDragging) BOOL dragging; @property (nonatomic, getter=isInDragAndDrop) BOOL inDragAndDrop; @property (nonatomic) BOOL interactiveExpandStarted; @property (retain, nonatomic) IMBalloonPlugin *balloonPlugin; @property (nonatomic, getter=isTransitioningFromSnapshotToLiveView) BOOL transitioningFromSnapshotToLiveView; @property (nonatomic, getter=isTransitioningExpandedState) BOOL transitioningExpandedState; @property (nonatomic) BOOL allowFooterLabelUpdates; @property (nonatomic) BOOL allowPluginLaunchNotifications; @property (copy, nonatomic) id /* block */ performAfterFirstLayoutBlock; @property (nonatomic) BOOL viewHasLaidOutSubviews; @property (retain, nonatomic) NSDate *timeOfLastScrollingDecelerationEnded; @property (nonatomic) BOOL browserIsLoadingCompact; @property (nonatomic) BOOL browserIsCollapsingFromFullscreen; @property (weak, nonatomic) id delegate; @property (readonly, nonatomic) UIViewController *currentViewController; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)layoutMarginsDidChange; - (void)viewWillAppear:(BOOL)a0; - (void)dealloc; - (id)traitCollection; - (void)traitCollectionDidChange:(id)a0; - (BOOL)gestureRecognizer:(id)a0 shouldReceiveTouch:(id)a1; - (void)viewDidLayoutSubviews; - (void)viewDidLoad; - (BOOL)gestureRecognizerShouldBegin:(id)a0; - (void)loadView; - (unsigned long long)supportedInterfaceOrientations; - (void)viewWillDisappear:(BOOL)a0; - (void).cxx_destruct; - (void)viewDidAppear:(BOOL)a0; - (void)viewWillTransitionToSize:(struct CGSize { double x0; double x1; })a0 withTransitionCoordinator:(id)a1; - (void)viewDidDisappear:(BOOL)a0; - (BOOL)gestureRecognizer:(id)a0 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)a1; - (double)_rubberBandOffsetWithoutDecorationForOffset:(double)a0 maxOffset:(double)a1 minOffset:(double)a2 range:(double)a3 outside:(BOOL *)a4; - (void)backdropView:(id)a0 didChangeToGraphicsQuality:(long long)a1; - (id)backdropView:(id)a0 willChangeToGraphicsQuality:(long long)a1; - (id)appIconOverride; - (void)browserTransitionCoordinator:(id)a0 expandedStateDidChange:(BOOL)a1 withReason:(long long)a2; - (void)reverseAndCleanupExpandAnimator; - (void)animateInCompactWithCompletion:(id /* block */)a0; - (struct CGSize { double x0; double x1; })_browserSize; - (BOOL)_currentPluginIsJellyfish; - (void)_handleRemoteViewControllerConnectionInterrupted:(id)a0; - (void)_handleVisibleSwitcherPluginsChanged:(id)a0; - (BOOL)_hasLandscapeGutters; - (void)_insertCurrentBrowserAndRemoveOldBrowsersIfNeeded; - (void)_loadBrowserForBalloonPlugin:(id)a0 datasource:(id)a1; - (void)_performAfterFirstLayout:(id /* block */)a0; - (BOOL)_pluginHasLiveBrowserViewInSwitcher:(id)a0; - (void)_removeBrowserFromViewHierarchy:(id)a0; - (void)_removeBrowserWithPluginIdentifierFromViewHierarchy:(id)a0; - (BOOL)_shouldLimitExpandGestureToGrabber; - (void)_snapshotCurrentViewController; - (BOOL)_switchToVisiblePluginWithIdentifier:(id)a0; - (void)_transitionSnapshotViewToBrowserView; - (void)_transitionSnapshotViewToBrowserViewAfterViewDidPrepareForDisplay:(id)a0; - (void)_updateActiveBrowserAlphaStateOnInsertForCurrentController:(id)a0 currentView:(id)a1; - (void)_updateActiveBrowserTimestampForCurrentBalloonPlugin; - (void)_updateBrowserViewPositionForPluginAndInsertIfNecessary:(id)a0; - (void)_updateCurrentBrowserSnapshotIfPossible; - (void)_updateVisibleBrowserView; - (id)activeBrowserView; - (void)animateOutCompactWithCompletion:(id /* block */)a0; - (id)appGrabberForBrowserTransitionCoordinator:(id)a0; - (void)appGrabberViewCloseButtonTapped:(id)a0; - (id)appTitleOverride; - (void)browserTransitionCoordinator:(id)a0 browserWillBecomeInactive:(id)a1; - (void)browserTransitionCoordinator:(id)a0 didSwitchToPlugin:(id)a1; - (void)browserTransitionCoordinator:(id)a0 didTransitionFromOrientation:(long long)a1 toOrientation:(long long)a2; - (void)browserTransitionCoordinator:(id)a0 hasUpdatedLastTouchDate:(id)a1; - (struct CGSize { double x0; double x1; })browserTransitionCoordinator:(id)a0 preferredSizeForBrowser:(id)a1; - (double)browserTransitionCoordinatorCollapsedContentHeight:(id)a0; - (void)browserTransitionCoordinatorDidCollapseOrDismiss:(id)a0 withReason:(long long)a1; - (void)browserTransitionCoordinatorDidTransitionOrPresentToFullscreen:(id)a0 withReason:(long long)a1; - (BOOL)browserTransitionCoordinatorShouldDismissOnDragSuccess:(id)a0; - (void)browserTransitionCoordinatorWantsPresentationOfAppManager:(id)a0; - (void)browserTransitionCoordinatorWantsPresentationOfAppStore:(id)a0; - (void)browserTransitionCoordinatorWillCollapseOrDismiss:(id)a0 withReason:(long long)a1; - (void)browserTransitionCoordinatorWillTransitionOrPresentToFullscreen:(id)a0 withReason:(long long)a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })cachedCompactFrameInWindowCoordsForBrowserTransitionCoordinator:(id)a0; - (void)cleanupExpandAnimatorState; - (void)dismissBrowserFullscreenAnimated:(BOOL)a0 withCompletion:(id /* block */)a1; - (void)dragManagerDidEndDragging:(id)a0; - (void)dragManagerDidStartDrag:(id)a0; - (void)dragManagerWillStartDrag:(id)a0; - (void)expandGestureTouchMoved:(id)a0; - (void)handleExpandButton:(id)a0; - (id)initWithConversation:(id)a0 sendDelegate:(id)a1 presentingViewController:(id)a2; - (BOOL)isBrowserSwitcherFirstLaunch; - (void)reinsertAppGrabberViewForBrowserTransitionCoordinator:(id)a0; - (double)restingContainerViewOriginY; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })restingGrabberFrame; - (void)saveSnapshotForCurrentBrowserViewControllerIfPossible; - (void)setCurrentViewController:(id)a0; - (void)setupPausedExpandAnimatorIfNeeded; - (BOOL)shouldAlwaysShowAppTitle; - (void)showBrowserFullscreenForPlugin:(id)a0 datasource:(id)a1; - (void)showBrowserFullscreenModalForPlugin:(id)a0 datasource:(id)a1 preferredContentSize:(struct CGSize { double x0; double x1; })a2; - (void)showBrowserInSwitcherForPlugin:(id)a0 datasource:(id)a1 reloadData:(BOOL)a2; - (void)showPlugin:(id)a0; - (void)stopExpandAnimatorAndCleanupState; - (void)transitionToCollapsed; - (void)transitionToFullscreen; - (id)transitionsPresentationViewController; - (void)unloadRemoteViewControllers; - (void)updateGrabberTitleAndIconForPlugin:(id)a0; @end