#pragma once #ifdef RCT_NEW_ARCH_ENABLED #ifdef ANDROID #include #include #endif #include #include #include using namespace facebook; using namespace react; namespace reanimated { struct UIManagerBindingPublic { void *vtable; std::shared_ptr uiManager_; std::unique_ptr eventHandler_; }; struct UIManagerPublic { void *vtable; SharedComponentDescriptorRegistry componentDescriptorRegistry_; UIManagerDelegate *delegate_; UIManagerAnimationDelegate *animationDelegate_{nullptr}; RuntimeExecutor const runtimeExecutor_{}; ShadowTreeRegistry shadowTreeRegistry_{}; BackgroundExecutor const backgroundExecutor_{}; ContextContainer::Shared contextContainer_; }; #ifdef ANDROID struct BindingPublic : public jni::HybridClass, public SchedulerDelegate, public LayoutAnimationStatusDelegate { std::shared_mutex installMutex_; std::shared_ptr mountingManager_; std::shared_ptr scheduler_; }; struct SchedulerPublic : public UIManagerDelegate { SchedulerDelegate *delegate_; SharedComponentDescriptorRegistry componentDescriptorRegistry_; RuntimeExecutor runtimeExecutor_; }; RuntimeExecutor getRuntimeExecutorFromBinding(Binding *binding); #endif std::shared_ptr getContextContainerFromUIManager( const UIManager *uiManager); } // namespace reanimated #endif // RCT_NEW_ARCH_ENABLED