@class UIView, PXExtendedTraitCollection, PXTrimScrubberLayoutHelper, UIImage, NSArray, UIImageView, PXLivePhotoTrimScrubberLoupeView, PXLivePhotoTrimScrubberHiddenAnimationHelper, AVVideoComposition, PXLivePhotoTrimScrubberSpec, AVAsset; @protocol PXLivePhotoTrimScrubberFilmStripView, PXLivePhotoTrimScrubberDelegate; @interface PXLivePhotoTrimScrubber : UIView { UIView *_filmstripContainerView; UIView *_filmstripView; UIView *_disabledOverlayView; struct { BOOL respondsToDidTapElement; BOOL respondsToDidBeginInteractivelyEditingElement; BOOL respondsToCanBeginInteractivelyEditingElement; BOOL respondsToDidEndInteractivelyEditingElement; BOOL respondsToDidChangeTimeForElement; BOOL respondsToAssetDurationDidChange; BOOL respondsToDidChangeLoupeRect; BOOL respondsToDidZoomToMinimumValueMaximumValue; BOOL respondsToDidUnzoom; BOOL respondsToPausePlayer; BOOL respondsToDidLayoutSubviews; BOOL respondsToDebugStartRect; BOOL respondsToDebugEndRect; BOOL respondsToDebugStartOffset; BOOL respondsToDebugEndOffset; } _delegateFlags; NSArray *_keyTimeSnappingControllers; NSArray *_startTimeSnappingControllers; NSArray *_endTimeSnappingControllers; NSArray *_focusEventSnappingControllers; BOOL _hasPresentedControls; struct { long long value; int timescale; unsigned int flags; long long epoch; } _photoTrimBuffer; long long _changeDepth; PXExtendedTraitCollection *_traitCollection; PXLivePhotoTrimScrubberHiddenAnimationHelper *_loupeHiddenHelper; PXLivePhotoTrimScrubberHiddenAnimationHelper *_trimControlHiddenHelper; UIView *_debugStartTimeView; UIView *_debugLoupeTimeView; UIView *_debugEndTimeView; } @property (class, readonly, nonatomic) UIImage *trimStartImage; @property (class, readonly, nonatomic) UIImage *trimStartHighlightedImage; @property (class, readonly, nonatomic) UIImage *trimEndImage; @property (class, readonly, nonatomic) UIImage *trimEndHighlightedImage; @property (class, readonly, nonatomic) UIImage *trimStartImageMini; @property (class, readonly, nonatomic) UIImage *trimStartHighlightedImageMini; @property (class, readonly, nonatomic) UIImage *trimEndImageMini; @property (class, readonly, nonatomic) UIImage *trimEndHighlightedImageMini; @property (nonatomic, setter=_setUntrimmedDuration:) struct { long long value; int timescale; unsigned int flags; long long epoch; } untrimmedDuration; @property (nonatomic, setter=_setContentAspectRatio:) double _contentAspectRatio; @property (nonatomic, setter=_setTrackingElement:) long long _trackingElement; @property (readonly, nonatomic) UIView *_preTrimOverlayView; @property (readonly, nonatomic) UIView *_postTrimOverlayView; @property (nonatomic) long long state; @property (retain, nonatomic) PXTrimScrubberLayoutHelper *layoutHelper; @property (readonly, nonatomic) PXLivePhotoTrimScrubberLoupeView *photoLoupe; @property (readonly, nonatomic) UIImageView *trimStartHandle; @property (readonly, nonatomic) UIImageView *trimEndHandle; @property (nonatomic) BOOL showVideoScrubberDebugOverlay; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } minimumTrimLength; @property (retain, nonatomic) PXLivePhotoTrimScrubberSpec *spec; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } viewportMinTime; @property (readonly, nonatomic) struct { long long x0; int x1; unsigned int x2; long long x3; } viewportMaxTime; @property (readonly, nonatomic) Class filmStripViewClass; @property (readonly, nonatomic) AVAsset *asset; @property (readonly, nonatomic) AVVideoComposition *videoComposition; @property (retain, nonatomic) UIImage *placeholderImage; @property (readonly, nonatomic, getter=isAssetDurationLoaded) BOOL assetDurationLoaded; @property (nonatomic) double horizontalInset; @property (nonatomic) unsigned long long playheadStyle; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } keyTime; @property (copy, nonatomic) NSArray *snapKeyTimes; @property (copy, nonatomic) NSArray *snapTrimStartTimes; @property (copy, nonatomic) NSArray *snapTrimEndTimes; @property (copy, nonatomic) NSArray *focusEventTimes; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } suggestedKeyTime; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } trimStartTime; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } trimEndTime; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } originalStartTime; @property (nonatomic) struct { long long value; int timescale; unsigned int flags; long long epoch; } originalEndTime; @property (readonly, nonatomic) long long trimStatus; @property (readonly, nonatomic) long long currentlyInteractingElement; @property (weak, nonatomic) id delegate; @property (retain, nonatomic) UIView *loupePlayerView; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } loupeRect; @property (nonatomic, getter=isDisabled) BOOL disabled; @property (nonatomic) BOOL useMiniScrubber; @property (nonatomic) BOOL allowZoom; + (id)_createSnappingControllersForKeytimes:(id)a0; + (id)createSnappingControllerWithSnappingTarget:(double)a0; - (void)_animateChanges:(id /* block */)a0; - (void).cxx_destruct; - (void)layoutSubviews; - (void)unzoom; - (double)_offsetForTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (id)_snappingControllersForElement:(long long)a0; - (BOOL)isValidKeyTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (struct { long long x0; int x1; unsigned int x2; long long x3; })timeForElement:(long long)a0; - (void)_PXLivePhotoTrimScrubber_commonInit; - (void)_assetDidLoadValues; - (struct { long long x0; int x1; unsigned int x2; long long x3; })_clampTimeToViewportIfZoomed:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_disabledOverlayFrame; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_keyHandleRect; - (void)_newScrubberLayoutSubviews; - (void)_presentControlsIfNeeded; - (void)_releaseAVObjects; - (void)_setKeyTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 canHaveImpact:(BOOL)a1 forElement:(long long)a2; - (void)_setPhotoLoupeHidden:(BOOL)a0 animated:(BOOL)a1; - (void)_setTrimControlsHidden:(BOOL)a0 animated:(BOOL)a1; - (void)_setupZoom; - (id)_snapTimesForElement:(long long)a0; - (struct { long long x0; int x1; unsigned int x2; long long x3; })_timeAtLocation:(struct CGPoint { double x0; double x1; })a0 forElement:(long long)a1; - (void)_trimHandleDidReachBounds; - (void)_updateContentAspectRatio; - (void)_updateEndTimeSnappingControllers; - (void)_updateFocusEventSnappingControllers; - (void)_updateKeyTimeSnappingControllers; - (void)_updateSpecDependentUI; - (void)_updateStartTimeSnappingControllers; - (void)_updateTrimHandles; - (void)_updateZoomState:(BOOL)a0; - (void)_zoomAtTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)_zoomAtTrackedElement; - (void)_zoomDelayed; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })backingAlignedRectForRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (void)handleBeginTrackingAtLocation:(struct CGPoint { double x0; double x1; })a0; - (void)handleChangeTrackingAtLocation:(struct CGPoint { double x0; double x1; })a0 withVelocity:(struct CGPoint { double x0; double x1; })a1; - (void)handleEndTracking:(BOOL)a0; - (void)handleLongPressWithElement:(long long)a0; - (void)handleSetKeyTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)handleTapWithElement:(long long)a0; - (double)horizontalOffsetForTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)impactOccured; - (id)initWithFilmStripViewClass:(Class)a0 spec:(id)a1 traitCollection:(id)a2; - (double)offsetForTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)performAnimatedChanges:(id /* block */)a0; - (void)prepareForImpact; - (void)setAsset:(id)a0 videoComposition:(id)a1; - (void)setPlayheadStyle:(unsigned long long)a0 animate:(BOOL)a1; - (struct { long long x0; int x1; unsigned int x2; long long x3; })timeAtPoint:(struct CGPoint { double x0; double x1; })a0; - (BOOL)tryZoomAtTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0; - (void)updateTraitCollection:(id)a0; @end