@class NSError, NSString, NSArray, NSDate, NSSet, NSMutableDictionary, NSHashTable, BSAuditHistory, NSMutableSet, NSObject, NSMutableArray; @protocol OS_dispatch_queue, OS_os_log; @interface BSTransaction : NSObject { NSMutableArray *_parentTransactionRelationships; NSMutableSet *_lifeAssertions; BOOL _aborted; BOOL _interrupted; BOOL _inSubclassBegin; NSDate *_startTime; NSMutableDictionary *_milestonesToHandlers; NSMutableArray *_childTransactionRelationships; NSMutableSet *_milestones; NSHashTable *_observers; unsigned long long _state; BSAuditHistory *_auditHistory; NSObject *_auditHistoryLog; BOOL _disableDebugLogCheckForUnitTesting; BOOL _debugLoggingEnabled; NSMutableSet *_debugLogCategories; NSString *_cachedDescriptionProem; NSMutableArray *_blockObservers; id /* block */ _completionBlock; BOOL _cachedDefaultBasedAuditHistoryEnabled; } @property (nonatomic, getter=isAuditHistoryEnabled) BOOL auditHistoryEnabled; @property (readonly, nonatomic) NSObject *queue; @property (readonly, nonatomic) NSSet *milestones; @property (readonly, nonatomic) NSArray *childTransactions; @property (readonly, nonatomic, getter=hasStarted) BOOL started; @property (readonly, nonatomic, getter=isRunning) BOOL running; @property (readonly, nonatomic, getter=isComplete) BOOL complete; @property (readonly, nonatomic, getter=isFinishedWorking) BOOL finishedWorking; @property (readonly, nonatomic, getter=isInterrupted) BOOL interrupted; @property (readonly, nonatomic, getter=isInterruptible) BOOL interruptible; @property (readonly, nonatomic, getter=isFailed) BOOL failed; @property (readonly, nonatomic) NSError *error; @property (readonly, nonatomic) NSArray *allErrors; @property (copy, nonatomic) id /* block */ completionBlock; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_didComplete; - (BOOL)_canBeInterrupted; - (id)_customizedDescriptionProperties; - (void)begin; - (void)_childTransactionDidComplete:(id)a0; - (void)_begin; - (void)_willComplete; - (id)init; - (void)_didSatisfyMilestone:(id)a0; - (void)_didRemoveChildTransaction:(id)a0; - (void)dealloc; - (void)removeObserver:(id)a0; - (void)_willBegin; - (id)_descriptionProem; - (id)_graphNodeDebugName; - (double)watchdogTimeout; - (void)_childTransactionDidFinishWork:(id)a0; - (void)_didInterruptWithReason:(id)a0; - (BOOL)_shouldFailForChildTransaction:(id)a0; - (void).cxx_destruct; - (void)interrupt; - (void)_willAddChildTransaction:(id)a0; - (void)_didBegin; - (void)_willInterruptWithReason:(id)a0; - (void)addObserver:(id)a0; - (void)_willFailWithReason:(id)a0; - (BOOL)shouldWatchdog:(id *)a0; - (void)_failForTimeoutWithDescription:(id)a0; - (void)failWithReason:(id)a0; - (BOOL)isInterruptable; - (BOOL)_shouldComplete; - (void)_addAuditHistoryItem:(id)a0; - (void)_addDebugLogCategory:(id)a0; - (id)_debugLogCategories; - (BOOL)_debugLoggingEnabled; - (void)_didAddChildTransaction:(id)a0; - (void)_didFinishWork; - (void)_enumerateObserversWithBlock:(id /* block */)a0; - (void)_evaluateCompletion; - (void)_failWithReason:(id)a0 description:(id)a1; - (void)_failWithReason:(id)a0 description:(id)a1 precipitatingError:(id)a2; - (BOOL)_isRootTransaction; - (id)_loggingProem; - (void)_removeDebugLogCategory:(id)a0; - (BOOL)_revertWithReason:(id)a0; - (id)_stringForMilestones:(id)a0; - (void)_willRemoveChildTransaction:(id)a0; - (void)addChildTransaction:(id)a0; - (void)addChildTransaction:(id)a0 withSchedulingPolicy:(unsigned long long)a1; - (void)addMilestone:(id)a0; - (void)addMilestones:(id)a0; - (id)childTransactionsOfClass:(Class)a0; - (void)evaluateMilestone:(id)a0 withEvaluator:(id /* block */)a1; - (BOOL)hasChildTransactionsOfClass:(Class)a0; - (void)interruptWithReason:(id)a0; - (BOOL)isWaitingForMilestone:(id)a0; - (void)listenForSatisfiedMilestone:(id)a0 withBlock:(id /* block */)a1; - (void)registerBlockObserver:(id /* block */)a0; - (void)removeAllChildTransactions; - (void)removeAllChildTransactionsOfClass:(Class)a0; - (void)removeAllMilestones; - (void)removeChildTransaction:(id)a0; - (BOOL)removeMilestone:(id)a0; - (BOOL)removeMilestones:(id)a0; - (void)satisfyMilestone:(id)a0; @end