@class NSString, TIKeyboardInput, NSArray, TITypingSession, NSMutableDictionary, TIUserModelDataStore, TIInputMode, NSMutableArray, NSObject, NSDictionary, NLTagger; @protocol OS_dispatch_queue, TISensorWriterWrapper; @interface TISKMetricCollector : NSObject { TIInputMode *_inputMode; NSMutableDictionary *_touchToEventMap; NSMutableArray *_events; NSArray *_sortedEvents; NSMutableArray *_touches; NSMutableArray *_layoutIDs; NSMutableArray *_taps; long long _wordPosition; TIKeyboardInput *_lastInput; long long _currentWordPosition; long long _eventOrder; unsigned long long _aggregatedWordThreshold; TIUserModelDataStore *_userModelDataStore; BOOL _accentedLanguage; NSMutableArray *_accentedLayoutsMap; NSString *_identifier; NSObject *_workQueue; int _tccNotifyToken; BOOL _isTCCAuthorized; BOOL _skipTCCAuthorization; NSDictionary *_wordBucketDictionary; NSDictionary *_emojiBuckets; NLTagger *_tagger; NSString *_previousWord; } @property (nonatomic) unsigned long long wordAccumulationThreshold; @property (retain, nonatomic) id dataWriter; @property (retain, nonatomic) NSMutableArray *savedSessionStatsArray; @property (retain, nonatomic) NSMutableArray *currentSessionStatsArray; @property (retain, nonatomic) TITypingSession *typingSession; @property (nonatomic) BOOL isLoaded; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)makeMetricCollector:(id)a0 wordsThreshold:(unsigned long long)a1 isTesting:(BOOL)a2; + (BOOL)isSensorKitSupported:(id)a0; - (id)init:(id)a0; - (void)_clear; - (void)_consumeDeleteWordEvent:(id)a0; - (void)_haltSessionTypingTimer:(id)a0 event:(id)a1; - (void)_metricWalk; - (void)dealloc; - (void)_consumePathsAndPredictions:(id)a0 emojiSearchMode:(BOOL)a1; - (void)removeSessionStatsWithNegativeDurationFromArray:(id)a0 ForTypingSession:(id)a1; - (void)testTCCAuthorization; - (id)init:(id)a0 wordsThreshold:(unsigned long long)a1 accentedLanguage:(BOOL)a2; - (id)getWordBucketCategoryForWord:(id)a0; - (double)totalTimeSpan; - (void)handleTypingSession:(id)a0; - (id)init:(id)a0 wordsThreshold:(unsigned long long)a1 accentedLanguage:(BOOL)a2 skipTCCAuthorization:(BOOL)a3; - (long long)findIndexSessionStatsFromArray:(id)a0 thatHasLayout:(id)a1; - (id)_consumeTypingSession:(id)a0; - (void)loadEmojiBucketDictionaryIfNecessary; - (void)_processEvents; - (id)_mapIDToLayout:(unsigned long long)a0; - (id)eventsDescription:(BOOL)a0; - (id)lemmatizeWord:(id)a0; - (void)sessionDidEnd:(id)a0 aligned:(id)a1; - (id)privateEventsDescription; - (void)loadWordBucketDictionaryIfNecessary; - (id)consumeTypingSession:(id)a0; - (void).cxx_destruct; - (id)eventsDescription; - (void)placeTaskOnWorkQueue:(id /* block */)a0; - (void)_persistSavedSessionStatsArray; - (id)_insertEmojiSwitchEvents:(id)a0; - (double)totalTimeSpanFromLastTap; - (void)_consumeInputsAndTouches:(id)a0 occurenceTime:(double)a1 emojiSearchMode:(BOOL)a2; - (void)_mapTapsToEvents; - (void)processNewSessionStatsArray:(id)a0; - (id)loadDataWithFilename:(id)a0; - (id)_retrieveSavedSessionSampleArray; - (void)_consumeWordEntry:(id)a0; - (void)_resetConsumeState; - (void)_coalesceTaps; - (BOOL)publishIfSessionStatsHasWordCountMoreThanThreshold:(id)a0 withSessionStartTime:(BOOL)a1; - (void)setupSessionStatsForLayouts; - (void)_setupTCCAuthNotification; - (void)_loadStatsFromDataStore; - (void)_consumeUserAction:(id)a0; - (id)init:(id)a0 wordsThreshold:(unsigned long long)a1; @end