hunk.code_window:   /** When falsy, the animation did not reach its end value. */
     finished?: boolean
     /** When true, the animation was cancelled before it could finish. */
     cancelled?: boolean
   }>
   /** `SpringProps` without `to` or `from` */
   export interface AnimationProps<P extends string = string> {
     /**
      * Configure the spring behavior for each key.
  
hunk.labels: keep keep keep keep replace keep keep keep keep keep
hunk.after_edit: }
  
hunk.file_path: packages/core/src/types/animated.ts
hunk.type: replace
file: import { ReactNode } from 'react'
  import { UseTransitionProps, ItemKeys } from './useTransition'
  import {
    TransitionPhase,
    NoInfer,
    OneOrMore,
    Valid,
    Falsy,
    PickAnimated,
  } from './types/common'
  import { SpringValues } from './types/spring'
  import { UseSpringProps } from './useSpring'
  
  //
  // <Spring/>
  //
  
  type SpringComponentProps<Props extends object = any> = unknown &
    UseSpringProps<Props> & {
      children: (values: SpringValues<PickAnimated<Props>>) => ReactNode
    }
  
  /**
   * The `Spring` component passes `SpringValue` objects to your render prop.
   */
  export declare const Spring: <Props extends object>(
    props:
      | (Props & Valid<Props, SpringComponentProps<Props>>)
      | SpringComponentProps
  ) => JSX.Element
  
  //
  // <Trail/>
  //
  
  type TrailComponentProps<Item, Props extends object = any> = unknown &
    UseSpringProps<Props> & {
      items: readonly Item[]
      children: (
        item: NoInfer<Item>,
        index: number
      ) => ((values: SpringValues<PickAnimated<Props>>) => ReactNode) | Falsy
    }
  
  export declare const Trail: <Item, Props extends object>(
    props:
      | (Props & Valid<Props, TrailComponentProps<Item, Props>>)
      | TrailComponentProps<NoInfer<Item>>
  ) => JSX.Element
  
  //
  // <Transition/>
  //
  
  type TransitionComponentProps<Item, Props extends object = any> = unknown &
    UseTransitionProps<Item> & {
      keys?: ItemKeys<NoInfer<Item>>
      items: OneOrMore<Item>
      children: (
        item: NoInfer<Item>,
        phase: TransitionPhase,
        index: number
      ) => ((values: SpringValues<PickAnimated<Props>>) => ReactNode) | Falsy
    }
  
  export declare const Transition: <Item, Props extends object>(
    props:
      | (Props & Valid<Props, TransitionComponentProps<Item, Props>>)
      | TransitionComponentProps<Item>
  ) => JSX.Element
  