#import #import @class REANodesManager; typedef NSNumber* REANodeID; @protocol REAFinalNode - (void)update; @end @interface REAUpdateContext : NSObject @property (nonatomic) NSString* callID; @end @interface REANode : NSObject + (void)runPropUpdates:(nonnull REAUpdateContext *)context; - (instancetype)initWithID:(REANodeID)nodeID config:(NSDictionary *)config NS_DESIGNATED_INITIALIZER; @property (nonatomic, weak, nullable) REANodesManager *nodesManager; @property (nonatomic, nullable) REAUpdateContext *updateContext; @property (nonatomic, readonly, nonnull) REANodeID nodeID; - (_Nullable id)evaluate; - (_Nullable id)value; - (void)markUpdated; - (void)addChild:(REANode *)child NS_REQUIRES_SUPER; - (void)removeChild:(REANode *)child NS_REQUIRES_SUPER; - (void)dangerouslyRescheduleEvaluate; - (void)forceUpdateMemoizedValue:(id)value; - (void)onDrop; @end