/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import #import #import @protocol RCTValueAnimatedNodeObserver; @interface RCTNativeAnimatedNodesManager : NSObject - (nonnull instancetype)initWithBridge:(nonnull RCTBridge *)bridge; - (void)updateAnimations; - (void)stepAnimations:(nonnull CADisplayLink *)displaylink; - (BOOL)isNodeManagedByFabric:(nonnull NSNumber *)tag; // graph - (void)createAnimatedNode:(nonnull NSNumber *)tag config:(NSDictionary *__nonnull)config; - (void)connectAnimatedNodes:(nonnull NSNumber *)parentTag childTag:(nonnull NSNumber *)childTag; - (void)disconnectAnimatedNodes:(nonnull NSNumber *)parentTag childTag:(nonnull NSNumber *)childTag; - (void)connectAnimatedNodeToView:(nonnull NSNumber *)nodeTag viewTag:(nonnull NSNumber *)viewTag viewName:(nonnull NSString *)viewName; - (void)restoreDefaultValues:(nonnull NSNumber *)nodeTag; - (void)disconnectAnimatedNodeFromView:(nonnull NSNumber *)nodeTag viewTag:(nonnull NSNumber *)viewTag; - (void)dropAnimatedNode:(nonnull NSNumber *)tag; // mutations - (void)setAnimatedNodeValue:(nonnull NSNumber *)nodeTag value:(nonnull NSNumber *)value; - (void)setAnimatedNodeOffset:(nonnull NSNumber *)nodeTag offset:(nonnull NSNumber *)offset; - (void)flattenAnimatedNodeOffset:(nonnull NSNumber *)nodeTag; - (void)extractAnimatedNodeOffset:(nonnull NSNumber *)nodeTag; // drivers - (void)startAnimatingNode:(nonnull NSNumber *)animationId nodeTag:(nonnull NSNumber *)nodeTag config:(NSDictionary *__nonnull)config endCallback:(nullable RCTResponseSenderBlock)callBack; - (void)stopAnimation:(nonnull NSNumber *)animationId; - (void)stopAnimationLoop; // events - (void)addAnimatedEventToView:(nonnull NSNumber *)viewTag eventName:(nonnull NSString *)eventName eventMapping:(NSDictionary *__nonnull)eventMapping; - (void)removeAnimatedEventFromView:(nonnull NSNumber *)viewTag eventName:(nonnull NSString *)eventName animatedNodeTag:(nonnull NSNumber *)animatedNodeTag; - (void)handleAnimatedEvent:(nonnull id)event; // listeners - (void)startListeningToAnimatedNodeValue:(nonnull NSNumber *)tag valueObserver:(nonnull id)valueObserver; - (void)stopListeningToAnimatedNodeValue:(nonnull NSNumber *)tag; @end