@class NSMutableArray, NSString, NSDate, EFDebouncer, EFLocked; @protocol EDResumable, EFScheduler; @interface EDUpdateThrottler : NSObject { struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _updatesLock; NSMutableArray *_unacknowledgedUpdates; } @property (class, readonly, nonatomic) EFLocked *instances; @property (readonly, copy, nonatomic) NSString *name; @property (readonly, nonatomic) double delayInterval; @property (readonly, nonatomic) long long scalingFactor; @property (nonatomic) BOOL hasChangesSinceLastUpdate; @property (retain, nonatomic) NSDate *lastUpdateDate; @property (retain, nonatomic) NSDate *lastAcknowledgementDate; @property (nonatomic) long long updateCounter; @property (retain, nonatomic) id<EDResumable> resumable; @property (retain, nonatomic) EFDebouncer *resumeClientDebouncer; @property (retain, nonatomic) id<EFScheduler> resumeClientScheduler; + (void)_registerInstance:(id)a0; + (void)resetAllInstances; - (void)dealloc; - (void)_reset; - (id)initWithDelayInterval:(double)a0 scalingFactor:(long long)a1; - (id)initWithName:(id)a0 delayInterval:(double)a1 resumable:(id)a2; - (void).cxx_destruct; - (unsigned long long)unacknowledgedUpdatesCountAndTimeSinceLastAcknowledgement:(double *)a0; - (id)updateWithBlock:(id /* block */)a0 unacknowledgedUpdatesCount:(unsigned long long *)a1; - (id)initWithName:(id)a0 delayInterval:(double)a1 scalingFactor:(long long)a2; @end