@class NSString, NSArray, NSDictionary, NSDate, NSMutableDictionary; @protocol TIUserModelConfigurationDelegate, TIUserModelDataStoring; @interface TIUserModel : NSObject <TIUserModeling, TIMetricProviding> { id<TIUserModelDataStoring> _userModelStore; NSMutableDictionary *_durableCounters; NSMutableDictionary *_userModelValuesCollection; NSDictionary *_settingsDictionary; double _timeOfLastPersist; } @property (retain, nonatomic) NSDate *loadedDate; @property BOOL userModelRateLimitingDisabled; @property (readonly, nonatomic) NSString *inputMode; @property (copy, nonatomic) NSArray *weeklyMetricKeys; @property (readonly, nonatomic) NSDate *fromDate; @property (readonly) BOOL explicitTearDown; @property (weak, nonatomic) id<TIUserModelConfigurationDelegate> configurationDelegate; @property (readonly, nonatomic) NSDictionary *cachedSettingsDictionary; @property (readonly, nonatomic) NSArray *contexts; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)doLoad; - (void)dealloc; - (void)trackPowerLogIfNecessary; - (void)tearDown; - (BOOL)persistForDate:(id)a0; - (void).cxx_destruct; - (void)configureDurableCounterForName:(id)a0; - (void)loadIfNecessary; - (void)addDoubleToTransientCounter:(double)a0 forKey:(id)a1 andCandidateLength:(int)a2 andContext:(id)a3; - (void)addIntegerToTransientCounter:(int)a0 forKey:(id)a1 andCandidateLength:(int)a2 andContext:(id)a3; - (void)addToDurableCounter:(int)a0 forKey:(id)a1; - (void)configureDurableCounters; - (id)initWithInputMode:(id)a0 userModelDataStore:(id)a1; - (id)initWithInputMode:(id)a0 userModelDataStore:(id)a1 weeklyMetricKeys:(id)a2 fromDate:(id)a3 explicitTearDown:(BOOL)a4; - (void)loadSettings; - (id)populateSettingsDictionary; - (void)resetDurableCounterForKey:(id)a0; - (int)valueForDurableKey:(id)a0; - (id)valuesFromContext:(id)a0; @end