@class NSDictionary, PLImageGeometry, NSMutableArray, UILongPressGestureRecognizer, NSString, UIImage, PUPhotoEditToolActivationButton, PUPhotoEditToolbarButton, NSTimer, CEKBadgeTextView, NSMutableDictionary, NUCropModel, NUComposition, PUCropAspectFlipperView, PUAdjustmentsViewController, UIButton, NSObject, NSArray, UIView, PUCropToolControllerSpec, PUCropAspectViewController, PUCropPerspectiveAdjustmentsDataSource, PUCropPerspectiveView, PUCropAspect, PUVideoScrubberView, PUCropHandleView, PLPhotoEditRenderer, PUCropOverlayView; @protocol OS_dispatch_queue; @interface PUCropToolController : PUPhotoEditToolController <UIGestureRecognizerDelegate, PUCropTransformedImageViewDelegate, PUCropAspectViewControllerDelegate, PUCropPerspectiveAdjustmentsDataSourceDelegate, PUCropPerspectiveAdjustmentsDataSourceDelegate, PUAdjustmentViewControllerDelegate, PUVideoScrubberViewDelegate, UIPopoverPresentationControllerDelegate> @property (retain, nonatomic) PUAdjustmentsViewController *adjustmentsViewController; @property (retain, nonatomic) UIView *containerView; @property (retain, nonatomic) UIView *adjustmentPickerView; @property (retain, nonatomic) PUPhotoEditToolActivationButton *autoButton; @property (nonatomic) long long autoButtonMode; @property (retain, nonatomic) PUPhotoEditToolbarButton *rotateButton; @property (retain, nonatomic) PUPhotoEditToolbarButton *flipButton; @property (retain, nonatomic) PUPhotoEditToolbarButton *aspectButton; @property (retain, nonatomic) PUCropPerspectiveView *cropView; @property (retain, nonatomic) UIView *cropCanvasView; @property (retain, nonatomic) PUCropOverlayView *cropOverlayView; @property (retain, nonatomic) NSDictionary *cropHandleViewsByHandle; @property (retain, nonatomic) PUCropHandleView *selectedCropHandleView; @property (retain, nonatomic) UIView *rotateSnapshotView; @property (retain, nonatomic) PUCropAspectViewController *cropAspectViewController; @property (retain, nonatomic) PUCropAspectFlipperView *cropAspectFlipperView; @property (nonatomic) struct CGSize { double width; double height; } minimumViewCropRectSizeForHandleGesture; @property (retain, nonatomic) UIButton *aspectRatioLockButton; @property (retain, nonatomic) PUCropPerspectiveAdjustmentsDataSource *dataSource; @property (retain, nonatomic) NSMutableDictionary *initialLocationsInHandlesByHandle; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } initialHandlePanCropRect; @property (nonatomic) BOOL contentViewsHidden; @property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } previewViewInsets; @property (nonatomic) BOOL wantsPreviewViewHidden; @property (nonatomic) BOOL ignoreTrackingUpdates; @property (retain, nonatomic) NSMutableDictionary *animationsByKeyPath; @property (retain, nonatomic) NSMutableDictionary *animationTargetsByKeyPath; @property (nonatomic) unsigned long long rotatingAnimationCount; @property (nonatomic) unsigned long long contentViewsHiddenAnimationCount; @property (nonatomic, getter=isTrackingAdjustmentControl) BOOL trackingAdjustmentControl; @property (retain, nonatomic) NSTimer *badgeShowingExpirationTimer; @property (nonatomic) BOOL toolBadgeDoesHide; @property (nonatomic) BOOL modelLoadingSuspended; @property (nonatomic) BOOL loadingStateFromModel; @property (nonatomic) BOOL wasLoadingStateFromModelWhenTrackingBegan; @property (nonatomic) BOOL needsImageLoad; @property (nonatomic) BOOL initialImageLoaded; @property (nonatomic) BOOL needsMediaLoad; @property (nonatomic, getter=isActiveTool) BOOL activeTool; @property (nonatomic) BOOL needsModelLoad; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } cropViewFrameForLastModelLoad; @property (nonatomic, getter=isModelChangeLocal) BOOL modelChangeLocal; @property (retain, nonatomic) NUComposition *lastKnownComposition; @property (retain, nonatomic) PLPhotoEditRenderer *renderer; @property (retain, nonatomic) PLImageGeometry *geometry; @property (retain, nonatomic) NUCropModel *cropModel; @property (retain, nonatomic) UIImage *image; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } inputExtent; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } viewCropRect; @property (nonatomic) double straightenAngle; @property (nonatomic) double pitchAngle; @property (nonatomic) double yawAngle; @property (retain, nonatomic) PUCropAspect *cropAspect; @property (nonatomic) BOOL gridVisible; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } suggestedCrop; @property (nonatomic) double suggestedStraightenAngle; @property (nonatomic) BOOL hasAutoAppliedCropSuggestion; @property (nonatomic) BOOL hasAppliedCropSuggestion; @property (nonatomic) BOOL hasRequestedCropSuggestion; @property (nonatomic) BOOL editValuesCalculatorDidFinishComputingGeometricValues; @property (nonatomic) double suggestedPitchAngle; @property (nonatomic) double suggestedYawAngle; @property (nonatomic) BOOL hasAutoAppliedPerspectiveSuggestion; @property (nonatomic) BOOL hasAppliedPerspectiveSuggestion; @property (nonatomic) BOOL hasRequestedPerspectiveSuggestion; @property (retain, nonatomic) PUVideoScrubberView *videoScrubberView; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } videoScrubberSeekTime; @property (nonatomic) BOOL videoScrubberIsInteracting; @property (nonatomic) struct CGSize { double width; double height; } screenSize; @property (nonatomic) double screenScale; @property (retain, nonatomic) NSObject<OS_dispatch_queue> *imageLoadingQueue; @property (retain, nonatomic) NSMutableArray *imageLoadingQueueCompletionBlocks; @property (nonatomic) BOOL imageLoadingInProgress; @property (nonatomic) BOOL mediaViewLoadingInProgress; @property (retain, nonatomic) UILongPressGestureRecognizer *accessibilityLongPressGestureRecognizer; @property (retain, nonatomic) CEKBadgeTextView *badgeView; @property (readonly, nonatomic) NSArray *toolKeyCommands; @property (readonly, nonatomic) PUCropToolControllerSpec *toolControllerSpec; @property (nonatomic) long long initialAction; @property (retain, nonatomic) struct CGImage { } *gainMapImage; @property (nonatomic) float gainMapValue; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)updateViewConstraints; - (void)viewWillAppear:(BOOL)a0; - (void)dealloc; - (id)filter; - (void)viewDidLayoutSubviews; - (void)viewDidLoad; - (BOOL)isHDREnabled; - (id)initWithNibName:(id)a0 bundle:(id)a1; - (id)localizedName; - (void).cxx_destruct; - (void)viewDidAppear:(BOOL)a0; - (void)setDelegate:(id)a0; - (BOOL)wantsSecondaryToolbarVisible; - (BOOL)gestureRecognizer:(id)a0 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)a1; - (void)_accessibilityLongPressChanged:(id)a0; - (long long)_defaultOrientation; - (id)_animationForKeyPath:(id)a0; - (void)rotateAssetsClockwise:(id)a0; - (void)rotateAssetsCounterclockwise:(id)a0; - (void)_cancelDelayedRecomposeCropRect; - (void)_setAnimationTarget:(id)a0 forKeyPath:(id)a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_suggestedCropRectForImageRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (void)prepareForSave:(BOOL)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_addHeight:(double)a0 toRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 anchorTop:(BOOL)a2; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_addWidth:(double)a0 toRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 anchorLeft:(BOOL)a2; - (id)_animateValueFromValue:(double)a0 toValue:(double)a1 interpolation:(id /* block */)a2 completion:(id /* block */)a3; - (id)_animationTargetForKeyPath:(id)a0; - (struct CGVector { double x0; double x1; })_applyAspectOfCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 toHandleMovement:(struct CGVector { double x0; double x1; })a1; - (void)_applyCropAndPerspectiveSuggestion; - (void)_applyCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 straightenAngle:(double)a1 pitchAngle:(double)a2 yawAngle:(double)a3 isAutoCrop:(BOOL)a4; - (void)_aspectButtonTapped:(id)a0; - (void)_aspectLockButtonTapped; - (void)_autoApplyCropAndPerspectiveSuggestionIfNeeded; - (void)_autoRecomposeCropRect; - (void)_cancelAnimationForKeyPath:(id)a0; - (void)_closeAspectRatioPicker; - (struct CGVector { double x0; double x1; })_correctInputVector:(struct CGVector { double x0; double x1; })a0 forHandle:(unsigned long long)a1 onCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 lockDirection:(BOOL)a3; - (void)_createRendererIfNeeded; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_cropCanvasFrame; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_cropRectFromPanningHandle:(unsigned long long)a0 byAmount:(struct CGVector { double x0; double x1; })a1; - (void)_cropToggleTapped:(id)a0; - (double)_currentEDRHeadroomForScreen:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_defaultImageCropRect; - (double)_defaultPitchAngle; - (double)_defaultStraightenAngle; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_defaultViewCropRect; - (double)_defaultYawAngle; - (struct CGVector { double x0; double x1; })_deltaMaskForHandle:(unsigned long long)a0; - (void)_flipButtonTapped:(id)a0; - (void)_gridButtonTapped:(id)a0; - (void)_handleCropHandlePan:(id)a0; - (void)_handleDidCreateEditedImage:(id)a0 inputExtent:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)_handleRenderedVideoWithURL:(id)a0 originalLivePhoto:(id)a1 success:(BOOL)a2 error:(id)a3; - (void)_handleTouchingGesture:(id)a0; - (BOOL)_hasConstraintsForKey:(id)a0; - (BOOL)_hasCropSuggestion; - (BOOL)_hasPerspectiveSuggestion; - (void)_hideGrid; - (void)_hideGridDelayed; - (void)_hideMaskedContent; - (void)_hideMaskedContentDelayed; - (void)_installRenderedImageAndDisplayIfNeeded; - (void)_invalidateConstraintsForKey:(id)a0; - (void)_layoutAdjustmentTools; - (void)_loadCropSuggestionIfNeeded; - (void)_loadImageIfNeededWithCompletion:(id /* block */)a0; - (void)_loadMediaIfNeeded; - (void)_loadPerspectiveSuggestionIfNeeded; - (void)_loadStateFromModelAnimated:(BOOL)a0; - (double)_maximumEDRHeadroomForScreen:(id)a0; - (BOOL)_needsRecomposeCropRect; - (void)_performGeometryChange:(id /* block */)a0 animated:(BOOL)a1; - (void)_performInitialAction; - (void)_performLocalCropModelChanges:(id /* block */)a0; - (void)_performLocalModelChanges:(id /* block */)a0; - (struct CGPoint { double x0; double x1; })_pointForHandle:(unsigned long long)a0; - (struct CGPoint { double x0; double x1; })_pointForHandle:(unsigned long long)a0 onCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)_preferredContentSizeCategoryChanged; - (void)_recomposeCropRectAnimated:(BOOL)a0; - (void)_recomposeCropRectDelayed; - (void)_removeSnapshotView:(id)a0; - (void)_resetAllValuesAnimated:(BOOL)a0; - (void)_resetAllValuesAnimated:(BOOL)a0 skipLayerTransformUpdate:(BOOL)a1; - (void)_rotateButtonTapped:(id)a0; - (void)_rotateByApplyingOrientation:(long long)a0; - (void)_setAnimation:(id)a0 forKeyPath:(id)a1; - (void)_setContentViewsHidden:(BOOL)a0 animated:(BOOL)a1; - (void)_setContentViewsHidden:(BOOL)a0 animated:(BOOL)a1 completion:(id /* block */)a2; - (void)_setCropAspect:(id)a0 animated:(BOOL)a1; - (void)_setPitchAngle:(double)a0 animated:(BOOL)a1; - (void)_setStraightenAngle:(double)a0 animated:(BOOL)a1; - (void)_setViewCropRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 animated:(BOOL)a1; - (void)_setYawAngle:(double)a0 animated:(BOOL)a1; - (void)_setupCropModelFromCompositionController:(id)a0; - (void)_showGridAndCancelDelayedHide; - (void)_showMaskedContentAndCancelDelayedHide; - (void)_toggleCropAndPerspective; - (void)_updateAspectRatioControls; - (void)_updateBadgeTextWithInfo:(id)a0; - (void)_updateCropActionButtons; - (void)_updateCropCanvasConstraintsIfNeeded; - (void)_updateCropToggleButton; - (void)_updateCropToggleButtonMode; - (void)_updateCropToggleConstraintsIfNeeded; - (void)_updateCropViewsForInteraction; - (void)_updatePreviewViewInsets; - (void)adjustmentsDataChanged:(id)a0; - (id)adjustmentsRenderer:(id)a0; - (void)adjustmentsViewControllerDidUpdateSelectedControl:(id)a0; - (void)adjustmentsViewControllerSliderDidEndScrubbing:(id)a0; - (void)adjustmentsViewControllerSliderWillBeginScrubbing:(id)a0; - (void)adjustmentsViewControllerToolDidEndScrubbing:(id)a0; - (void)adjustmentsViewControllerToolWillBeginScrubbing:(id)a0; - (void)aspectRatioLockChanged; - (void)baseMediaInvalidated; - (void)basePhotoInvalidated; - (BOOL)canBecomeActiveTool; - (BOOL)canResetToDefaultValue; - (id)centerToolbarView; - (void)compositionControllerDidChangeForAdjustments:(id)a0; - (void)createVideoScrubber; - (void)cropAspectController:(id)a0 cropAspectSelected:(id)a1; - (void)cropAspectFlipperView:(id)a0 cropOrientationSelected:(long long)a1; - (void)cropTransformedImageViewDidEndTracking:(id)a0; - (void)cropTransformedImageViewDidTrack:(id)a0; - (void)cropTransformedImageViewWillBeginTracking:(id)a0; - (void)decreaseSliderValue:(BOOL)a0; - (void)didBecomeActiveTool; - (void)didResignActiveTool; - (void)editValuesCalculatorDidFinishComputingGeometricValues:(id)a0; - (void)editValuesCalculatorHasChangedGeometricValues:(id)a0; - (void)handleResigningCropTool; - (BOOL)handlesMediaViewInsets; - (BOOL)handlesVideoPlaying; - (void)increaseSliderValue:(BOOL)a0; - (BOOL)installGestureRecognizer:(id)a0 type:(unsigned long long)a1; - (id)leadingToolbarViews; - (id)localizedResetToolActionTitle; - (id)offlineKeyCommands; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })preferredPreviewViewInsets; - (void)prepareForToolTransitionWithCompletion:(id /* block */)a0; - (void)resetToDefaultValueAnimated:(BOOL)a0; - (void)resetToolLabelHidingTimer; - (id)selectedToolbarIconGlyphName; - (void)setAspectRatioLocked:(BOOL)a0; - (void)setLayoutOrientation:(long long)a0 withTransitionCoordinator:(id)a1; - (BOOL)setLockedCropAspectIfNeededIgnoringCurrentLock:(BOOL)a0; - (void)setupWithAsset:(id)a0 compositionController:(id)a1 editSource:(id)a2 valuesCalculator:(id)a3; - (void)showBadgeView:(BOOL)a0 animated:(BOOL)a1; - (void)showToolLabel; - (void)showVideoScrubber:(BOOL)a0; - (BOOL)supportsPreviewingOriginal; - (BOOL)suppressesEditUpdates; - (long long)toolControllerTag; - (id)toolbarIcon; - (id)toolbarIconGlyphName; - (id)trailingToolbarViews; - (void)updateAspectRatioLockButton; - (void)updateCropAspectRatioOrientation:(long long)a0; - (void)updateVideoFrameWithScrubber; - (void)updateViewOrdering; - (void)videoScrubberViewDidScrubTo:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)videoScrubberViewInteractionDone; - (BOOL)wantsDefaultPreviewView; - (BOOL)wantsSliderKeyControl; - (void)willBecomeActiveTool; - (void)willResignActiveTool; @end