@class NSHashTable, NSString, NSThread, NSISObjectiveLinearExpression, _NSISVariableObservable, NSMutableDictionary, NSMutableArray, NSObject, NSISVariableObservation, NSMapTable, NSISVariable; @protocol NSISEngineDelegate, NSObservable; @interface NSISEngine : NSObject { NSMutableArray *_pendingRemovals; NSHashTable *_pendingMarkerDelegates; NSObject *_variableChangeTransactionSignal; NSMapTable *_variableObservables; _NSISVariableObservable *_dirtyObservables; NSMapTable *_brokenConstraintPositiveErrors; NSMapTable *_brokenConstraintNegativeErrors; id /* block */ _unsatisfiabilityHandler; unsigned long long _pivotCount; unsigned long long _variableChangeCount; NSMutableDictionary *_recordedOperations; NSThread *_allowedBGThread; int _automaticOptimizationDisabledCount; int _engineDelegateCallsDisabledCount; int _variableDelegateCallsDisabledCount; unsigned int _totalChangeCount; unsigned int _changeCountAtLastOptimization; BOOL _accumulatingRemovals; BOOL _engineNeedsOptimization; BOOL _allowUnoptimizedReads; BOOL _optimizationInProgress; BOOL _accessedFromMainThread; BOOL _engineNeedsRebuildFromConstraints; BOOL _changeNotificationsDirty; struct NSISObjectTable { } *_variablesObservations; NSISVariableObservation *_dirtyVariableObservations; NSMapTable *_rows; struct { struct *blocks; unsigned long long blocksCount; unsigned long long blocksCapacity; struct { union { unsigned long long _data; unsigned long long *_buckets; } ; unsigned int _bucketCount; unsigned int _popCount; } freeIndexes; } _engineVarTable; struct { struct *blocks; unsigned long long blocksCount; unsigned long long blocksCapacity; struct { union { unsigned long long _data; unsigned long long *_buckets; } ; unsigned int _bucketCount; unsigned int _popCount; } freeIndexes; } _rowTables[2]; struct { struct *blocks; unsigned long long blocksCount; unsigned long long blocksCapacity; struct { union { unsigned long long _data; unsigned long long *_buckets; } ; unsigned int _bucketCount; unsigned int _popCount; } freeIndexes; } _colTables[2]; NSISVariable *_headForObjectiveRow; struct { NSISEngine *engine; struct *storage; } _objectiveRow; NSISVariable *_placeholderHeadForExpressionBeingAdded; } @property (class) BOOL enableEngineTrace; @property (class, copy) NSString *traceFileSuffix; @property (retain) NSMutableArray *variablesWithValueRestrictionViolations; @property (retain) NSISVariable *artificialRowHead; @property (retain) NSISVariable *artificialObjectiveRowHead; @property (retain) NSISObjectiveLinearExpression *artificialObjectiveRowBody; @property id delegate; @property BOOL shouldIntegralize; @property BOOL revertsAfterUnsatisfiabilityHandler; @property (readonly) unsigned long long variableChangeCount; @property (readonly, getter=isOptimizationInProgress) BOOL optimizationInProgress; @property (nonatomic) struct CGSize { double width; double height; } engineScalingCoefficients; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (BOOL)_dbg_anyEngineContainsVariable:(id)a0; + (void)setLogOnInvalidUseFromBGThread:(BOOL)a0; - (id)constraints; - (id)init; - (void)dealloc; - (BOOL)nsis_valueOfVariableIsUserObservable:(id)a0; - (int)nsis_orientationHintForVariable:(id)a0; - (void)nsis_valueOfVariable:(id)a0 didChangeInEngine:(id)a1; - (unsigned long long)rowCount; - (void)verifyInternalIntegrity; - (id)nsis_descriptionOfVariable:(id)a0; - (id)candidateRedundantConstraints; - (id)constraintsAffectingValueOfVariable:(id)a0; - (BOOL)exerciseAmbiguityInVariable:(id)a0; - (BOOL)hasValue:(double *)a0 forVariable:(id)a1; - (BOOL)isObservingChangesForVariable:(id)a0; - (id)observableForVariable:(id)a0; - (void)performPendingChangeNotifications; - (unsigned long long)pivotCount; - (void)removeObservableForVariable:(id)a0; - (void)startObservingChangesForVariable:(id)a0; - (void)stopObservingChangesForVariable:(id)a0; - (struct { unsigned long long x0; unsigned long long x1; unsigned int x2; unsigned int x3; unsigned int x4; struct *x5; } *)traceState; - (double)valueForVariable:(id)a0; - (BOOL)valueOfVariableIsAmbiguous:(id)a0; - (void)withAutomaticOptimizationDisabled:(id /* block */)a0; - (id)variableChangeTransactionSignal; - (id)_brokenConstraintNegativeErrorsIfAvailable; - (id)_brokenConstraintPositiveErrorsIfAvailable; - (unsigned long long)_optimizeWithoutRebuilding; - (void)addVariableToBeOptimized:(id)a0 priority:(double)a1; - (id)allVariableValues; - (void)beginBookkeepingForVariableIfNeeded:(id)a0; - (void)beginRecording; - (void)changeVariableToBeOptimized:(id)a0 fromPriority:(double)a1 toPriority:(double)a2; - (unsigned long long)colCount; - (void)constraintDidChangeSuchThatMarker:(id)a0 shouldBeReplacedByMarkerPlusDelta:(double)a1; - (BOOL)containsConstraintWithMarker:(id)a0; - (BOOL)containsVariable:(id)a0; - (void)endBookkeepingForVariableIfUnused:(id)a0; - (struct { unsigned int x0; })engineVarIndexForVariable:(id)a0; - (void)enumerateRows:(id /* block */)a0; - (BOOL)hasObservableForVariable:(id)a0; - (BOOL)hasValue:(double *)a0 forExpression:(id)a1; - (BOOL)hasValueForPossiblyDeallocatedVariable:(id)a0; - (double)integralizationAdjustmentForMarker:(id)a0; - (BOOL)isTrackingVariableChanges; - (unsigned long long)optimize; - (void)performModifications:(id /* block */)a0 withUnsatisfiableConstraintsHandler:(id /* block */)a1; - (void)performPendingChangeNotificationsForItem:(id)a0; - (id)recordedCommandsData; - (void)removeConstraintWithMarker:(id)a0; - (void)removeVariableToBeOptimized:(id)a0 priority:(double)a1; - (unsigned long long)replayCommandsData:(id)a0 verifyingIntegrity:(BOOL)a1; - (BOOL)tryToAddConstraintWithMarker:(id)a0 expression:(id)a1 integralizationAdjustment:(double)a2 mutuallyExclusiveConstraints:(id *)a3; - (BOOL)tryToAddConstraintWithMarker:(id)a0 expression:(id)a1 mutuallyExclusiveConstraints:(id *)a2; - (BOOL)tryToChangeConstraintSuchThatMarker:(id)a0 isReplacedByMarkerPlusDelta:(double)a1 undoHandler:(id /* block */)a2; - (double)valueForExpression:(id)a0; - (int)valueRestrictionForEngineVarIndex:(struct { unsigned int x0; })a0; - (id)variableForEngineVarIndex:(struct { unsigned int x0; })a0; - (void)withBehaviors:(unsigned long long)a0 performModifications:(id /* block */)a1; - (void)withDelegateCallsDisabled:(id /* block */)a0; - (void)withoutOptimizingAtEndRunBlockWithAutomaticOptimizationDisabled:(id /* block */)a0; @end