1 #pragma once
2 
3 namespace reanimated {
4 
5 enum class ValueType {
6   UndefinedType,
7   NullType,
8   BoolType,
9   NumberType,
10   StringType,
11   RemoteObjectType, // object that can be instantiated on host side and modified
12                     // on the remote (worklet) side
13   MutableValueType, // object with 'value' property that can be updated and read
14                     // from any thread
15   HostFunctionType, // function that will be executed asynchronously on the host
16                     // runtime
17   WorkletFunctionType, // function that gets run on the UI thread
18   FrozenObjectType, // frozen object, can only be set and never modified
19   FrozenArrayType, // frozen array, can only be set and never modified
20 #ifdef RCT_NEW_ARCH_ENABLED
21   ShadowNodeType, // ShadowNode::Shared
22 #endif // RCT_NEW_ARCH_ENABLED
23 };
24 
25 class ShareableValue;
26 class MutableValue;
27 class RemoteObject;
28 class NativeReanimatedModule;
29 
30 } // namespace reanimated
31