1 // Copyright 2022-present 650 Industries. All rights reserved.
2 
3 #import <Foundation/Foundation.h>
4 #import <ExpoModulesCore/EXJavaScriptValue.h>
5 #import <ExpoModulesCore/EXJavaScriptRuntime.h>
6 
7 #ifdef __cplusplus
8 #import <jsi/jsi.h>
9 
10 namespace jsi = facebook::jsi;
11 #endif // __cplusplus
12 
13 NS_SWIFT_NAME(JavaScriptWeakObject)
14 @interface EXJavaScriptWeakObject : NSObject
15 
16 #ifdef __cplusplus
17 - (nonnull instancetype)initWith:(std::shared_ptr<jsi::Object>)jsObject
18                          runtime:(nonnull EXJavaScriptRuntime *)runtime;
19 #endif // __cplusplus
20 
21 - (nullable EXJavaScriptObject *)lock;
22 
23 @end
24