#pragma once #include #include #include #include #include #include #include namespace reanimated::css { enum class AnimationDirection { Normal, Reverse, Alternate, AlternateReverse }; enum class AnimationFillMode { None, Forwards, Backwards, Both }; enum class AnimationPlayState { Running, Paused }; struct CSSAnimationSettings { double duration; EasingFunction easingFunction; double delay; double iterationCount; AnimationDirection direction; AnimationFillMode fillMode; AnimationPlayState playState; }; struct PartialCSSAnimationSettings { std::optional duration; std::optional easingFunction; std::optional delay; std::optional iterationCount; std::optional direction; std::optional fillMode; std::optional playState; }; using CSSAnimationSettingsMap = std::unordered_map; using CSSAnimationSettingsUpdatesMap = std::unordered_map; struct CSSAnimationUpdates { std::optional> animationNames; CSSAnimationSettingsMap newAnimationSettings; CSSAnimationSettingsUpdatesMap settingsUpdates; }; CSSAnimationUpdates parseCSSAnimationUpdates( jsi::Runtime &rt, const jsi::Value &config); } // namespace reanimated::css