text: //
  //  _ASTransitionContext.h
  //  Texture
  //
  //  Copyright (c) Facebook, Inc. and its affiliates.  All rights reserved.
  //  Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc.  All rights reserved.
  //  Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
  //
  
  #import <Foundation/Foundation.h>
  
  #import <AsyncDisplayKit/ASContextTransitioning.h>
  
  @class ASLayout;
  @class _ASTransitionContext;
  
  @protocol _ASTransitionContextLayoutDelegate <NSObject>
  
  - (NSArray<ASDisplayNode *> *)currentSubnodesWithTransitionContext:(_ASTransitionContext *)context;
  
  - (NSArray<ASDisplayNode *> *)insertedSubnodesWithTransitionContext:(_ASTransitionContext *)context;
  - (NSArray<ASDisplayNode *> *)removedSubnodesWithTransitionContext:(_ASTransitionContext *)context;
  
  - (ASLayout *)transitionContext:(_ASTransitionContext *)context layoutForKey:(NSString *)key;
  - (ASSizeRange)transitionContext:(_ASTransitionContext *)context constrainedSizeForKey:(NSString *)key;
  
  @end
  
  @protocol _ASTransitionContextCompletionDelegate <NSObject>
  
  - (void)transitionContext:(_ASTransitionContext *)context didComplete:(BOOL)didComplete;
  
  @end
  
  @interface _ASTransitionContext : NSObject <ASContextTransitioning>
  
  @property (nonatomic, readonly, getter=isAnimated) BOOL animated;
  
  - (instancetype)initWithAnimation:(BOOL)animated
                     layoutDelegate:(id<_ASTransitionContextLayoutDelegate>)layoutDelegate
                 completionDelegate:(id<_ASTransitionContextCompletionDelegate>)completionDelegate;
  
  @end
  
  @interface _ASAnimatedTransitionContext : NSObject
  @property (nonatomic, readonly) ASDisplayNode *node;
  @property (nonatomic, readonly) CGFloat alpha;
  + (instancetype)contextForNode:(ASDisplayNode *)node alpha:(CGFloat)alphaValue NS_RETURNS_RETAINED;
  @end
  