luxlabs header browser preview


@class NSDate, NSCalendar, NSString, NSArray, AnalyticsWorkspace, ImpoExpoService, NSObject, SystemSettingsRelay;
@protocol OS_dispatch_queue;

@interface NetworkAnalyticsModel : NSObject {
    NSString *journalName;
    AnalyticsWorkspace *workspace;
    NSObject<OS_dispatch_queue> *queue;
    ImpoExpoService *ieService;
    int wifiPredictionLogic;
    int cellPredictionLogic;
    int weightStrategy;
    NSString *_pathForReadingIpsFile;
    NSString *_simulatedJournalPath;
    unsigned long long periodPerDay;
    unsigned long long minimumEventsToConsiderPattern;
    long long firstEventTimeStampWifi;
    long long firstEventTimeStampCell;
    long long lastEventTimeStampWifi;
    long long lastEventTimeStampCell;
    unsigned long long numberOfDaysWithWifiEvents;
    unsigned long long numberOfDaysWithCellEvents;
    NSArray *defaultArrayOfDaysGroupWifi;
    NSArray *defaultArrayOfDaysGroupCell;
    NSArray *currentArrayOfDaysGroupWifi;
    NSArray *currentArrayOfDaysGroupCell;
    long long timezoneOffsetFromUtcNoDaylight;
    long long homeTimezoneOffsetFromUtcNoDaylight;
    BOOL homeTimezoneOffsetKnownCoreRoutine;
    double wifiPredictionError;
    double cellPredictionError;
    NSArray *defaultLQMPredictionsWifi;
    NSArray *defaultLQMPredictionsCell;
    NSArray *currentLQMPredictionsWifi;
    NSArray *currentLQMPredictionsCell;
    NSString *currentlyConnectedWifiSsid;
    NSArray *disconnectionPatternsWifi;
    id _cellEpochObserver;
    id _wifiEpochObserver;
    id _timezoneChangedObserver;
    NSCalendar *_calendar;
    unsigned long long limMinSamples;
    double limRatio;
    SystemSettingsRelay *systemSettingsRelay;
}

@property (retain) NSDate *lastModelRunTime;
@property (retain) NSDate *debugTrainingTime;
@property (nonatomic) BOOL isHelper;

+ (id)getDaysWithSimilarPatternForInterfaceType:(long long)a0;
+ (double)fetchPredictionErrorForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4;
+ (double)fetchTrainingProgressForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4;
+ (id)modelGeneratedAt;
+ (id)fetchPredictionsForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4 error:(id *)a5;
+ (unsigned long long)modelResolution;
+ (void)purgeAllJournalRecords;
+ (void)resetModel;

