@class DDActionController, NSString, NSMapTable, NSOperationQueue, NSObject, BCSBusinessQueryService; @protocol OS_dispatch_queue, DDDetectionControllerDelegate; @interface DDDetectionController : NSObject { NSOperationQueue *_fullScannerQueue; NSOperationQueue *_urlScannerQueue; NSObject *_protectQueue; NSMapTable *_containerToOperationsTable; NSMapTable *_containerToResultsTable; NSMapTable *_containerToContextsTable; DDActionController *_actionController; } @property (retain, nonatomic) BCSBusinessQueryService *_bizService; @property (weak, nonatomic) NSObject *delegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)sharedController; + (id)tapAndHoldSchemes; + (id)filterResults:(id)a0 forTypes:(unsigned long long)a1 referenceDate:(id)a2 referenceTimeZone:(id)a3; + (BOOL)_shouldConsiderResultForCoreRecents:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; + (unsigned long long)allPublicTypes; + (id)barcodeContext:(id)a0 preview:(BOOL)a1 contact:(id)a2 ics:(id)a3; + (BOOL)largeScreenIdiom; + (id)lightUnderlineColorFromTextColor:(id)a0; + (id /* block */)messagesActionHandler; + (void)setMessagesActionHandler:(id /* block */)a0; + (id)updateContext:(id)a0 forResult:(struct __DDResult { } *)a1 atIndex:(unsigned long long)a2 ofStorage:(id)a3; - (id)init; - (void)cancelAction; - (void)dealloc; - (void)_enqueueOperation:(id)a0; - (void).cxx_destruct; - (void)cancelURLificationForContainer:(id)a0; - (id)actionsForDOMNode:(id)a0 forFrame:(id)a1; - (void)cancelURLificationForFrame:(id)a0; - (id)copyContextForContainer:(id)a0; - (id)defaultActionAtIndex:(unsigned long long)a0 ofStorage:(id)a1 context:(id)a2; - (id)defaultActionForDOMNode:(id)a0 forFrame:(id)a1; - (void)frameWillBeRemoved:(id)a0; - (void)performAction:(id)a0 fromAlertController:(id)a1 interactionDelegate:(id)a2; - (void)performAction:(id)a0 fromView:(id)a1 alertController:(id)a2 interactionDelegate:(id)a3; - (void)performAction:(id)a0 inView:(id)a1 interactionDelegate:(id)a2; - (id)preferredTextAttributesForLinkAtCharacterIndex:(unsigned long long)a0 ofStorage:(id)a1; - (void)resetResultsForContainer:(id)a0; - (void)resetResultsForFrame:(id)a0; - (struct __DDResult { } *)resultForNode:(id)a0 url:(id)a1 frame:(id)a2 contextRef:(id *)a3; - (BOOL)shouldImmediatelyShowActionSheetForTapAtIndex:(unsigned long long)a0 ofStorage:(id)a1; - (BOOL)shouldImmediatelyShowActionSheetForURL:(id)a0 forFrame:(id)a1; - (void)startURLificationForContainer:(id)a0 detectedTypes:(unsigned long long)a1; - (void)startURLificationForFrame:(id)a0 detectedTypes:(unsigned long long)a1; - (void)startURLificationForFrame:(id)a0 detectedTypes:(unsigned long long)a1 options:(int)a2; - (id)titleForResultAtIndex:(unsigned long long)a0 ofStorage:(id)a1 context:(id)a2; - (BOOL)isPerformingAction; - (id)actionsForURL:(id)a0 identifier:(id)a1 selectedText:(id)a2 results:(id)a3 context:(id)a4; - (id)defaultActionForURL:(id)a0 results:(id)a1 context:(id)a2; - (void)interactionDidStartForURL:(id)a0; - (struct __DDResult { } *)resultForURL:(id)a0 identifier:(id)a1 selectedText:(id)a2 results:(id)a3 context:(id)a4 extendedContext:(id *)a5; - (BOOL)shouldImmediatelyLaunchDefaultActionForURL:(id)a0; - (id)_applyBlock:(id /* block */)a0 withResultsAtIndex:(unsigned long long)a1 ofStorage:(id)a2 context:(id)a3; - (id)_URLForLinkAttributeValue:(id)a0; - (id)_businessItemForNumber:(id)a0 messageable:(BOOL *)a1; - (void)_cacheBusinessPhoneNumber:(id)a0; - (BOOL)_checkIfBusinessWithResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0 messageable:(BOOL *)a1; - (BOOL)_checkIfBusinessWithURL:(id)a0 messageable:(BOOL *)a1; - (void)_commonResetResultsForContainer:(id)a0; - (void)_doURLification:(id)a0; - (id)_ensureURLIsURL:(id)a0; - (void)_interactionDidStartForResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; - (void)_interactionDidStartForURL:(id)a0; - (id)_newOperationForContainer:(id)a0; - (id)_phoneNumberFromResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; - (BOOL)_phoneNumberIsABusinessNumber:(id)a0 messageable:(BOOL *)a1; - (id)_plainTextAugmentedContext:(id)a0 withFrame:(id)a1; - (void)_resetStoredResultsForContainer:(id)a0; - (struct __DDResult { } *)_resultForAnchor:(id)a0 forFrame:(id)a1 context:(id *)a2; - (struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)_resultForIdentifier:(id)a0 forContainer:(id)a1 context:(id *)a2; - (struct __DDResult { } *)_resultForIdentifier:(id)a0 withResults:(id)a1 context:(id *)a2; - (id)_resultForLinkAtIndex:(unsigned long long)a0 inTextStorage:(id)a1 subResult:(id *)a2 url:(id *)a3 effectiveRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; } *)a4; - (struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)_resultForURL:(id)a0 forContainer:(id)a1 context:(id *)a2; - (struct __DDResult { } *)_resultForURL:(id)a0 withResults:(id)a1 context:(id *)a2; - (BOOL)_shouldImmediatelyLaunchDefaultActionForURL:(id)a0 result:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a1; - (BOOL)_shouldImmediatelyShowActionSheetForCoreResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; - (BOOL)_shouldImmediatelyShowActionSheetForURL:(id)a0; - (void)_startCoalescedURLification:(id)a0; - (void)_startCoalescedURLification:(id)a0 clearPreviousResults:(BOOL)a1; - (id)_subResultAtIndex:(unsigned long long)a0 ofResult:(id)a1; - (BOOL)actionIsCancellable; - (id)actionsAtIndex:(unsigned long long)a0 ofStorage:(id)a1 context:(id)a2; - (id)actionsForAnchor:(id)a0 url:(id)a1 forFrame:(id)a2; - (id)actionsForResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0 context:(id)a1; - (id)actionsForURL:(id)a0; - (id)attributedTitleForResult:(struct __DDResult { } *)a0 updaterBlock:(id /* block */)a1; - (id)attributedTitleForResultAtIndex:(unsigned long long)a0 ofStorage:(id)a1 updaterBlock:(id /* block */)a2; - (id)attributedTitleForURL:(id)a0 updaterBlock:(id /* block */)a1; - (id)barcodeActionsForContext:(id)a0 URL:(id)a1 result:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a2 contact:(id)a3 ics:(id)a4; - (id)barcodePreviewActionForContext:(id)a0 URL:(id)a1 result:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a2 contact:(id)a3 ics:(id)a4; - (void)containerWillBeRemoved:(id)a0; - (id)defaultActionForAnchor:(id)a0 url:(id)a1 forFrame:(id)a2; - (void)interactionDidStartAtIndex:(unsigned long long)a0 ofStorage:(id)a1; - (void)interactionDidStartForResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; - (id)linkAtIndex:(unsigned long long)a0 inTextStorage:(id)a1; - (void)resetResultsForTextView:(id)a0; - (struct __DDResult { } *)resultForDOMNode:(id)a0 forFrame:(id)a1; - (struct __DDResult { } *)resultForLinkAtIndex:(unsigned long long)a0 inTextStorage:(id)a1; - (void)setContext:(id)a0 forContainer:(id)a1; - (void)setContext:(id)a0 forFrame:(id)a1; - (void)setResults:(struct __CFArray { } *)a0 forContainer:(id)a1; - (void)setResults:(struct __CFArray { } *)a0 forFrame:(id)a1; - (BOOL)shouldIgnoreMessageActionForURL:(id)a0; - (BOOL)shouldImmediatelyLaunchDefaultActionForResult:(struct __DDResult { struct __CFRuntimeBase { unsigned long long x0; _Atomic unsigned long long x1; } x0; struct __DDQueryRange { struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x0; struct __DDQueryOffset { unsigned short x0 : 16; unsigned short x1 : 16; unsigned int x2 : 32; } x1; } x1; struct { long long x0; long long x1; } x2; long long x3; struct __CFArray *x4; struct __CFString *x5; struct __CFString *x6; void *x7; struct __CFDictionary *x8; long long x9; unsigned char x10; float x11; } *)a0; - (BOOL)shouldImmediatelyLaunchDefaultActionForTapAndHoldAtIndex:(unsigned long long)a0 ofStorage:(id)a1; - (BOOL)shouldUseLightStyleAtIndex:(unsigned long long)a0 ofStorage:(id)a1 moreHighlight:(BOOL *)a2; - (void)startURLificationForContainer:(id)a0 detectedTypes:(unsigned long long)a1 options:(int)a2; - (id)titleForResult:(struct __DDResult { } *)a0 subResult:(struct __DDResult { } *)a1 withURL:(id)a2 context:(id)a3; - (id)titleForURL:(id)a0 results:(id)a1 context:(id)a2; - (BOOL)tryDismissActionInView:(id)a0; - (void)urlifyTextView:(id)a0 withExternalResults:(id)a1 context:(id)a2; @end