@class NSTimer, UIView, NSArray, NSDate, CAMZoomButtonPlatter, CAMFeedbackController, NSSet, CAMZoomDial, NSString, CAMZoomButton, CAMZoomControlButtonMaskView; @protocol CAMZoomControlDelegate; @interface CAMZoomControl : UIControl <CAMZoomButtonDelegate> { struct { BOOL respondsToDidChangeZoomFactor; BOOL respondsToCanToggleBetweenZoomFactors; BOOL respondsToToggleBetweenZoomFactors; BOOL respondsToCanPlayHaptics; BOOL respondsToDidChangeShowingZoomDial; } _delegateFlags; } @property (readonly, nonatomic) CAMZoomButton *_zoomButton; @property (readonly, nonatomic) CAMZoomDial *_zoomDial; @property (readonly, nonatomic) UIView *_dialClippingView; @property (readonly, nonatomic) CAMZoomControlButtonMaskView *_buttonMaskView; @property (readonly, nonatomic) CAMZoomButtonPlatter *_buttonPlatter; @property (nonatomic, setter=_setZoomControlMode:) long long _zoomControlMode; @property (retain, nonatomic, setter=_setZoomFactors:) NSArray *_zoomFactors; @property (retain, nonatomic, setter=_setDisplayZoomFactors:) NSArray *_displayZoomFactors; @property (retain, nonatomic, setter=_setZoomPoints:) NSArray *_zoomPoints; @property (nonatomic, setter=_setCreateButtonForMaxZoomFactor:) BOOL _createButtonForMaxZoomFactor; @property (nonatomic, getter=_isZoomDialEnabled, setter=_setZoomDialEnabled:) BOOL _zoomDialEnabled; @property (nonatomic, setter=_setShouldShowZoomDial:) BOOL _shouldShowZoomDial; @property (readonly, nonatomic) BOOL _shouldHideZoomButtonBackground; @property (nonatomic, getter=_isPlatterLayoutCompact, setter=_setPlatterLayoutCompact:) BOOL _platterLayoutCompact; @property (readonly, nonatomic) double _displayMinimumZoomFactor; @property (readonly, nonatomic) double _displayMaximumZoomFactor; @property (readonly, nonatomic) NSArray *_switchOverZoomFactors; @property (readonly, nonatomic) BOOL _shouldSnapDialToSwitchOverZoomFactors; @property (readonly, nonatomic) BOOL _shouldUseZoomDialMask; @property (readonly, nonatomic, getter=_isButtonPlatterSupportedForConfiguration) BOOL _buttonPlatterSupportedForConfiguration; @property (readonly, nonatomic) BOOL _shouldShowButtonPlatter; @property (nonatomic, setter=_setStartTouchLocation:) struct CGPoint { double x; double y; } _startTouchLocation; @property (nonatomic, setter=_setPreviousTouchLocation:) struct CGPoint { double x; double y; } _previousTouchLocation; @property (nonatomic, setter=_setPreviousTouchTime:) double _previousTouchTime; @property (nonatomic, getter=_isEligibleForSwipeDownToDismiss, setter=_setEligibleForSwipeDownToDismiss:) BOOL _eligibleForSwipeDownToDismiss; @property (nonatomic, getter=_isEligibleForZoomFactorLabelTaps, setter=_setEligibleForZoomFactorLabelTaps:) BOOL _eligibleForZoomFactorLabelTaps; @property (retain, nonatomic, setter=_setZoomDialVisibilityTimer:) NSTimer *_zoomDialVisibilityTimer; @property (retain, nonatomic, setter=_setStartTimeForHideAnimationInProgress:) NSDate *_startTimeForHideAnimationInProgress; @property (nonatomic, setter=_setHideAnimationInProgressDuration:) double _hideAnimationInProgressDuration; @property (retain, nonatomic, setter=_setHighlightedZoomButton:) CAMZoomButton *_highlightedZoomButton; @property (readonly, nonatomic) CAMFeedbackController *_feedbackController; @property (retain, nonatomic, setter=_setSignificantHapticDisplayValues:) NSArray *_significantHapticDisplayValues; @property (retain, nonatomic, setter=_setSignificantHapticDisplayValueEpsilons:) NSArray *_significantHapticDisplayValueEpsilons; @property (retain, nonatomic, setter=_setSignificantHapticDisplayValueSwitchOverIndexes:) NSSet *_significantHapticDisplayValueSwitchOverIndexes; @property (nonatomic) long long _lastHapticZone; @property (nonatomic, setter=_setSnappedZoomFactor:) double _snappedZoomFactor; @property (nonatomic, setter=_setUnsnappingProgress:) double _unsnappingProgress; @property (readonly, nonatomic) double displayZoomValue; @property (readonly, nonatomic) NSArray *zoomPoints; @property (nonatomic) long long preferredCustomLens; @property (nonatomic) double leftMargin; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } contentInsets; @property (nonatomic) double zoomButtonMaxYWhenContracted; @property (readonly, nonatomic) double zoomDialBorderWidth; @property (nonatomic) double zoomDialRadius; @property (nonatomic) double zoomDialContentMaskingHeight; @property (weak, nonatomic) id<CAMZoomControlDelegate> delegate; @property (nonatomic) long long layoutStyle; @property (readonly, nonatomic) BOOL allowsContinuousZoom; @property (readonly, nonatomic) long long zoomButtonContentType; @property (nonatomic) double zoomFactor; @property (readonly, nonatomic) double minimumZoomFactor; @property (readonly, nonatomic) double maximumZoomFactor; @property (readonly, nonatomic) long long zoomButtonSymbol; @property (nonatomic) double minAvailableZoomFactor; @property (nonatomic) double maxAvailableZoomFactor; @property (readonly, nonatomic, getter=isShowingZoomDial) BOOL showingZoomDial; @property (nonatomic) BOOL hideFocalLengthLabels; @property (nonatomic) long long orientation; @property (nonatomic) long long zoomButtonAccessoryState; @property (readonly, nonatomic, getter=isPlatterExpanded) BOOL platterExpanded; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_setButtonPlatterCollapsed:(BOOL)a0 animated:(BOOL)a1; - (void)_updateButtonAccessoryAnimated:(BOOL)a0; - (void)setOrientation:(long long)a0 animated:(BOOL)a1; - (id)initWithLayoutStyle:(long long)a0; - (void)cancelTrackingWithEvent:(id)a0; - (void)traitCollectionDidChange:(id)a0; - (double)_displayZoomValueForZoomFactor:(double)a0; - (void)_setShouldShowZoomDial:(BOOL)a0 animationDuration:(long long)a1 afterDelay:(double)a2; - (double)_distanceFromDialClippingViewToPoint:(struct CGPoint { double x0; double x1; })a0; - (void)_handleAccessoryTappedForButton:(id)a0; - (void)setShouldShowZoomDial:(BOOL)a0 animationDuration:(long long)a1; - (void)setZoomButtonSymbol:(long long)a0 animated:(BOOL)a1; - (void)_setPlatterLayoutCompact:(BOOL)a0 animated:(BOOL)a1; - (void)setZoomButtonAccessoryState:(long long)a0 animated:(BOOL)a1; - (void)zoomButtonDidLayout; - (double)_normalizeValue:(double)a0 betweenMinimumValue:(double)a1 maximumValue:(double)a2; - (void)_configureForControlMode:(long long)a0 zoomFactor:(double)a1 zoomFactors:(id)a2 displayZoomFactors:(id)a3 zoomButtonContentType:(long long)a4 animated:(BOOL)a5; - (BOOL)_isWithinZoomButtonBoundsWithTouch:(id)a0; - (void)_handleButtonTappedForContinuousModeWithPlatter:(id)a0; - (void)_configureForControlMode:(long long)a0 zoomFactor:(double)a1 zoomPoints:(id)a2 zoomButtonContentType:(long long)a3 animated:(BOOL)a4; - (BOOL)_isPointWithinZoomButtonAccessory:(struct CGPoint { double x0; double x1; })a0; - (void)_setZoomDialEnabled:(BOOL)a0 animationDuration:(long long)a1; - (void)_updateHaptics:(BOOL)a0; - (double)_zoomFactorForDisplayZoomValue:(double)a0; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })alignmentRectInsets; - (void)_updateSubviewsAlphasWithDuration:(double)a0 forConfigurationChange:(BOOL)a1; - (BOOL)_isTouchWithinButtonPlatter:(id)a0; - (void)_cancelDelayedZoomDialVisibilityChange; - (double)_dampingFactorForDistanceFromDialForPoint:(struct CGPoint { double x0; double x1; })a0; - (void)removeAnimationFromView:(id)a0 forKeys:(id)a1; - (void)configureForZoomSymbolToggle; - (BOOL)continueTrackingWithTouch:(id)a0 withEvent:(id)a1; - (BOOL)configureForContinuousZoomWithZoomFactor:(double)a0 zoomPoints:(id)a1 createButtonForMaxZoomFactor:(BOOL)a2 compactPlatterLayout:(BOOL)a3 animated:(BOOL)a4; - (void)_updateDisplayZoomFactorsAnimated:(BOOL)a0; - (void)_handleButtonTappedForSelection:(id)a0; - (BOOL)beginTrackingWithTouch:(id)a0 withEvent:(id)a1; - (void)setLeftMargin:(double)a0 animated:(BOOL)a1; - (BOOL)_shouldInterceptTouchesForHidingZoomDial; - (void)_updateMaskViewForZoomButtonHighlightingTransform; - (void)_handleButtonTapped:(id)a0 forAccessoryTap:(BOOL)a1; - (double)_dampingFactorForMovementFromPoint:(struct CGPoint { double x0; double x1; })a0 toPoint:(struct CGPoint { double x0; double x1; })a1; - (double)_accelerationForMovementFromPointFromPoint:(struct CGPoint { double x0; double x1; })a0 toPoint:(struct CGPoint { double x0; double x1; })a1 elapsedTime:(double)a2; - (void)_updateDisplayedValuesAllowingFlashingSubstate:(BOOL)a0 animated:(BOOL)a1; - (void).cxx_destruct; - (void)_configureForControlMode:(long long)a0 zoomFactor:(double)a1 zoomPoints:(id)a2 zoomFactors:(id)a3 displayZoomFactors:(id)a4 createButtonForMaxZoomFactor:(BOOL)a5 zoomButtonContentType:(long long)a6 compactPlatterLayout:(BOOL)a7 animated:(BOOL)a8; - (void)configureForDualDeviceWithZoomFactor:(double)a0 minimumZoomFactor:(double)a1 displayMinimumZoomFactor:(double)a2 maximumZoomFactor:(double)a3 displayMaximumZoomFactor:(double)a4 dualCameraSwitchOverZoomFactor:(double)a5 displayDualCameraSwitchOverZoomFactor:(double)a6; - (void)_setZoomFactor:(double)a0 interactionType:(long long)a1 shouldNotifyDelegate:(BOOL)a2; - (void)_updateSignificantValuesForHaptics; - (unsigned long long)_numberOfZoomPlatterButtonsForZoomFactorCount:(unsigned long long)a0; - (double)_additionalAccelerationForMovementFromPoint:(struct CGPoint { double x0; double x1; })a0 toPoint:(struct CGPoint { double x0; double x1; })a1 deltaX:(double)a2; - (void)_cleanupForCancelTracking; - (void)_handleZoomDialVisibilityTimerFiredWithUserInfo:(id)a0; - (id)hitTest:(struct CGPoint { double x0; double x1; })a0 withEvent:(id)a1; - (long long)_hapticZoneForDisplayValue:(double)a0; - (BOOL)_isPointWithinButtonPlatter:(struct CGPoint { double x0; double x1; })a0; - (void)_setShouldShowZoomDial:(BOOL)a0 animationDuration:(long long)a1; - (id)_accessorizedZoomButton; - (void)configureForTripleDeviceWithZoomFactor:(double)a0 minimumZoomFactor:(double)a1 displayMinimumZoomFactor:(double)a2 maximumZoomFactor:(double)a3 displayMaximumZoomFactor:(double)a4 switchOverZoomFactor1:(double)a5 displaySwitchOverZoomFactor1:(double)a6 switchOverZoomFactor2:(double)a7 displaySwitchOverZoomFactor2:(double)a8; - (void)_updateZoomButtonTappableEdgeInsets; - (void)layoutSubviews; - (double)_dampingFactorForPerpendicularityFromPoint:(struct CGPoint { double x0; double x1; })a0 toPoint:(struct CGPoint { double x0; double x1; })a1; - (BOOL)_isTouchWithinZoomButtonAccessory:(id)a0; - (void)_handleButtonTappedForDualCameraMode; - (void)configureForSelectionOnlyWithDisplayZoomFactors:(id)a0 selectedIndex:(unsigned long long)a1 compactPlatterLayout:(BOOL)a2 animated:(BOOL)a3; - (void)configureForSingleCameraPlusToggleWithZoomFactor:(double)a0 minimumZoomFactor:(double)a1 displayMinimumZoomFactor:(double)a2 maximumZoomFactor:(double)a3 displayMaximumZoomFactor:(double)a4; - (void)endTrackingWithTouch:(id)a0 withEvent:(id)a1; - (void)configureForToggleOnlyWithZoomFactor:(double)a0 displayZoomFactor:(double)a1; - (void)_resetSnapping; - (void)_handleButtonTappedForSingleCameraZoomPlusToggle; - (void)_updateHapticEpsilons; @end