- (double)_fetchTrainingProgressForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4;
- (int)_elbowOfList:(id)a0;
- (unsigned long long)_getWeightForAge:(long long)a0;
- (void)dealloc;
- (unsigned long long)_modelResolution;
- (void)_trainModelForInterfaceType:(long long)a0 sanitizedLQMTable:(id)a1;
- (id)_learnDisconnectionPatternForSetOfDays:(id)a0 impairmentEvents:(id)a1;
- (id)_getPredictionJournalNameWithPrefix:(id)a0 forInterface:(long long)a1 slotSizeMinutes:(unsigned long long)a2;
- (long long)_getDominantLQMInSlotWithTimeSpentInBest:(long long)a0 inFair:(long long)a1 inMinimallyViable:(long long)a2 inNone:(long long)a3;
- (id)_getDaysWithSimilarPatternForInterfaceType:(long long)a0;
- (void)trainModel;
- (id)_purgeAndReturnValidJournalWithPrefix:(id)a0 olderThan:(unsigned long long)a1;
- (id)initWithJournalName:(id)a0 workspace:(id)a1 queue:(id)a2;
- (long long)_getNWInstantQualityForNetwork:(long long)a0 basedOnLQM:(char)a1;
- (double)_fetchPredictionErrorForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4;
- (struct { long long x0; long long x1; long long x2; long long x3; })_parseTimeIntoWeekdayAndSlotId:(long long)a0 withReferenceDate:(id)a1;
- (void)_updateHomeTimezoneOffsetIfNeeded;
- (BOOL)_isLegacyJournal:(id)a0;
- (BOOL)_savePredictionToJournalForInterface:(long long)a0;
- (id)_clusterEventsUsingKMeansForSetOfDays:(id)a0 networkStateTable:(id)a1 saveCentroidsTo:(id)a2;
- (long long)_predictNetworkQualityBasedOnAverageNWInstantQuality:(double)a0;
- (void)_actUponSystemSettingsAirplaneChanged:(BOOL)a0 wifiChanged:(BOOL)a1 cellDataChanged:(BOOL)a2;
- (id)_getSavedPredictionHeaderNameForInterface:(long long)a0;
- (void)_resetModel;
- (void)_purgeSavedPredictionsOlderThan:(unsigned long long)a0;
- (id)_getComplementaryPredictionNameForInterface:(long long)a0;
- (void)_fetchHomeTimezoneOffsetFromJournal;
- (unsigned long long)_sanitizeInternalLQMStateEventFrom:(id)a0 toTable:(id)a1;
- (void)_handleTimezoneChanged;
- (id)_readJournalEntriesUsingSimulatedfile;
- (void)_shuffleArray:(id)a0;
- (id)_fetchPredictionsForInterfaceType:(long long)a0 isAny:(BOOL)a1 isBuiltin:(BOOL)a2 scopedToLOI:(long long)a3 hasCustomSignature:(id)a4 error:(id *)a5;
- (void)_trainModelAt:(id)a0;
- (void)_processJournalData:(id)a0 startFrom:(long long)a1 endAt:(long long)a2 rawWifiStateSet:(id)a3 rawCellStateSet:(id)a4;
- (BOOL)_insertInternalNetworkStateRecordTo:(id)a0 networkId:(id)a1 networkLQM:(long long)a2 age:(long long)a3 dayOfWeek:(long long)a4 slotId:(long long)a5 numberOfSlots:(long long)a6 stateDuration:(long long)a7;
- (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3;
- (BOOL)_isValidTimezoneToReturnPredictions;
- (double)_clusterUsingKMeansOn:(id)a0 into:(int)a1 iterations:(int)a2 saveCentroidsTo:(id)a3;
- (void).cxx_destruct;
- (void)_purgeAllJournalRecords;
- (id)_readJournalEntriesUsingImpoExpoService;
- (void)processProxyTrain;
- (void)_loadLatestPredictionFromJournalWithInterfaceType:(long long)a0;
- (long long)_getCellInstantQualityBasedOnLQM:(char)a0;
- (id)_loadSavedPredictionBasedOnHeaderData:(id)a0 interface:(long long)a1;
- (BOOL)_shouldCreateIpsFile;
- (id)_readJournalEntriesUsingIpsfile;
- (unsigned long long)_getTotalWeightForCompletedHistory;
- (id)_createHeaderDataForSavedPredictionsName:(id)a0 hasComplementaryPrediction:(BOOL)a1 interfaceType:(long long)a2;
- (void)_printInternalStateSet:(id)a0;
- (long long)_getWifiInstantQualityBasedOnLQM:(char)a0;
- (void)_setCalendar:(id)a0;
- (void)_clusterImpairmentEventsUsingKMeansOn:(id)a0 saveCentroidsTo:(id)a1;
- (void)_handleNetworkNotificationFrom:(long long)a0 notification:(id)a1;
- (void)_processLowInternetModeRecord:(id)a0 addTo:(id)a1;
- (void)_removePrimarykeyAndLocationInJournalRecordInfo:(id)a0;
- (id)_clusterEventsInWeekUsingKMeansOn:(id)a0;
- (double)_evaluateErrorOfLQMPredictions:(id)a0 againstObservedLQMTable:(id)a1;
- (id)_extractImpairmentEventsFromNetworkStateTable:(id)a0 setOfDays:(id)a1;
- (void)_processNetworkState:(struct { struct _NSRange { unsigned long long x0; unsigned long long x1; } x0; char x1; int x2; int x3; long long x4; char x5; } *)a0 toStateSet:(id)a1 stateStartTimeInfo:(struct { long long x0; long long x1; long long x2; long long x3; })a2 stateEndTimeInfo:(struct { long long x0; long long x1; long long x2; long long x3; })a3 effectiveNetworkId:(id)a4;
- (struct { unsigned long long x0; unsigned long long x1; unsigned long long x2; double x3; double x4; unsigned long long x5; unsigned long long x6; double x7; double x8; unsigned long long x9; unsigned long long x10; double x11; double x12; })_calculateStatisticsFromNetworkStateTable:(id)a0 usingPredicate:(id)a1;
- (long long)_getCurrentLocationTimezoneOffsetWithoutDST;
- (BOOL)_isValidTimezoneToTrain;
- (void)_generatePredictionForDays:(id)a0 fromClusteredEvents:(id)a1 clusterCentroids:(id)a2 interfaceType:(long long)a3 basedOnWeekClusters:(long long)a4 savePredictionsTo:(id)a5;
- (void)_finishedReadingLowInternetModeRecords:(id)a0;
- (id)_readJournalEntries;

@end