@class ICDocCamSpinner, UITapGestureRecognizer, UIScrollView, ICDocCamOverlayView, VNRectangleObservation, AVCaptureSession, NSIndexPath, NSMutableArray, AVCaptureConnection, ICDocCamPhysicalCaptureRecognizer, AVCaptureDeviceInput, AVCaptureVideoDataOutput, ICDocCamImageSequenceAnalyzer, ICDocCamThumbnailCollectionViewController, UIButton, NSData, UIColor, AVCaptureVideoPreviewLayer, ICDocCamProcessingBlocker, NSLayoutConstraint, ICDocCamDocumentInfo, ICDocCamSaveButton, ICDocCamRectangleResultsQueue, CIContext, ICDocCamDebugMovieController, ICDocCamPhysicalCaptureNotifier, ICDocCamDocumentInfoCollection, NSArray, UIView, ICDocCamImageCache, AVCapturePhotoSettings, NSMutableDictionary, ICDocCamImageQuad, ICDocCamPreviewView, NSString, NSObject, ICDocCamShutterButton, UILabel, BKSAccelerometer, ICDocCamThumbnailContainerView, AVCapturePhotoOutput, UIImage, NSDate; @protocol OS_dispatch_queue, ICDocCamViewControllerDelegate, OS_dispatch_semaphore; @interface ICDocCamViewController : UIViewController { double _requestTime[10]; double _requestTimeSum; int _requestTimeIndex; } @property (weak, nonatomic) ICDocCamPreviewView *previewView; @property (weak, nonatomic) UIView *cameraUnavailableScrim; @property (weak, nonatomic) UIView *cameraUnavailableView; @property (weak, nonatomic) UILabel *cameraUnavailableLabel; @property (weak, nonatomic) UIButton *resumeButton; @property (weak, nonatomic) ICDocCamShutterButton *shutterButton; @property (retain, nonatomic) NSLayoutConstraint *shutterButtonBottomConstraintForPortraitIPhone; @property (retain, nonatomic) NSLayoutConstraint *shutterButtonBottomConstraintForLandscapeIPhone; @property (weak, nonatomic) UIView *autoShutterOnView; @property (weak, nonatomic) UILabel *autoShutterOnLabel; @property (weak, nonatomic) NSLayoutConstraint *autoShutterOnTopLayoutConstraint; @property (weak, nonatomic) UIView *autoShutterOffView; @property (weak, nonatomic) UILabel *autoShutterOffLabel; @property (weak, nonatomic) NSLayoutConstraint *autoShutterOffTopLayoutConstraint; @property (weak, nonatomic) UIView *filterNameFeedbackView; @property (weak, nonatomic) UILabel *filterNameFeedbackLabel; @property (retain, nonatomic) NSLayoutConstraint *filterNameFeedbackViewTopLayoutConstraint; @property (weak, nonatomic) ICDocCamOverlayView *overlayView; @property (weak, nonatomic) UIView *userPromptView; @property (weak, nonatomic) UILabel *userPromptLabel; @property (weak, nonatomic) UIView *moveCameraCloserView; @property (weak, nonatomic) UILabel *moveCameraCloserLabel; @property (retain, nonatomic) NSLayoutConstraint *thumbnailContainerViewLeadingConstraintForIPad; @property (retain, nonatomic) NSLayoutConstraint *thumbnailContainerViewTrailingConstraintForIPad; @property (retain, nonatomic) NSLayoutConstraint *thumbnailContainerViewBottomConstraintForIPhone; @property (retain, nonatomic) NSLayoutConstraint *thumbnailContainerViewLeadingConstraintForIPhone; @property (weak, nonatomic) UIView *scrimView; @property (weak, nonatomic) UIButton *cancelButton; @property (retain, nonatomic) ICDocCamSaveButton *saveButton; @property (retain, nonatomic) NSLayoutConstraint *saveButtonLandscapeVerticalConstraintForIPhone; @property (retain, nonatomic) NSLayoutConstraint *saveButtonLandscapeTrailingConstraintForIPhone; @property (weak, nonatomic) UIButton *autoButton; @property (weak, nonatomic) UIButton *manualButton; @property (weak, nonatomic) UIButton *flashButton; @property (weak, nonatomic) UIButton *filterButton; @property (nonatomic) BOOL filterSettingUIShowing; @property (nonatomic) BOOL capturingFromPhysicalButton; @property (weak, nonatomic) UIView *flashSettingView; @property (retain, nonatomic) NSLayoutConstraint *flashSettingViewHeightConstraint; @property (weak, nonatomic) UIView *flashSettingButtonView; @property (weak, nonatomic) UIButton *flashSettingViewFlashIcon; @property (weak, nonatomic) UIButton *flashSettingViewAutoButton; @property (weak, nonatomic) UIButton *flashSettingViewOnButton; @property (weak, nonatomic) UIButton *flashSettingViewOffButton; @property (weak, nonatomic) NSLayoutConstraint *flashSettingWidthConstraint; @property (nonatomic) BOOL flashSettingUIShowing; @property (retain, nonatomic) NSObject *sessionQueue; @property (retain, nonatomic) AVCaptureSession *session; @property (retain, nonatomic) AVCaptureDeviceInput *videoDeviceInput; @property (retain, nonatomic) AVCapturePhotoSettings *photoSettings; @property (retain, nonatomic) AVCapturePhotoOutput *photoOutput; @property (retain, nonatomic) NSMutableDictionary *inProgressPhotoCaptureDelegates; @property (retain, nonatomic) AVCaptureVideoDataOutput *videoDataOutput; @property (weak, nonatomic) AVCaptureVideoPreviewLayer *videoPreviewLayer; @property (nonatomic) long long statusBarOrientation; @property (nonatomic) struct CGSize { double width; double height; } viewBoundsSize; @property (retain, nonatomic) UIColor *cameraHighlightColor; @property (nonatomic) long long setupResult; @property (nonatomic, getter=isSessionRunning) BOOL sessionRunning; @property (retain, nonatomic) ICDocCamImageSequenceAnalyzer *vkAnalyzer; @property (retain) ICDocCamRectangleResultsQueue *rectResultsQueue; @property (nonatomic) BOOL deviceHasFlash; @property (nonatomic) long long flashMode; @property float pixelFocalLength; @property (retain, nonatomic) NSData *cameraIntrinsicData; @property (nonatomic) BOOL hideUserPrompt; @property BOOL adjustingFocus; @property (retain) NSDate *lastSubjectAreaChange; @property (retain, nonatomic) ICDocCamDocumentInfoCollection *documentInfoCollection; @property (nonatomic) long long retakeIndex; @property (retain, nonatomic) ICDocCamImageCache *imageCache; @property (retain, nonatomic) CIContext *sharedCoreImageContext; @property (retain, nonatomic) NSLayoutConstraint *userPromptViewVerticalConstraint; @property (retain, nonatomic) NSLayoutConstraint *moveCameraCloserViewVerticalConstraint; @property (retain, nonatomic) ICDocCamDocumentInfo *markupDocumentInfo; @property (copy, nonatomic) id /* block */ markupDismissCompletionBlock; @property (retain, nonatomic) BKSAccelerometer *accelerometer; @property float rectangleMinimumAspectRatio; @property float rectangleMaximumAspectRatio; @property float rectangleQuadratureTolerance; @property float rectangleMinimumSize; @property float rectangleMinimumConfidence; @property float rectangleMinimumVisualConfidence; @property long long rectangleMaximumNumber; @property float rectangleStabilityStdDev; @property float segmentMinimumVisualConfidence; @property float segmentMinimumVisualConfidence60Frames; @property float segmentMinimumVisualConfidenceFinalScan; @property float segmentStabilityStdDev; @property float segmentationFudgeFactor; @property struct CGPoint { double x; double y; } segmentTopLeft; @property struct CGPoint { double x; double y; } segmentTopRight; @property struct CGPoint { double x; double y; } segmentBottomLeft; @property struct CGPoint { double x; double y; } segmentBottomRight; @property BOOL segmentMeanComputed; @property (readonly) BOOL useDocumentSegmentation; @property BOOL rectangleDetectionEnabled; @property BOOL registrationEnabled; @property BOOL debugRectanglesEnabled; @property BOOL displayStringEnabled; @property BOOL realTimeRectangleDetection; @property BOOL synchronousRectangleDetection; @property long long queueSizeForRectangleDetection; @property (retain, nonatomic) ICDocCamProcessingBlocker *processRequestsBlocker; @property (retain, nonatomic) ICDocCamProcessingBlocker *snapStillImageBlocker; @property (nonatomic) BOOL didWarnAboutMaxScans; @property (readonly, nonatomic) BOOL isInRetakeMode; @property (nonatomic) BOOL isObservingCaptureSession; @property (nonatomic) BOOL didAddAppLifetimeObservers; @property (nonatomic) long long snapStillImageMode; @property (retain, nonatomic) ICDocCamImageQuad *backupQuad; @property (retain, nonatomic) VNRectangleObservation *lastHighConfidenceRectangle; @property (retain, nonatomic) NSMutableArray *filterButtons; @property (weak, nonatomic) UIView *filterView; @property (weak, nonatomic) UIButton *filterViewButton; @property (retain, nonatomic) NSArray *filterNames; @property (weak, nonatomic) UIView *filterViewContainer; @property (retain, nonatomic) NSLayoutConstraint *filterViewContainerHeightConstraint; @property (weak, nonatomic) UIScrollView *filterScrollView; @property (weak, nonatomic) UIView *filterScrollViewContainer; @property (weak, nonatomic) NSLayoutConstraint *filterViewLeadingConstraint; @property (weak, nonatomic) NSLayoutConstraint *filterViewTrailingConstraint; @property (retain, nonatomic) NSLayoutConstraint *filterViewContainerWidthConstraint; @property (weak, nonatomic) NSLayoutConstraint *topToolbarForIPhoneHeightConstraint; @property (weak, nonatomic) UIView *topToolbarForIPhone; @property (weak, nonatomic) UIButton *cancelButtonForIPhone; @property (weak, nonatomic) UIButton *flashButtonForIPhone; @property (weak, nonatomic) UIButton *filterButtonForIPhone; @property (weak, nonatomic) UIButton *autoButtonForIPhone; @property (retain, nonatomic) NSLayoutConstraint *cancelButtonForIPhoneLeadingConstraint; @property (retain, nonatomic) NSLayoutConstraint *autoButtonForIPhoneTrailingConstraint; @property (nonatomic) short defaultFilter; @property (retain, nonatomic) NSMutableArray *recentRectangleObservations; @property (retain, nonatomic) NSDate *lastAXPositionAnnouncementDate; @property (nonatomic) BOOL hasCandidateRectanglesForAX; @property (nonatomic) unsigned long long axConsecutiveRecognizerStateCount; @property (retain, nonatomic) NSMutableArray *iPadLayoutConstraints; @property (retain, nonatomic) NSMutableArray *iPhonePortraitLayoutConstraints; @property (retain, nonatomic) NSMutableArray *iPhoneLandscapeLayoutConstraints; @property (retain, nonatomic) NSMutableArray *iPhoneCompactLandscapeLayoutConstraints; @property (retain, nonatomic) ICDocCamPhysicalCaptureRecognizer *physicalCaptureRecognizer; @property (retain, nonatomic) ICDocCamPhysicalCaptureNotifier *physicalCaptureNotifier; @property (nonatomic) struct CGSize { double width; double height; } streamingImageSize; @property (retain, nonatomic) UITapGestureRecognizer *singleTapGestureRecognizer; @property (retain) NSObject *flashAndFilterUISemaphore; @property (nonatomic) BOOL useCustomThumbnailZoomTransition; @property (retain, nonatomic) NSIndexPath *indexPathForThumbnailZoom; @property (retain, nonatomic) UIImage *imageForThumbnailZoom; @property (copy, nonatomic) id /* block */ thumbnailZoomCompletionBlock; @property (nonatomic) BOOL zoomTargetShouldUseCustomImageFrame; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } zoomTargetCustomImageFrame; @property (nonatomic) BOOL useCustomRetakeTransition; @property (retain, nonatomic) NSIndexPath *indexPathForRetake; @property (retain, nonatomic) UIImage *imageForRetake; @property (copy, nonatomic) id /* block */ retakeCompletionBlock; @property (nonatomic) BOOL useCustomRecropTransition; @property (nonatomic) long long orientationForRecrop; @property (retain, nonatomic) NSIndexPath *indexPathForRecrop; @property (retain, nonatomic) UIImage *filteredImageForRecrop; @property (retain, nonatomic) UIImage *unfilteredImageForRecrop; @property (copy, nonatomic) id /* block */ sessionStartNotificationBlock; @property (nonatomic) BOOL captureDebugDone; @property (retain, nonatomic) NSObject *snapshotSpinnerQueue; @property (retain, nonatomic) ICDocCamSpinner *snapshotSpinner; @property (nonatomic) BOOL awaitingSnapshotCompletion; @property (retain, nonatomic) ICDocCamDebugMovieController *movieController; @property (nonatomic) long long referenceOrientation; @property (retain, nonatomic) AVCaptureConnection *videoConnection; @property (weak, nonatomic) UIButton *recordButton; @property (nonatomic) BOOL scanMovieRecordingEnabled; @property (nonatomic) BOOL scanMovieRecordingDontShowWarning; @property (weak) id delegate; @property (retain, nonatomic) ICDocCamThumbnailContainerView *thumbnailContainerView; @property (retain, nonatomic) ICDocCamThumbnailCollectionViewController *thumbnailViewController; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (void)initialize; + (void)registerDefaults; + (void)warnAboutMaxScansReachedForViewController:(id)a0 completionHandler:(id /* block */)a1; + (struct { void /* unknown type, empty encoding */ x0[3]; })cameraIntrinsicMatrixForWidth:(float)a0 height:(float)a1 pixelFocalLength:(float)a2; + (id)deviceWithMediaType:(id)a0 preferringPosition:(long long)a1; - (void)viewSafeAreaInsetsDidChange; - (BOOL)shouldAutorotate; - (void)animationDidStop:(id)a0 finished:(BOOL)a1; - (void)viewWillAppear:(BOOL)a0; - (void)dealloc; - (void)traitCollectionDidChange:(id)a0; - (void)viewDidLayoutSubviews; - (void)sessionInterruptionEnded:(id)a0; - (void)contentSizeCategoryDidChange:(id)a0; - (void)viewDidLoad; - (long long)preferredStatusBarStyle; - (BOOL)gestureRecognizerShouldBegin:(id)a0; - (BOOL)prefersStatusBarHidden; - (id)navigationController:(id)a0 animationControllerForOperation:(long long)a1 fromViewController:(id)a2 toViewController:(id)a3; - (void)updateFonts; - (unsigned long long)supportedInterfaceOrientations; - (void)viewWillDisappear:(BOOL)a0; - (BOOL)_canShowWhileLocked; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void)clearQueue; - (void).cxx_destruct; - (void)captureOutput:(id)a0 didOutputSampleBuffer:(struct opaqueCMSampleBuffer { } *)a1 fromConnection:(id)a2; - (void)removeAllNotifications; - (void)viewDidAppear:(BOOL)a0; - (void)sessionWasInterrupted:(id)a0; - (void)viewWillTransitionToSize:(struct CGSize { double x0; double x1; })a0 withTransitionCoordinator:(id)a1; - (void)viewDidDisappear:(BOOL)a0; - (BOOL)accessibilityPerformEscape; - (id)rootView; - (void)physicalCaptureNotifierDidChangeState:(id)a0; - (void)sessionRuntimeError:(id)a0; - (void)prepareForDismissal; - (void)cancelAction:(id)a0; - (void)extractedDocumentController:(id)a0 didTapRecrop:(id)a1 index:(long long)a2; - (void)extractedDocumentController:(id)a0 startMarkupOnDocument:(id)a1 inkStyle:(unsigned long long)a2 startPresentBlock:(id /* block */)a3 dismissCompletionBlock:(id /* block */)a4; - (void)extractedDocumentControllerDidDeleteDocument:(id)a0; - (void)extractedDocumentControllerDidTapDone:(unsigned long long)a0; - (void)extractedDocumentControllerDidTapRetake:(unsigned long long)a0; - (void)extractedDocumentControllerDiscardMarkupModelDataForDocument:(id)a0; - (id)extractedDocumentControllerMarkupModelDataForDocument:(id)a0; - (void)markupCancelAction:(id)a0; - (void)markupDoneAction:(id)a0; - (void)dismissFilterUI; - (void)removeSaveActionBlockerForFiles; - (BOOL)shouldAutoShoot; - (void)addNewDocument:(id)a0; - (void)clearRectangles; - (BOOL)sufficientlyLarge:(id)a0 forImageSize:(struct CGSize { double x0; double x1; })a1; - (void)addObserversIfNecessary; - (void)analyzerCallbackWithDictionaryResults:(id)a0; - (BOOL)autoMode; - (void)changeFlashAction:(id)a0; - (void)changeRecordButtonTitle:(id)a0; - (id)createNSDataFrom:(id)a0 metaData:(id)a1; - (void)createPhysicalCaptureRecognizerOrNotifierIfNecessary; - (id)cropAndFilterImage:(id)a0 rects:(id)a1 filterType:(short)a2; - (void)detectRectanglesAndSaveCapturedImage:(struct __CVBuffer { } *)a0 metadata:(id)a1 completionHandler:(id /* block */)a2; - (id)detectRectanglesRequest; - (void)didFinishWithImage:(id)a0; - (void)didRecognizeRectangleForAccessibility:(BOOL)a0; - (void)disableRetakeMode; - (void)dismissFilterAndFlashUI; - (void)dismissFlashUI; - (void)enableRecordButton:(BOOL)a0; - (void)enableShutter:(BOOL)a0; - (void)enableShutterButtonIfPossible; - (void)enableUIElements:(BOOL)a0; - (void)enableUIElementsForMovieRecording:(BOOL)a0; - (void)filterButtonAction:(id)a0; - (void)filterButtonCancelUI:(id)a0; - (void)filterButtonChoiceAction:(id)a0; - (id)filterButtonImage; - (double)filterScrollViewContentWidthWithInterItemSpacing:(double)a0 startPadding:(double)a1 endPadding:(double)a2; - (id)filteredImageForDocument:(id)a0; - (void)flashButtonAction:(id)a0; - (void)flashButtonCancelUI:(id)a0; - (id)flashButtonImage; - (void)flashFilterButtonNameFeedback; - (id)flashMenuButtonSizes; - (void)flashMoveCloserFeedback; - (double)flashSettingViewWidthForIPad; - (void)focusWithMode:(long long)a0 exposeWithMode:(long long)a1 atDevicePoint:(struct CGPoint { double x0; double x1; })a2 monitorSubjectAreaChange:(BOOL)a3; - (void)handlePhysicalButtonPressed:(long long)a0; - (void)handlePhysicalButtonReleased:(long long)a0; - (void)handleVolumeButtonPress:(id)a0; - (void)hideFilterSettingUI; - (void)hideFlashSettingUI; - (void)hideShutter:(BOOL)a0; - (void)hideUIForInterruptedSession:(BOOL)a0; - (void)image:(id)a0 didFinishSavingWithError:(id)a1 contextInfo:(void *)a2; - (id)imageMeshTransformWithImage:(id)a0 backgroundImage:(id)a1 imageViewFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 imageQuad:(id)a3 previewView:(id)a4 previewBounds:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a5 scrimView:(id)a6; - (unsigned int)imageOrientationFromDevice; - (id)initWithImageCache:(id)a0; - (void)initializeFilters; - (void)initializeUserInterface; - (void)killFeedbackDisplayIncludingUserPrompts:(BOOL)a0; - (void)killFeedbackDisplayInternalIncludingUserPrompts:(BOOL)a0; - (void)launchCaptureSession; - (void)logAlgoChoice; - (void)myApplicationDidBecomeActive:(id)a0; - (void)myApplicationWillResignActive:(id)a0; - (void)pauseCaptureSessionForMovieRecording; - (void)popViewController:(id)a0 subtype:(id)a1 duration:(double)a2 completion:(id /* block */)a3; - (void)preWarmFilters; - (void)pushViewController:(id)a0 type:(id)a1 subtype:(id)a2 duration:(double)a3 completion:(id /* block */)a4; - (void)removeObserversIfNecessary; - (void)restartImageCaptureSessionIfNecessary; - (void)resumeCaptureSessionForMovieRecording; - (void)resumeInterruptedSession:(id)a0; - (void)retakeButtonWasPressed; - (void)saveAction:(id)a0; - (void)saveCapturedImage:(id)a0 metaData:(id)a1 rects:(id)a2 completionHandler:(id /* block */)a3; - (void)setAutoMode:(BOOL)a0; - (void)setUpFilterScrollView; - (void)setUpUserDefaults; - (void)setViewControllers:(id)a0 type:(id)a1 subtype:(id)a2 duration:(double)a3 completion:(id /* block */)a4; - (void)setupAccessibilityInfo; - (void)setupCaptureSession; - (void)setupThumbnailViewControllerIfNecessary; - (void)showErrorForMovieRecording:(id)a0; - (void)shutterButtonAction:(id)a0; - (void)singleTap; - (void)snapStillImageWithMode:(long long)a0; - (void)speakLabelTextForAccessibilityIfNecessary:(id)a0 afterDelay:(double)a1; - (void)speakScannedDocumentForAccessibilityIfNecessary; - (void)stopImageCaptureSession; - (void)subjectAreaDidChange:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })targetViewRect; - (void)thumbnailViewDidTap:(id)a0; - (void)toggleAutoCapture:(id)a0; - (void)toggleRecording:(id)a0; - (void)updateAccessibilityEnabledStateForUIElements; - (void)updateAccessibilityFocusForHidingFilterSettingsUI; - (void)updateAccessibilityFocusForHidingFlashSettingsUI; - (void)updateAccessibilityForAutoShutterMode:(BOOL)a0; - (void)updateAccessibilityForCurrentFilter; - (void)updateAccessibilityForCurrentFlashMode; - (void)updateAllConstraints; - (void)updateAutoButtonTitleForAutoMode:(BOOL)a0; - (void)updateConstraintsForIPad; - (void)updateConstraintsForIPhone; - (void)updateFilterAndFlashButtons; - (void)updateFilterButtonTint; - (void)updateFilterChoiceButtonScrollPositionAnimated:(BOOL)a0; - (void)updateFilterChoiceButtonSelection:(short)a0; - (void)updateLabelColors; - (void)updateRecentlyObservedRectanglesWithRect:(id)a0; - (void)updateThumbnailContainerViewConstraintConstantForIPad; - (BOOL)useGestureRecognizerForVolumeButtons; - (BOOL)validRect:(id)a0 forImageSize:(struct CGSize { double x0; double x1; })a1; - (void)warnAboutMaxScansIfNecessary; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })zoomTargetForIndexPath:(id)a0; @end