luxlabs header browser preview


@class NSHashTable, NSString, NSArray, _HKDelayedOperation, NSMutableDictionary, HKCalendarCache, HKMCAnalysisProvider, NSObject, HKMCAnalysis, NSMutableIndexSet, NSNumber;
@protocol OS_dispatch_queue, HKMCViewModelProviderDataSource;

@interface HKMCViewModelProvider : NSObject <HKMCViewModelProviderDataSourceDelegate, HKMCAnalysisProviderObserver> {
    id<HKMCViewModelProviderDataSource> _dataSource;
    HKMCAnalysisProvider *_analysisProvider;
    NSHashTable *_observers;
    NSObject<OS_dispatch_queue> *_queue;
    BOOL _shouldFetchCycleFactors;
    long long _prefetchDuration;
    struct { long long start; long long duration; } _managedDayRange;
    NSMutableIndexSet *_fetchStartedDayIndexes;
    NSMutableIndexSet *_fetchCompletedDayIndexes;
    NSMutableDictionary *_daySummariesByDayIndex;
    NSArray *_cycleFactors;
    NSNumber *_minimumAnalysisAnchor;
    HKMCAnalysis *_analysis;
    _HKDelayedOperation *_notifyObserversOperation;
}

@property (nonatomic) long long maximumActiveDuration;
@property (readonly, nonatomic) HKCalendarCache *calendarCache;
@property (nonatomic) struct { long long start; long long duration; } activeDayRange;
@property (readonly, nonatomic) long long minimumBufferDuration;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

- (void)removeObserver:(id)a0;
- (void).cxx_destruct;
- (void)addObserver:(id)a0;
- (void)_queue_notifyObserversDidUpdate;
- (id)_copyWithDataSource:(id)a0 minimumBufferDuration:(long long)a1;
- (BOOL)_didFetchInitialAnalysis;
- (BOOL)_didFetchMinimumAnalysis;
- (unsigned long long)_fertileWindowLevelWithDayIndex:(long long)a0;
- (long long)_fetchStateForDayIndex:(long long)a0;
- (id)_initWithDataSource:(id)a0 analysisProvider:(id)a1 maximumActiveDuration:(long long)a2 minimumBufferDuration:(long long)a3 prefetchDuration:(long long)a4 shouldFetchCycleFactors:(BOOL)a5 calendarCache:(id)a6 queue:(id)a7;
- (unsigned long long)_menstruationLevelWithDayIndex:(long long)a0 menstrualFlow:(long long)a1 partiallyLoggedPeriod:(BOOL *)a2;
- (BOOL)_ppt_didFetchAnalysis;
- (BOOL)_ppt_didFetchDaySummaries;
- (void)_queue_runNotifyObserversOperationNow;
- (void)_setFetchState:(long long)a0 forDayIndexRange:(struct { long long x0; long long x1; })a1;
- (struct { long long x0; long long x1; })_test_managedDayRange;
- (void)_updateManagedDayRangeIfNeeded;
- (id)_viewModelWithDayIndex:(long long)a0 fetchedDaySummary:(id)a1;
- (void)analysisProvider:(id)a0 didUpdateAnalysis:(id)a1;
- (id)copyWithMinimumBufferDuration:(long long)a0;
- (id)dayViewModelAtIndex:(long long)a0;
- (id)initWithHealthStore:(id)a0 analysisProvider:(id)a1 maximumActiveDuration:(long long)a2 minimumBufferDuration:(long long)a3 shouldFetchCycleFactors:(BOOL)a4 calendarCache:(id)a5;
- (id)initWithHealthStore:(id)a0 analysisProvider:(id)a1 maximumActiveDuration:(long long)a2 minimumBufferDuration:(long long)a3 shouldFetchCycleFactors:(BOOL)a4 calendarCache:(id)a5 queue:(id)a6;
- (void)setActiveCycles:(id)a0;
- (void)viewModelProviderDataSource:(id)a0 didFetchCycleFactors:(id)a1 forDayIndexRange:(struct { long long x0; long long x1; })a2;
- (void)viewModelProviderDataSource:(id)a0 didFetchDaySummaries:(id)a1 forDayIndexRange:(struct { long long x0; long long x1; })a2 daySummaryAnchor:(id)a3;
- (void)viewModelProviderDataSourceDidUpdateCycleFactors:(id)a0;
- (void)viewModelProviderDataSourceDidUpdateDaySummaries:(id)a0;

@end