@onefootprint/footprint-native-camera-module 0.0.1-bootstrap.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/Info.plist +44 -0
  2. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64/FootprintNativeCamera.framework/FootprintNativeCamera +0 -0
  3. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64/FootprintNativeCamera.framework/Headers/FootprintNativeCamera.h +1062 -0
  4. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64/FootprintNativeCamera.framework/Info.plist +35 -0
  5. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64/FootprintNativeCamera.framework/Modules/module.modulemap +8 -0
  6. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCamera.framework/FootprintNativeCamera +0 -0
  7. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCamera.framework/Headers/FootprintNativeCamera.h +1062 -0
  8. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCamera.framework/Info.plist +31 -0
  9. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCamera.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCamera.framework/Modules/module.modulemap +5 -0
  10. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/Info.plist +44 -0
  11. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift +0 -0
  12. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/Assets.car +0 -0
  13. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/Info.plist +0 -0
  14. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/Info.plist +0 -0
  15. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios.abi.json +12168 -0
  16. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios.private.swiftinterface +442 -0
  17. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  18. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios.swiftinterface +442 -0
  19. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift +0 -0
  20. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/Assets.car +0 -0
  21. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/Info.plist +0 -0
  22. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/_CodeSignature/CodeDirectory +0 -0
  23. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/_CodeSignature/CodeRequirements +0 -0
  24. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/_CodeSignature/CodeResources +109 -0
  25. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/FootprintNativeCameraSwift_FootprintNativeCameraSwift.bundle/_CodeSignature/CodeSignature +0 -0
  26. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Info.plist +0 -0
  27. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios-simulator.abi.json +12168 -0
  28. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +442 -0
  29. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  30. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/arm64-apple-ios-simulator.swiftinterface +442 -0
  31. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/x86_64-apple-ios-simulator.abi.json +12168 -0
  32. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +442 -0
  33. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  34. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/Modules/FootprintNativeCameraSwift.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +442 -0
  35. package/FootprintNativeCameraSwift/Frameworks/FootprintNativeCameraSwift.xcframework/ios-arm64_x86_64-simulator/FootprintNativeCameraSwift.framework/_CodeSignature/CodeResources +101 -0
  36. package/FootprintNativeCameraSwift.podspec +37 -0
  37. package/README.md +32 -1
  38. package/android/build.gradle +63 -0
  39. package/android/libs/footprint-native-camera-module.aar +0 -0
  40. package/android/src/main/AndroidManifest.xml +5 -0
  41. package/index.js +5 -0
  42. package/package.json +38 -3
  43. package/react-native.config.js +20 -0
@@ -0,0 +1,1062 @@
1
+ #import <Foundation/NSArray.h>
2
+ #import <Foundation/NSDictionary.h>
3
+ #import <Foundation/NSError.h>
4
+ #import <Foundation/NSObject.h>
5
+ #import <Foundation/NSSet.h>
6
+ #import <Foundation/NSString.h>
7
+ #import <Foundation/NSValue.h>
8
+
9
+ @class FNCAutoCaptureStatus, FNCCameraCaptureState, FNCCameraUiState, FNCCaptureAppearance, FNCCaptureAppearanceCompanion, FNCCaptureCopy, FNCCaptureError, FNCCaptureErrorKind, FNCCaptureErrorSeverity, FNCCaptureImageError, FNCCaptureMode, FNCCaptureTheme, FNCCaptureThemeCompanion, FNCCaptureTranslations, FNCDocumentProcessResult, FNCDocumentSides, FNCImageError, FNCIosDocumentCaptureCoordinator, FNCKotlinArray<T>, FNCKotlinEnum<E>, FNCKotlinEnumCompanion, FNCKotlinException, FNCKotlinIllegalStateException, FNCKotlinRuntimeException, FNCKotlinThrowable, FNCKotlinUnit, FNCUploadMetadata, NSError;
10
+
11
+ @protocol FNCCaptureUploadClient, FNCKotlinComparable, FNCKotlinCoroutineContext, FNCKotlinCoroutineContextElement, FNCKotlinCoroutineContextKey, FNCKotlinIterator, FNCKotlinx_coroutines_coreCoroutineScope;
12
+
13
+ NS_ASSUME_NONNULL_BEGIN
14
+ #pragma clang diagnostic push
15
+ #pragma clang diagnostic ignored "-Wunknown-warning-option"
16
+ #pragma clang diagnostic ignored "-Wincompatible-property-type"
17
+ #pragma clang diagnostic ignored "-Wnullability"
18
+
19
+ #pragma push_macro("_Nullable_result")
20
+ #if !__has_feature(nullability_nullable_result)
21
+ #undef _Nullable_result
22
+ #define _Nullable_result _Nullable
23
+ #endif
24
+
25
+ __attribute__((swift_name("KotlinBase")))
26
+ @interface FNCBase : NSObject
27
+ - (instancetype)init __attribute__((unavailable));
28
+ + (instancetype)new __attribute__((unavailable));
29
+ + (void)initialize __attribute__((objc_requires_super));
30
+ @end
31
+
32
+ @interface FNCBase (FNCBaseCopying) <NSCopying>
33
+ @end
34
+
35
+ __attribute__((swift_name("KotlinMutableSet")))
36
+ @interface FNCMutableSet<ObjectType> : NSMutableSet<ObjectType>
37
+ @end
38
+
39
+ __attribute__((swift_name("KotlinMutableDictionary")))
40
+ @interface FNCMutableDictionary<KeyType, ObjectType> : NSMutableDictionary<KeyType, ObjectType>
41
+ @end
42
+
43
+ @interface NSError (NSErrorFNCKotlinException)
44
+ @property (readonly) id _Nullable kotlinException;
45
+ @end
46
+
47
+ __attribute__((swift_name("KotlinNumber")))
48
+ @interface FNCNumber : NSNumber
49
+ - (instancetype)initWithChar:(char)value __attribute__((unavailable));
50
+ - (instancetype)initWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
51
+ - (instancetype)initWithShort:(short)value __attribute__((unavailable));
52
+ - (instancetype)initWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
53
+ - (instancetype)initWithInt:(int)value __attribute__((unavailable));
54
+ - (instancetype)initWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
55
+ - (instancetype)initWithLong:(long)value __attribute__((unavailable));
56
+ - (instancetype)initWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
57
+ - (instancetype)initWithLongLong:(long long)value __attribute__((unavailable));
58
+ - (instancetype)initWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
59
+ - (instancetype)initWithFloat:(float)value __attribute__((unavailable));
60
+ - (instancetype)initWithDouble:(double)value __attribute__((unavailable));
61
+ - (instancetype)initWithBool:(BOOL)value __attribute__((unavailable));
62
+ - (instancetype)initWithInteger:(NSInteger)value __attribute__((unavailable));
63
+ - (instancetype)initWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
64
+ + (instancetype)numberWithChar:(char)value __attribute__((unavailable));
65
+ + (instancetype)numberWithUnsignedChar:(unsigned char)value __attribute__((unavailable));
66
+ + (instancetype)numberWithShort:(short)value __attribute__((unavailable));
67
+ + (instancetype)numberWithUnsignedShort:(unsigned short)value __attribute__((unavailable));
68
+ + (instancetype)numberWithInt:(int)value __attribute__((unavailable));
69
+ + (instancetype)numberWithUnsignedInt:(unsigned int)value __attribute__((unavailable));
70
+ + (instancetype)numberWithLong:(long)value __attribute__((unavailable));
71
+ + (instancetype)numberWithUnsignedLong:(unsigned long)value __attribute__((unavailable));
72
+ + (instancetype)numberWithLongLong:(long long)value __attribute__((unavailable));
73
+ + (instancetype)numberWithUnsignedLongLong:(unsigned long long)value __attribute__((unavailable));
74
+ + (instancetype)numberWithFloat:(float)value __attribute__((unavailable));
75
+ + (instancetype)numberWithDouble:(double)value __attribute__((unavailable));
76
+ + (instancetype)numberWithBool:(BOOL)value __attribute__((unavailable));
77
+ + (instancetype)numberWithInteger:(NSInteger)value __attribute__((unavailable));
78
+ + (instancetype)numberWithUnsignedInteger:(NSUInteger)value __attribute__((unavailable));
79
+ @end
80
+
81
+ __attribute__((swift_name("KotlinByte")))
82
+ @interface FNCByte : FNCNumber
83
+ - (instancetype)initWithChar:(char)value;
84
+ + (instancetype)numberWithChar:(char)value;
85
+ @end
86
+
87
+ __attribute__((swift_name("KotlinUByte")))
88
+ @interface FNCUByte : FNCNumber
89
+ - (instancetype)initWithUnsignedChar:(unsigned char)value;
90
+ + (instancetype)numberWithUnsignedChar:(unsigned char)value;
91
+ @end
92
+
93
+ __attribute__((swift_name("KotlinShort")))
94
+ @interface FNCShort : FNCNumber
95
+ - (instancetype)initWithShort:(short)value;
96
+ + (instancetype)numberWithShort:(short)value;
97
+ @end
98
+
99
+ __attribute__((swift_name("KotlinUShort")))
100
+ @interface FNCUShort : FNCNumber
101
+ - (instancetype)initWithUnsignedShort:(unsigned short)value;
102
+ + (instancetype)numberWithUnsignedShort:(unsigned short)value;
103
+ @end
104
+
105
+ __attribute__((swift_name("KotlinInt")))
106
+ @interface FNCInt : FNCNumber
107
+ - (instancetype)initWithInt:(int)value;
108
+ + (instancetype)numberWithInt:(int)value;
109
+ @end
110
+
111
+ __attribute__((swift_name("KotlinUInt")))
112
+ @interface FNCUInt : FNCNumber
113
+ - (instancetype)initWithUnsignedInt:(unsigned int)value;
114
+ + (instancetype)numberWithUnsignedInt:(unsigned int)value;
115
+ @end
116
+
117
+ __attribute__((swift_name("KotlinLong")))
118
+ @interface FNCLong : FNCNumber
119
+ - (instancetype)initWithLongLong:(long long)value;
120
+ + (instancetype)numberWithLongLong:(long long)value;
121
+ @end
122
+
123
+ __attribute__((swift_name("KotlinULong")))
124
+ @interface FNCULong : FNCNumber
125
+ - (instancetype)initWithUnsignedLongLong:(unsigned long long)value;
126
+ + (instancetype)numberWithUnsignedLongLong:(unsigned long long)value;
127
+ @end
128
+
129
+ __attribute__((swift_name("KotlinFloat")))
130
+ @interface FNCFloat : FNCNumber
131
+ - (instancetype)initWithFloat:(float)value;
132
+ + (instancetype)numberWithFloat:(float)value;
133
+ @end
134
+
135
+ __attribute__((swift_name("KotlinDouble")))
136
+ @interface FNCDouble : FNCNumber
137
+ - (instancetype)initWithDouble:(double)value;
138
+ + (instancetype)numberWithDouble:(double)value;
139
+ @end
140
+
141
+ __attribute__((swift_name("KotlinBoolean")))
142
+ @interface FNCBoolean : FNCNumber
143
+ - (instancetype)initWithBool:(BOOL)value;
144
+ + (instancetype)numberWithBool:(BOOL)value;
145
+ @end
146
+
147
+
148
+ /**
149
+ * Decouples document image upload + processing from any specific HTTP client or
150
+ * `FootprintQueries`. Implementations are provided by consumers:
151
+ *
152
+ * - `HandoffSharedLogic` provides an adapter that delegates to its internal
153
+ * `FootprintQueries`.
154
+ * - The Expo SDK bridge provides an adapter that issues the same backend
155
+ * calls using the auth token + base URL passed across the JS boundary.
156
+ *
157
+ * The camera module is responsible for the per-side upload + process loop:
158
+ * 1. Capture image for current side.
159
+ * 2. `uploadImage(image, docId, side, metadata)`.
160
+ * 3. `processDocument(docId)` → if `nextSideToCollect` is non-null, repeat for that side.
161
+ * 4. Stop when `nextSideToCollect` is null or `isRetryLimitExceeded` is true.
162
+ */
163
+ __attribute__((swift_name("CaptureUploadClient")))
164
+ @protocol FNCCaptureUploadClient
165
+ @required
166
+
167
+ /**
168
+ * @note This method converts instances of CancellationException to errors.
169
+ * Other uncaught Kotlin exceptions are fatal.
170
+ */
171
+ - (void)processDocumentDocumentId:(NSString *)documentId completionHandler:(void (^)(FNCDocumentProcessResult * _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("processDocument(documentId:completionHandler:)")));
172
+
173
+ /**
174
+ * @note This method converts instances of CancellationException to errors.
175
+ * Other uncaught Kotlin exceptions are fatal.
176
+ */
177
+ - (void)uploadImageImageBase64:(NSString *)imageBase64 documentId:(NSString *)documentId side:(NSString *)side metadata:(FNCUploadMetadata *)metadata completionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("uploadImage(imageBase64:documentId:side:metadata:completionHandler:)")));
178
+ @end
179
+
180
+
181
+ /**
182
+ * iOS [CaptureUploadClient] that routes the mature CameraViewModel's per-side
183
+ * upload+process to JS via [IosDocumentCaptureCoordinator], bridging the VM's
184
+ * suspend calls to the Swift callback seam. Tracks uploaded sides for the result.
185
+ */
186
+ __attribute__((objc_subclassing_restricted))
187
+ __attribute__((swift_name("CallbackUploadClient")))
188
+ @interface FNCCallbackUploadClient : FNCBase <FNCCaptureUploadClient>
189
+
190
+ /**
191
+ * iOS [CaptureUploadClient] that routes the mature CameraViewModel's per-side
192
+ * upload+process to JS via [IosDocumentCaptureCoordinator], bridging the VM's
193
+ * suspend calls to the Swift callback seam. Tracks uploaded sides for the result.
194
+ */
195
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
196
+
197
+ /**
198
+ * iOS [CaptureUploadClient] that routes the mature CameraViewModel's per-side
199
+ * upload+process to JS via [IosDocumentCaptureCoordinator], bridging the VM's
200
+ * suspend calls to the Swift callback seam. Tracks uploaded sides for the result.
201
+ */
202
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
203
+
204
+ /**
205
+ * @note This method converts instances of CancellationException to errors.
206
+ * Other uncaught Kotlin exceptions are fatal.
207
+ */
208
+ - (void)processDocumentDocumentId:(NSString *)documentId completionHandler:(void (^)(FNCDocumentProcessResult * _Nullable, NSError * _Nullable))completionHandler __attribute__((swift_name("processDocument(documentId:completionHandler:)")));
209
+
210
+ /**
211
+ * @note This method converts instances of CancellationException to errors.
212
+ * Other uncaught Kotlin exceptions are fatal.
213
+ */
214
+ - (void)uploadImageImageBase64:(NSString *)imageBase64 documentId:(NSString *)documentId side:(NSString *)side metadata:(FNCUploadMetadata *)metadata completionHandler:(void (^)(NSError * _Nullable))completionHandler __attribute__((swift_name("uploadImage(imageBase64:documentId:side:metadata:completionHandler:)")));
215
+ @property (readonly) NSArray<NSString *> *uploadedSides __attribute__((swift_name("uploadedSides")));
216
+ @end
217
+
218
+
219
+ /**
220
+ * Shares the upload seam between the iOS Expo bridge (Swift) and the module's
221
+ * suspend [CaptureUploadClient]. The bridge sets [uploadSide] before launch: a
222
+ * callback-shaped seam (Swift can't hand Kotlin a `suspend` lambda) that emits
223
+ * the side to JS and calls `onResult`/`onError` when JS responds. One session at
224
+ * a time, so a single slot suffices.
225
+ */
226
+ __attribute__((objc_subclassing_restricted))
227
+ __attribute__((swift_name("IosDocumentCaptureCoordinator")))
228
+ @interface FNCIosDocumentCaptureCoordinator : FNCBase
229
+ + (instancetype)alloc __attribute__((unavailable));
230
+
231
+ /**
232
+ * Shares the upload seam between the iOS Expo bridge (Swift) and the module's
233
+ * suspend [CaptureUploadClient]. The bridge sets [uploadSide] before launch: a
234
+ * callback-shaped seam (Swift can't hand Kotlin a `suspend` lambda) that emits
235
+ * the side to JS and calls `onResult`/`onError` when JS responds. One session at
236
+ * a time, so a single slot suffices.
237
+ */
238
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
239
+ + (instancetype)iosDocumentCaptureCoordinator __attribute__((swift_name("init()")));
240
+ @property (class, readonly, getter=shared) FNCIosDocumentCaptureCoordinator *shared __attribute__((swift_name("shared")));
241
+ @property void (^ _Nullable uploadSide)(NSString *, NSString *, FNCBoolean *, FNCBoolean *, FNCKotlinUnit *(^)(FNCDocumentProcessResult *), FNCKotlinUnit *(^)(NSString *, NSString *)) __attribute__((swift_name("uploadSide")));
242
+ @end
243
+
244
+
245
+ /**
246
+ * All user-facing copy shown inside the document capture screen.
247
+ *
248
+ * The set is intentionally small — these are the only strings rendered by
249
+ * [DocumentCaptureScreen]. Anything more granular should land here, not in
250
+ * consumer code, so all consumers (Expo bridge, handoff flow, future native
251
+ * bridges) share one set.
252
+ *
253
+ * Translation tables for the canonical languages live in [CaptureTranslations].
254
+ */
255
+ __attribute__((objc_subclassing_restricted))
256
+ __attribute__((swift_name("CaptureCopy")))
257
+ @interface FNCCaptureCopy : FNCBase
258
+ - (instancetype)initWithTitleSelfie:(NSString *)titleSelfie selfieSubtitle:(NSString *)selfieSubtitle scanSideTitle:(NSString *)scanSideTitle documentTypeLabels:(NSDictionary<NSString *, NSString *> *)documentTypeLabels documentGeneric:(NSString *)documentGeneric sideFront:(NSString *)sideFront sideBack:(NSString *)sideBack sideSelfie:(NSString *)sideSelfie captureButton:(NSString *)captureButton cancelButton:(NSString *)cancelButton galleryButton:(NSString *)galleryButton statusIdle:(NSString *)statusIdle statusDetected:(NSString *)statusDetected statusDetectingDocument:(NSString *)statusDetectingDocument statusDocumentTooFar:(NSString *)statusDocumentTooFar statusDocumentNotCentered:(NSString *)statusDocumentNotCentered statusDetectingFace:(NSString *)statusDetectingFace statusFaceNotCentered:(NSString *)statusFaceNotCentered statusFaceNotStraight:(NSString *)statusFaceNotStraight statusFaceTooFar:(NSString *)statusFaceTooFar statusDeviceUnstable:(NSString *)statusDeviceUnstable confirmSelfieTitle:(NSString *)confirmSelfieTitle confirmDocumentTitle:(NSString *)confirmDocumentTitle useImageButton:(NSString *)useImageButton retakeButton:(NSString *)retakeButton uploadFromFilesButton:(NSString *)uploadFromFilesButton autoCaptureOn:(NSString *)autoCaptureOn autoCaptureOff:(NSString *)autoCaptureOff processingTitle:(NSString *)processingTitle processingDescription:(NSString *)processingDescription submittingSide:(NSString *)submittingSide sideSubmitted:(NSString *)sideSubmitted nextStepFront:(NSString *)nextStepFront nextStepBack:(NSString *)nextStepBack nextStepSelfie:(NSString *)nextStepSelfie errorTitle:(NSString *)errorTitle errorGeneric:(NSString *)errorGeneric multipleErrorsSubtitle:(NSString *)multipleErrorsSubtitle tryAgainButton:(NSString *)tryAgainButton __attribute__((swift_name("init(titleSelfie:selfieSubtitle:scanSideTitle:documentTypeLabels:documentGeneric:sideFront:sideBack:sideSelfie:captureButton:cancelButton:galleryButton:statusIdle:statusDetected:statusDetectingDocument:statusDocumentTooFar:statusDocumentNotCentered:statusDetectingFace:statusFaceNotCentered:statusFaceNotStraight:statusFaceTooFar:statusDeviceUnstable:confirmSelfieTitle:confirmDocumentTitle:useImageButton:retakeButton:uploadFromFilesButton:autoCaptureOn:autoCaptureOff:processingTitle:processingDescription:submittingSide:sideSubmitted:nextStepFront:nextStepBack:nextStepSelfie:errorTitle:errorGeneric:multipleErrorsSubtitle:tryAgainButton:)"))) __attribute__((objc_designated_initializer));
259
+ - (FNCCaptureCopy *)doCopyTitleSelfie:(NSString *)titleSelfie selfieSubtitle:(NSString *)selfieSubtitle scanSideTitle:(NSString *)scanSideTitle documentTypeLabels:(NSDictionary<NSString *, NSString *> *)documentTypeLabels documentGeneric:(NSString *)documentGeneric sideFront:(NSString *)sideFront sideBack:(NSString *)sideBack sideSelfie:(NSString *)sideSelfie captureButton:(NSString *)captureButton cancelButton:(NSString *)cancelButton galleryButton:(NSString *)galleryButton statusIdle:(NSString *)statusIdle statusDetected:(NSString *)statusDetected statusDetectingDocument:(NSString *)statusDetectingDocument statusDocumentTooFar:(NSString *)statusDocumentTooFar statusDocumentNotCentered:(NSString *)statusDocumentNotCentered statusDetectingFace:(NSString *)statusDetectingFace statusFaceNotCentered:(NSString *)statusFaceNotCentered statusFaceNotStraight:(NSString *)statusFaceNotStraight statusFaceTooFar:(NSString *)statusFaceTooFar statusDeviceUnstable:(NSString *)statusDeviceUnstable confirmSelfieTitle:(NSString *)confirmSelfieTitle confirmDocumentTitle:(NSString *)confirmDocumentTitle useImageButton:(NSString *)useImageButton retakeButton:(NSString *)retakeButton uploadFromFilesButton:(NSString *)uploadFromFilesButton autoCaptureOn:(NSString *)autoCaptureOn autoCaptureOff:(NSString *)autoCaptureOff processingTitle:(NSString *)processingTitle processingDescription:(NSString *)processingDescription submittingSide:(NSString *)submittingSide sideSubmitted:(NSString *)sideSubmitted nextStepFront:(NSString *)nextStepFront nextStepBack:(NSString *)nextStepBack nextStepSelfie:(NSString *)nextStepSelfie errorTitle:(NSString *)errorTitle errorGeneric:(NSString *)errorGeneric multipleErrorsSubtitle:(NSString *)multipleErrorsSubtitle tryAgainButton:(NSString *)tryAgainButton __attribute__((swift_name("doCopy(titleSelfie:selfieSubtitle:scanSideTitle:documentTypeLabels:documentGeneric:sideFront:sideBack:sideSelfie:captureButton:cancelButton:galleryButton:statusIdle:statusDetected:statusDetectingDocument:statusDocumentTooFar:statusDocumentNotCentered:statusDetectingFace:statusFaceNotCentered:statusFaceNotStraight:statusFaceTooFar:statusDeviceUnstable:confirmSelfieTitle:confirmDocumentTitle:useImageButton:retakeButton:uploadFromFilesButton:autoCaptureOn:autoCaptureOff:processingTitle:processingDescription:submittingSide:sideSubmitted:nextStepFront:nextStepBack:nextStepSelfie:errorTitle:errorGeneric:multipleErrorsSubtitle:tryAgainButton:)")));
260
+
261
+ /** Human-readable document-type name; falls back to a generic label. */
262
+ - (NSString *)documentTypeLabelDocumentKind:(NSString * _Nullable)documentKind __attribute__((swift_name("documentTypeLabel(documentKind:)")));
263
+
264
+ /**
265
+ * All user-facing copy shown inside the document capture screen.
266
+ *
267
+ * The set is intentionally small — these are the only strings rendered by
268
+ * [DocumentCaptureScreen]. Anything more granular should land here, not in
269
+ * consumer code, so all consumers (Expo bridge, handoff flow, future native
270
+ * bridges) share one set.
271
+ *
272
+ * Translation tables for the canonical languages live in [CaptureTranslations].
273
+ */
274
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
275
+
276
+ /**
277
+ * All user-facing copy shown inside the document capture screen.
278
+ *
279
+ * The set is intentionally small — these are the only strings rendered by
280
+ * [DocumentCaptureScreen]. Anything more granular should land here, not in
281
+ * consumer code, so all consumers (Expo bridge, handoff flow, future native
282
+ * bridges) share one set.
283
+ *
284
+ * Translation tables for the canonical languages live in [CaptureTranslations].
285
+ */
286
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
287
+
288
+ /** Per-side "next step" prompt (front / back / selfie). */
289
+ - (NSString *)nextStepDocumentSide:(NSString *)documentSide __attribute__((swift_name("nextStep(documentSide:)")));
290
+
291
+ /** Short side label for the given side (front / back / selfie). */
292
+ - (NSString *)sideLabelDocumentSide:(NSString *)documentSide __attribute__((swift_name("sideLabel(documentSide:)")));
293
+
294
+ /**
295
+ * Returns the right feedback-chip text for an [AutoCaptureStatus].
296
+ */
297
+ - (NSString *)statusTextStatus:(FNCAutoCaptureStatus *)status __attribute__((swift_name("statusText(status:)")));
298
+
299
+ /** Optional subtitle shown under the title (currently only the selfie step). */
300
+ - (NSString * _Nullable)subtitleDocumentSide:(NSString *)documentSide __attribute__((swift_name("subtitle(documentSide:)")));
301
+
302
+ /**
303
+ * Returns the right title for the side currently being captured.
304
+ * Side strings match the [DocumentSides] taxonomy.
305
+ */
306
+ - (NSString *)titleDocumentSide:(NSString *)documentSide documentKind:(NSString * _Nullable)documentKind __attribute__((swift_name("title(documentSide:documentKind:)")));
307
+
308
+ /**
309
+ * All user-facing copy shown inside the document capture screen.
310
+ *
311
+ * The set is intentionally small — these are the only strings rendered by
312
+ * [DocumentCaptureScreen]. Anything more granular should land here, not in
313
+ * consumer code, so all consumers (Expo bridge, handoff flow, future native
314
+ * bridges) share one set.
315
+ *
316
+ * Translation tables for the canonical languages live in [CaptureTranslations].
317
+ */
318
+ - (NSString *)description __attribute__((swift_name("description()")));
319
+ @property (readonly) NSString *autoCaptureOff __attribute__((swift_name("autoCaptureOff")));
320
+ @property (readonly) NSString *autoCaptureOn __attribute__((swift_name("autoCaptureOn")));
321
+ @property (readonly) NSString *cancelButton __attribute__((swift_name("cancelButton")));
322
+ @property (readonly) NSString *captureButton __attribute__((swift_name("captureButton")));
323
+ @property (readonly) NSString *confirmDocumentTitle __attribute__((swift_name("confirmDocumentTitle")));
324
+ @property (readonly) NSString *confirmSelfieTitle __attribute__((swift_name("confirmSelfieTitle")));
325
+ @property (readonly) NSString *documentGeneric __attribute__((swift_name("documentGeneric")));
326
+ @property (readonly) NSDictionary<NSString *, NSString *> *documentTypeLabels __attribute__((swift_name("documentTypeLabels")));
327
+ @property (readonly) NSString *errorGeneric __attribute__((swift_name("errorGeneric")));
328
+ @property (readonly) NSString *errorTitle __attribute__((swift_name("errorTitle")));
329
+ @property (readonly) NSString *galleryButton __attribute__((swift_name("galleryButton")));
330
+ @property (readonly) NSString *multipleErrorsSubtitle __attribute__((swift_name("multipleErrorsSubtitle")));
331
+ @property (readonly) NSString *nextStepBack __attribute__((swift_name("nextStepBack")));
332
+ @property (readonly) NSString *nextStepFront __attribute__((swift_name("nextStepFront")));
333
+ @property (readonly) NSString *nextStepSelfie __attribute__((swift_name("nextStepSelfie")));
334
+ @property (readonly) NSString *processingDescription __attribute__((swift_name("processingDescription")));
335
+ @property (readonly) NSString *processingTitle __attribute__((swift_name("processingTitle")));
336
+ @property (readonly) NSString *retakeButton __attribute__((swift_name("retakeButton")));
337
+ @property (readonly) NSString *scanSideTitle __attribute__((swift_name("scanSideTitle")));
338
+ @property (readonly) NSString *selfieSubtitle __attribute__((swift_name("selfieSubtitle")));
339
+ @property (readonly) NSString *sideBack __attribute__((swift_name("sideBack")));
340
+ @property (readonly) NSString *sideFront __attribute__((swift_name("sideFront")));
341
+ @property (readonly) NSString *sideSelfie __attribute__((swift_name("sideSelfie")));
342
+ @property (readonly) NSString *sideSubmitted __attribute__((swift_name("sideSubmitted")));
343
+ @property (readonly) NSString *statusDetected __attribute__((swift_name("statusDetected")));
344
+ @property (readonly) NSString *statusDetectingDocument __attribute__((swift_name("statusDetectingDocument")));
345
+ @property (readonly) NSString *statusDetectingFace __attribute__((swift_name("statusDetectingFace")));
346
+ @property (readonly) NSString *statusDeviceUnstable __attribute__((swift_name("statusDeviceUnstable")));
347
+ @property (readonly) NSString *statusDocumentNotCentered __attribute__((swift_name("statusDocumentNotCentered")));
348
+ @property (readonly) NSString *statusDocumentTooFar __attribute__((swift_name("statusDocumentTooFar")));
349
+ @property (readonly) NSString *statusFaceNotCentered __attribute__((swift_name("statusFaceNotCentered")));
350
+ @property (readonly) NSString *statusFaceNotStraight __attribute__((swift_name("statusFaceNotStraight")));
351
+ @property (readonly) NSString *statusFaceTooFar __attribute__((swift_name("statusFaceTooFar")));
352
+ @property (readonly) NSString *statusIdle __attribute__((swift_name("statusIdle")));
353
+ @property (readonly) NSString *submittingSide __attribute__((swift_name("submittingSide")));
354
+ @property (readonly) NSString *titleSelfie __attribute__((swift_name("titleSelfie")));
355
+ @property (readonly) NSString *tryAgainButton __attribute__((swift_name("tryAgainButton")));
356
+ @property (readonly) NSString *uploadFromFilesButton __attribute__((swift_name("uploadFromFilesButton")));
357
+ @property (readonly) NSString *useImageButton __attribute__((swift_name("useImageButton")));
358
+ @end
359
+
360
+
361
+ /**
362
+ * Translation tables keyed by the same `language` codes used by `L10n.language`
363
+ * across the rest of the Footprint SDKs (`"en"`, `"es"`).
364
+ *
365
+ * Falls back to English for any unknown language code so consumers can pass
366
+ * the value through without first having to validate it.
367
+ */
368
+ __attribute__((objc_subclassing_restricted))
369
+ __attribute__((swift_name("CaptureTranslations")))
370
+ @interface FNCCaptureTranslations : FNCBase
371
+ + (instancetype)alloc __attribute__((unavailable));
372
+
373
+ /**
374
+ * Translation tables keyed by the same `language` codes used by `L10n.language`
375
+ * across the rest of the Footprint SDKs (`"en"`, `"es"`).
376
+ *
377
+ * Falls back to English for any unknown language code so consumers can pass
378
+ * the value through without first having to validate it.
379
+ */
380
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
381
+ + (instancetype)captureTranslations __attribute__((swift_name("init()")));
382
+ @property (class, readonly, getter=shared) FNCCaptureTranslations *shared __attribute__((swift_name("shared")));
383
+
384
+ /**
385
+ * Resolves a translation set for the given language code. Unknown codes
386
+ * (and `null`) fall back to English.
387
+ *
388
+ * Accepts both bare language codes (`"en"`) and locale codes
389
+ * (`"en-US"`), matching what `L10n` may carry.
390
+ */
391
+ - (FNCCaptureCopy *)forLanguageLanguage:(NSString * _Nullable)language __attribute__((swift_name("forLanguage(language:)")));
392
+ @end
393
+
394
+ __attribute__((swift_name("KotlinComparable")))
395
+ @protocol FNCKotlinComparable
396
+ @required
397
+ - (int32_t)compareToOther:(id _Nullable)other __attribute__((swift_name("compareTo(other:)")));
398
+ @end
399
+
400
+ __attribute__((swift_name("KotlinEnum")))
401
+ @interface FNCKotlinEnum<E> : FNCBase <FNCKotlinComparable>
402
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer));
403
+ @property (class, readonly, getter=companion) FNCKotlinEnumCompanion *companion __attribute__((swift_name("companion")));
404
+ - (int32_t)compareToOther:(E)other __attribute__((swift_name("compareTo(other:)")));
405
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
406
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
407
+ - (NSString *)description __attribute__((swift_name("description()")));
408
+ @property (readonly) NSString *name __attribute__((swift_name("name")));
409
+ @property (readonly) int32_t ordinal __attribute__((swift_name("ordinal")));
410
+ @end
411
+
412
+
413
+ /**
414
+ * Real-time detector feedback shown to the user during auto-capture.
415
+ */
416
+ __attribute__((objc_subclassing_restricted))
417
+ __attribute__((swift_name("AutoCaptureStatus")))
418
+ @interface FNCAutoCaptureStatus : FNCKotlinEnum<FNCAutoCaptureStatus *>
419
+ + (instancetype)alloc __attribute__((unavailable));
420
+
421
+ /**
422
+ * Real-time detector feedback shown to the user during auto-capture.
423
+ */
424
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
425
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
426
+ @property (class, readonly) FNCAutoCaptureStatus *idle __attribute__((swift_name("idle")));
427
+ @property (class, readonly) FNCAutoCaptureStatus *detected __attribute__((swift_name("detected")));
428
+ @property (class, readonly) FNCAutoCaptureStatus *detectingDocument __attribute__((swift_name("detectingDocument")));
429
+ @property (class, readonly) FNCAutoCaptureStatus *documentTooFar __attribute__((swift_name("documentTooFar")));
430
+ @property (class, readonly) FNCAutoCaptureStatus *documentNotCentered __attribute__((swift_name("documentNotCentered")));
431
+ @property (class, readonly) FNCAutoCaptureStatus *detectingFace __attribute__((swift_name("detectingFace")));
432
+ @property (class, readonly) FNCAutoCaptureStatus *faceNotCentered __attribute__((swift_name("faceNotCentered")));
433
+ @property (class, readonly) FNCAutoCaptureStatus *faceNotStraight __attribute__((swift_name("faceNotStraight")));
434
+ @property (class, readonly) FNCAutoCaptureStatus *faceTooFar __attribute__((swift_name("faceTooFar")));
435
+ @property (class, readonly) FNCAutoCaptureStatus *deviceUnstable __attribute__((swift_name("deviceUnstable")));
436
+ + (FNCKotlinArray<FNCAutoCaptureStatus *> *)values __attribute__((swift_name("values()")));
437
+ @property (class, readonly) NSArray<FNCAutoCaptureStatus *> *entries __attribute__((swift_name("entries")));
438
+ @property (readonly) NSString *value __attribute__((swift_name("value")));
439
+ @end
440
+
441
+
442
+ /**
443
+ * Lifecycle state of a camera capture session.
444
+ *
445
+ * IDLE → SUBMITTING → PROCESSING → (SUCCESS | ERROR | IMAGE_CAPTURED | PREPARING_FOR_NEXT_STEP)
446
+ */
447
+ __attribute__((objc_subclassing_restricted))
448
+ __attribute__((swift_name("CameraCaptureState")))
449
+ @interface FNCCameraCaptureState : FNCKotlinEnum<FNCCameraCaptureState *>
450
+ + (instancetype)alloc __attribute__((unavailable));
451
+
452
+ /**
453
+ * Lifecycle state of a camera capture session.
454
+ *
455
+ * IDLE → SUBMITTING → PROCESSING → (SUCCESS | ERROR | IMAGE_CAPTURED | PREPARING_FOR_NEXT_STEP)
456
+ */
457
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
458
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
459
+ @property (class, readonly) FNCCameraCaptureState *idle __attribute__((swift_name("idle")));
460
+ @property (class, readonly) FNCCameraCaptureState *submitting __attribute__((swift_name("submitting")));
461
+ @property (class, readonly) FNCCameraCaptureState *processing __attribute__((swift_name("processing")));
462
+ @property (class, readonly) FNCCameraCaptureState *success __attribute__((swift_name("success")));
463
+ @property (class, readonly) FNCCameraCaptureState *error __attribute__((swift_name("error")));
464
+ @property (class, readonly) FNCCameraCaptureState *imageCaptured __attribute__((swift_name("imageCaptured")));
465
+ @property (class, readonly) FNCCameraCaptureState *preparingForNextStep __attribute__((swift_name("preparingForNextStep")));
466
+ + (FNCKotlinArray<FNCCameraCaptureState *> *)values __attribute__((swift_name("values()")));
467
+ @property (class, readonly) NSArray<FNCCameraCaptureState *> *entries __attribute__((swift_name("entries")));
468
+ @property (readonly) NSString *value __attribute__((swift_name("value")));
469
+ @end
470
+
471
+
472
+ /**
473
+ * UI state for the shared camera screen. Document context is held as backend
474
+ * strings (`selectedDocType`, `selectedCountryCode`, `cameraStep`) and errors as
475
+ * [CaptureImageError], so the camera core has no dependency on any consumer's
476
+ * OpenAPI types.
477
+ */
478
+ __attribute__((objc_subclassing_restricted))
479
+ __attribute__((swift_name("CameraUiState")))
480
+ @interface FNCCameraUiState : FNCBase
481
+ - (instancetype)initWithSelectedDocType:(NSString * _Nullable)selectedDocType selectedCountryCode:(NSString * _Nullable)selectedCountryCode cameraCaptureState:(FNCCameraCaptureState *)cameraCaptureState cameraStep:(NSString *)cameraStep captureMode:(FNCCaptureMode *)captureMode imageErrors:(NSArray<FNCCaptureImageError *> *)imageErrors docId:(NSString * _Nullable)docId autoCaptureStatus:(FNCAutoCaptureStatus *)autoCaptureStatus isRetryLimitExceeded:(BOOL)isRetryLimitExceeded __attribute__((swift_name("init(selectedDocType:selectedCountryCode:cameraCaptureState:cameraStep:captureMode:imageErrors:docId:autoCaptureStatus:isRetryLimitExceeded:)"))) __attribute__((objc_designated_initializer));
482
+ - (FNCCameraUiState *)doCopySelectedDocType:(NSString * _Nullable)selectedDocType selectedCountryCode:(NSString * _Nullable)selectedCountryCode cameraCaptureState:(FNCCameraCaptureState *)cameraCaptureState cameraStep:(NSString *)cameraStep captureMode:(FNCCaptureMode *)captureMode imageErrors:(NSArray<FNCCaptureImageError *> *)imageErrors docId:(NSString * _Nullable)docId autoCaptureStatus:(FNCAutoCaptureStatus *)autoCaptureStatus isRetryLimitExceeded:(BOOL)isRetryLimitExceeded __attribute__((swift_name("doCopy(selectedDocType:selectedCountryCode:cameraCaptureState:cameraStep:captureMode:imageErrors:docId:autoCaptureStatus:isRetryLimitExceeded:)")));
483
+
484
+ /**
485
+ * UI state for the shared camera screen. Document context is held as backend
486
+ * strings (`selectedDocType`, `selectedCountryCode`, `cameraStep`) and errors as
487
+ * [CaptureImageError], so the camera core has no dependency on any consumer's
488
+ * OpenAPI types.
489
+ */
490
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
491
+
492
+ /**
493
+ * UI state for the shared camera screen. Document context is held as backend
494
+ * strings (`selectedDocType`, `selectedCountryCode`, `cameraStep`) and errors as
495
+ * [CaptureImageError], so the camera core has no dependency on any consumer's
496
+ * OpenAPI types.
497
+ */
498
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
499
+
500
+ /**
501
+ * UI state for the shared camera screen. Document context is held as backend
502
+ * strings (`selectedDocType`, `selectedCountryCode`, `cameraStep`) and errors as
503
+ * [CaptureImageError], so the camera core has no dependency on any consumer's
504
+ * OpenAPI types.
505
+ */
506
+ - (NSString *)description __attribute__((swift_name("description()")));
507
+ @property (readonly) FNCAutoCaptureStatus *autoCaptureStatus __attribute__((swift_name("autoCaptureStatus")));
508
+ @property (readonly) FNCCameraCaptureState *cameraCaptureState __attribute__((swift_name("cameraCaptureState")));
509
+ @property (readonly) NSString *cameraStep __attribute__((swift_name("cameraStep")));
510
+ @property (readonly) FNCCaptureMode *captureMode __attribute__((swift_name("captureMode")));
511
+ @property (readonly) NSString * _Nullable docId __attribute__((swift_name("docId")));
512
+ @property (readonly) NSArray<FNCCaptureImageError *> *imageErrors __attribute__((swift_name("imageErrors")));
513
+ @property (readonly) BOOL isRetryLimitExceeded __attribute__((swift_name("isRetryLimitExceeded")));
514
+ @property (readonly) NSString * _Nullable selectedCountryCode __attribute__((swift_name("selectedCountryCode")));
515
+ @property (readonly) NSString * _Nullable selectedDocType __attribute__((swift_name("selectedDocType")));
516
+ @end
517
+
518
+ __attribute__((swift_name("KotlinThrowable")))
519
+ @interface FNCKotlinThrowable : FNCBase
520
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
521
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
522
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
523
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
524
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
525
+
526
+ /**
527
+ * @note annotations
528
+ * kotlin.experimental.ExperimentalNativeApi
529
+ */
530
+ - (FNCKotlinArray<NSString *> *)getStackTrace __attribute__((swift_name("getStackTrace()")));
531
+ - (void)printStackTrace __attribute__((swift_name("printStackTrace()")));
532
+ - (NSString *)description __attribute__((swift_name("description()")));
533
+ @property (readonly) FNCKotlinThrowable * _Nullable cause __attribute__((swift_name("cause")));
534
+ @property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
535
+ - (NSError *)asError __attribute__((swift_name("asError()")));
536
+ @end
537
+
538
+ __attribute__((swift_name("KotlinException")))
539
+ @interface FNCKotlinException : FNCKotlinThrowable
540
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
541
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
542
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
543
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
544
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
545
+ @end
546
+
547
+
548
+ /**
549
+ * Error raised by the camera capture UI. Kept module-owned (not Handoff's
550
+ * FootprintException) so the capture core stays standalone; the consumer maps
551
+ * it back to its own error type at the boundary. `kind`/`severity` names mirror
552
+ * FootprintException so Handoff can map by name.
553
+ */
554
+ __attribute__((objc_subclassing_restricted))
555
+ __attribute__((swift_name("CaptureError")))
556
+ @interface FNCCaptureError : FNCKotlinException
557
+ - (instancetype)initWithKind:(FNCCaptureErrorKind *)kind severity:(FNCCaptureErrorSeverity *)severity message:(NSString *)message relayToCustomers:(BOOL)relayToCustomers __attribute__((swift_name("init(kind:severity:message:relayToCustomers:)"))) __attribute__((objc_designated_initializer));
558
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
559
+ + (instancetype)new __attribute__((unavailable));
560
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
561
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
562
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
563
+ @property (readonly) FNCCaptureErrorKind *kind __attribute__((swift_name("kind")));
564
+ @property (readonly) NSString *message __attribute__((swift_name("message")));
565
+ @property (readonly) BOOL relayToCustomers __attribute__((swift_name("relayToCustomers")));
566
+ @property (readonly) FNCCaptureErrorSeverity *severity __attribute__((swift_name("severity")));
567
+ @end
568
+
569
+ __attribute__((objc_subclassing_restricted))
570
+ __attribute__((swift_name("CaptureError.Kind")))
571
+ @interface FNCCaptureErrorKind : FNCKotlinEnum<FNCCaptureErrorKind *>
572
+ + (instancetype)alloc __attribute__((unavailable));
573
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
574
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
575
+ @property (class, readonly) FNCCaptureErrorKind *cameraError __attribute__((swift_name("cameraError")));
576
+ @property (class, readonly) FNCCaptureErrorKind *imageProcessingError __attribute__((swift_name("imageProcessingError")));
577
+ @property (class, readonly) FNCCaptureErrorKind *documentTypeError __attribute__((swift_name("documentTypeError")));
578
+ @property (class, readonly) FNCCaptureErrorKind *invalidDocumentError __attribute__((swift_name("invalidDocumentError")));
579
+ + (FNCKotlinArray<FNCCaptureErrorKind *> *)values __attribute__((swift_name("values()")));
580
+ @property (class, readonly) NSArray<FNCCaptureErrorKind *> *entries __attribute__((swift_name("entries")));
581
+ @end
582
+
583
+ __attribute__((objc_subclassing_restricted))
584
+ __attribute__((swift_name("CaptureError.Severity")))
585
+ @interface FNCCaptureErrorSeverity : FNCKotlinEnum<FNCCaptureErrorSeverity *>
586
+ + (instancetype)alloc __attribute__((unavailable));
587
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
588
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
589
+ @property (class, readonly) FNCCaptureErrorSeverity *critical __attribute__((swift_name("critical")));
590
+ @property (class, readonly) FNCCaptureErrorSeverity *medium __attribute__((swift_name("medium")));
591
+ @property (class, readonly) FNCCaptureErrorSeverity *low __attribute__((swift_name("low")));
592
+ + (FNCKotlinArray<FNCCaptureErrorSeverity *> *)values __attribute__((swift_name("values()")));
593
+ @property (class, readonly) NSArray<FNCCaptureErrorSeverity *> *entries __attribute__((swift_name("entries")));
594
+ @end
595
+
596
+
597
+ /**
598
+ * A single error reported by the document processing backend. `code` is the
599
+ * backend's error-code string (e.g. `"unknown_error"`); `message` is the
600
+ * optional human-readable description if the backend provided one.
601
+ */
602
+ __attribute__((objc_subclassing_restricted))
603
+ __attribute__((swift_name("CaptureImageError")))
604
+ @interface FNCCaptureImageError : FNCBase
605
+ - (instancetype)initWithCode:(NSString *)code message:(NSString * _Nullable)message __attribute__((swift_name("init(code:message:)"))) __attribute__((objc_designated_initializer));
606
+ - (FNCCaptureImageError *)doCopyCode:(NSString *)code message:(NSString * _Nullable)message __attribute__((swift_name("doCopy(code:message:)")));
607
+
608
+ /**
609
+ * A single error reported by the document processing backend. `code` is the
610
+ * backend's error-code string (e.g. `"unknown_error"`); `message` is the
611
+ * optional human-readable description if the backend provided one.
612
+ */
613
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
614
+
615
+ /**
616
+ * A single error reported by the document processing backend. `code` is the
617
+ * backend's error-code string (e.g. `"unknown_error"`); `message` is the
618
+ * optional human-readable description if the backend provided one.
619
+ */
620
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
621
+
622
+ /**
623
+ * A single error reported by the document processing backend. `code` is the
624
+ * backend's error-code string (e.g. `"unknown_error"`); `message` is the
625
+ * optional human-readable description if the backend provided one.
626
+ */
627
+ - (NSString *)description __attribute__((swift_name("description()")));
628
+ @property (readonly) NSString *code __attribute__((swift_name("code")));
629
+ @property (readonly) NSString * _Nullable message __attribute__((swift_name("message")));
630
+ @end
631
+
632
+
633
+ /**
634
+ * Whether the user is capturing manually (tap-to-shoot) or the camera is
635
+ * auto-capturing once the document is detected + centered.
636
+ */
637
+ __attribute__((objc_subclassing_restricted))
638
+ __attribute__((swift_name("CaptureMode")))
639
+ @interface FNCCaptureMode : FNCKotlinEnum<FNCCaptureMode *>
640
+ + (instancetype)alloc __attribute__((unavailable));
641
+
642
+ /**
643
+ * Whether the user is capturing manually (tap-to-shoot) or the camera is
644
+ * auto-capturing once the document is detected + centered.
645
+ */
646
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
647
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
648
+ @property (class, readonly) FNCCaptureMode *auto_ __attribute__((swift_name("auto_")));
649
+ @property (class, readonly) FNCCaptureMode *manual __attribute__((swift_name("manual")));
650
+ + (FNCKotlinArray<FNCCaptureMode *> *)values __attribute__((swift_name("values()")));
651
+ @property (class, readonly) NSArray<FNCCaptureMode *> *entries __attribute__((swift_name("entries")));
652
+ @property (readonly) NSString *value __attribute__((swift_name("value")));
653
+ @end
654
+
655
+
656
+ /**
657
+ * Result of one per-side process call. Tells the camera module whether more
658
+ * sides remain to collect.
659
+ */
660
+ __attribute__((objc_subclassing_restricted))
661
+ __attribute__((swift_name("DocumentProcessResult")))
662
+ @interface FNCDocumentProcessResult : FNCBase
663
+ - (instancetype)initWithErrors:(NSArray<FNCCaptureImageError *> *)errors isRetryLimitExceeded:(BOOL)isRetryLimitExceeded nextSideToCollect:(NSString * _Nullable)nextSideToCollect __attribute__((swift_name("init(errors:isRetryLimitExceeded:nextSideToCollect:)"))) __attribute__((objc_designated_initializer));
664
+ - (FNCDocumentProcessResult *)doCopyErrors:(NSArray<FNCCaptureImageError *> *)errors isRetryLimitExceeded:(BOOL)isRetryLimitExceeded nextSideToCollect:(NSString * _Nullable)nextSideToCollect __attribute__((swift_name("doCopy(errors:isRetryLimitExceeded:nextSideToCollect:)")));
665
+
666
+ /**
667
+ * Result of one per-side process call. Tells the camera module whether more
668
+ * sides remain to collect.
669
+ */
670
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
671
+
672
+ /**
673
+ * Result of one per-side process call. Tells the camera module whether more
674
+ * sides remain to collect.
675
+ */
676
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
677
+
678
+ /**
679
+ * Result of one per-side process call. Tells the camera module whether more
680
+ * sides remain to collect.
681
+ */
682
+ - (NSString *)description __attribute__((swift_name("description()")));
683
+ @property (readonly) NSArray<FNCCaptureImageError *> *errors __attribute__((swift_name("errors")));
684
+ @property (readonly) BOOL isRetryLimitExceeded __attribute__((swift_name("isRetryLimitExceeded")));
685
+ @property (readonly) NSString * _Nullable nextSideToCollect __attribute__((swift_name("nextSideToCollect")));
686
+ @end
687
+
688
+
689
+ /**
690
+ * Canonical document-side string values. Matches the backend's
691
+ * `DocumentSide(value)` API.
692
+ */
693
+ __attribute__((objc_subclassing_restricted))
694
+ __attribute__((swift_name("DocumentSides")))
695
+ @interface FNCDocumentSides : FNCBase
696
+ + (instancetype)alloc __attribute__((unavailable));
697
+
698
+ /**
699
+ * Canonical document-side string values. Matches the backend's
700
+ * `DocumentSide(value)` API.
701
+ */
702
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
703
+ + (instancetype)documentSides __attribute__((swift_name("init()")));
704
+ @property (class, readonly, getter=shared) FNCDocumentSides *shared __attribute__((swift_name("shared")));
705
+ @property (readonly) NSString *BACK __attribute__((swift_name("BACK")));
706
+ @property (readonly) NSString *FRONT __attribute__((swift_name("FRONT")));
707
+ @property (readonly) NSString *SELFIE __attribute__((swift_name("SELFIE")));
708
+ @end
709
+
710
+
711
+ /**
712
+ * Lightweight error wrapper for the camera UI. Distinct from the backend's
713
+ * `DocumentImageErrorDetail` — callers map between the two at the boundary.
714
+ */
715
+ __attribute__((objc_subclassing_restricted))
716
+ __attribute__((swift_name("ImageError")))
717
+ @interface FNCImageError : FNCBase
718
+ - (instancetype)initWithTitle:(NSString *)title message:(NSString *)message __attribute__((swift_name("init(title:message:)"))) __attribute__((objc_designated_initializer));
719
+ - (FNCImageError *)doCopyTitle:(NSString *)title message:(NSString *)message __attribute__((swift_name("doCopy(title:message:)")));
720
+
721
+ /**
722
+ * Lightweight error wrapper for the camera UI. Distinct from the backend's
723
+ * `DocumentImageErrorDetail` — callers map between the two at the boundary.
724
+ */
725
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
726
+
727
+ /**
728
+ * Lightweight error wrapper for the camera UI. Distinct from the backend's
729
+ * `DocumentImageErrorDetail` — callers map between the two at the boundary.
730
+ */
731
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
732
+
733
+ /**
734
+ * Lightweight error wrapper for the camera UI. Distinct from the backend's
735
+ * `DocumentImageErrorDetail` — callers map between the two at the boundary.
736
+ */
737
+ - (NSString *)description __attribute__((swift_name("description()")));
738
+ @property (readonly) NSString *message __attribute__((swift_name("message")));
739
+ @property (readonly) NSString *title __attribute__((swift_name("title")));
740
+ @end
741
+
742
+
743
+ /**
744
+ * Extra metadata about an upload (manual vs auto capture, gallery upload, etc.)
745
+ * Forwarded to the backend as `X-Fp-Is-*` headers.
746
+ */
747
+ __attribute__((objc_subclassing_restricted))
748
+ __attribute__((swift_name("UploadMetadata")))
749
+ @interface FNCUploadMetadata : FNCBase
750
+ - (instancetype)initWithIsManual:(BOOL)isManual isUpload:(BOOL)isUpload isAppClip:(BOOL)isAppClip isInstantApp:(BOOL)isInstantApp isForcedUpload:(BOOL)isForcedUpload isExtraCompressed:(BOOL)isExtraCompressed __attribute__((swift_name("init(isManual:isUpload:isAppClip:isInstantApp:isForcedUpload:isExtraCompressed:)"))) __attribute__((objc_designated_initializer));
751
+ - (FNCUploadMetadata *)doCopyIsManual:(BOOL)isManual isUpload:(BOOL)isUpload isAppClip:(BOOL)isAppClip isInstantApp:(BOOL)isInstantApp isForcedUpload:(BOOL)isForcedUpload isExtraCompressed:(BOOL)isExtraCompressed __attribute__((swift_name("doCopy(isManual:isUpload:isAppClip:isInstantApp:isForcedUpload:isExtraCompressed:)")));
752
+
753
+ /**
754
+ * Extra metadata about an upload (manual vs auto capture, gallery upload, etc.)
755
+ * Forwarded to the backend as `X-Fp-Is-*` headers.
756
+ */
757
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
758
+
759
+ /**
760
+ * Extra metadata about an upload (manual vs auto capture, gallery upload, etc.)
761
+ * Forwarded to the backend as `X-Fp-Is-*` headers.
762
+ */
763
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
764
+
765
+ /**
766
+ * Extra metadata about an upload (manual vs auto capture, gallery upload, etc.)
767
+ * Forwarded to the backend as `X-Fp-Is-*` headers.
768
+ */
769
+ - (NSString *)description __attribute__((swift_name("description()")));
770
+ @property (readonly) BOOL isAppClip __attribute__((swift_name("isAppClip")));
771
+ @property (readonly) BOOL isExtraCompressed __attribute__((swift_name("isExtraCompressed")));
772
+ @property (readonly) BOOL isForcedUpload __attribute__((swift_name("isForcedUpload")));
773
+ @property (readonly) BOOL isInstantApp __attribute__((swift_name("isInstantApp")));
774
+ @property (readonly) BOOL isManual __attribute__((swift_name("isManual")));
775
+ @property (readonly) BOOL isUpload __attribute__((swift_name("isUpload")));
776
+ @end
777
+
778
+
779
+ /**
780
+ * Narrow appearance contract the document capture screen actually paints
781
+ * with. Lives separately from the broader `Appearance` (whose ~150 variables
782
+ * are CSS-tuned for the hosted web flow) — only the keys below have a
783
+ * meaningful native rendering today.
784
+ *
785
+ * Bridge code is responsible for plucking values out of the full
786
+ * `Appearance.variables` bag and constructing one of these.
787
+ *
788
+ * Color strings accept any `#RGB` / `#RRGGBB` / `#RRGGBBAA` form. Unparseable
789
+ * values are ignored and the platform default applies. `cornerRadius` is in
790
+ * points / dp.
791
+ */
792
+ __attribute__((objc_subclassing_restricted))
793
+ __attribute__((swift_name("CaptureAppearance")))
794
+ @interface FNCCaptureAppearance : FNCBase
795
+ - (instancetype)initWithTheme:(FNCCaptureTheme *)theme accentColor:(NSString * _Nullable)accentColor containerBg:(NSString * _Nullable)containerBg labelColor:(NSString * _Nullable)labelColor buttonPrimaryBg:(NSString * _Nullable)buttonPrimaryBg buttonPrimaryColor:(NSString * _Nullable)buttonPrimaryColor buttonBorderRadius:(NSString * _Nullable)buttonBorderRadius fontFamily:(NSString * _Nullable)fontFamily __attribute__((swift_name("init(theme:accentColor:containerBg:labelColor:buttonPrimaryBg:buttonPrimaryColor:buttonBorderRadius:fontFamily:)"))) __attribute__((objc_designated_initializer));
796
+ @property (class, readonly, getter=companion) FNCCaptureAppearanceCompanion *companion __attribute__((swift_name("companion")));
797
+ - (FNCCaptureAppearance *)doCopyTheme:(FNCCaptureTheme *)theme accentColor:(NSString * _Nullable)accentColor containerBg:(NSString * _Nullable)containerBg labelColor:(NSString * _Nullable)labelColor buttonPrimaryBg:(NSString * _Nullable)buttonPrimaryBg buttonPrimaryColor:(NSString * _Nullable)buttonPrimaryColor buttonBorderRadius:(NSString * _Nullable)buttonBorderRadius fontFamily:(NSString * _Nullable)fontFamily __attribute__((swift_name("doCopy(theme:accentColor:containerBg:labelColor:buttonPrimaryBg:buttonPrimaryColor:buttonBorderRadius:fontFamily:)")));
798
+
799
+ /**
800
+ * Narrow appearance contract the document capture screen actually paints
801
+ * with. Lives separately from the broader `Appearance` (whose ~150 variables
802
+ * are CSS-tuned for the hosted web flow) — only the keys below have a
803
+ * meaningful native rendering today.
804
+ *
805
+ * Bridge code is responsible for plucking values out of the full
806
+ * `Appearance.variables` bag and constructing one of these.
807
+ *
808
+ * Color strings accept any `#RGB` / `#RRGGBB` / `#RRGGBBAA` form. Unparseable
809
+ * values are ignored and the platform default applies. `cornerRadius` is in
810
+ * points / dp.
811
+ */
812
+ - (BOOL)isEqual:(id _Nullable)other __attribute__((swift_name("isEqual(_:)")));
813
+
814
+ /**
815
+ * Narrow appearance contract the document capture screen actually paints
816
+ * with. Lives separately from the broader `Appearance` (whose ~150 variables
817
+ * are CSS-tuned for the hosted web flow) — only the keys below have a
818
+ * meaningful native rendering today.
819
+ *
820
+ * Bridge code is responsible for plucking values out of the full
821
+ * `Appearance.variables` bag and constructing one of these.
822
+ *
823
+ * Color strings accept any `#RGB` / `#RRGGBB` / `#RRGGBBAA` form. Unparseable
824
+ * values are ignored and the platform default applies. `cornerRadius` is in
825
+ * points / dp.
826
+ */
827
+ - (NSUInteger)hash __attribute__((swift_name("hash()")));
828
+
829
+ /**
830
+ * Narrow appearance contract the document capture screen actually paints
831
+ * with. Lives separately from the broader `Appearance` (whose ~150 variables
832
+ * are CSS-tuned for the hosted web flow) — only the keys below have a
833
+ * meaningful native rendering today.
834
+ *
835
+ * Bridge code is responsible for plucking values out of the full
836
+ * `Appearance.variables` bag and constructing one of these.
837
+ *
838
+ * Color strings accept any `#RGB` / `#RRGGBB` / `#RRGGBBAA` form. Unparseable
839
+ * values are ignored and the platform default applies. `cornerRadius` is in
840
+ * points / dp.
841
+ */
842
+ - (NSString *)description __attribute__((swift_name("description()")));
843
+ @property (readonly) NSString * _Nullable accentColor __attribute__((swift_name("accentColor")));
844
+ @property (readonly) NSString * _Nullable buttonBorderRadius __attribute__((swift_name("buttonBorderRadius")));
845
+ @property (readonly) NSString * _Nullable buttonPrimaryBg __attribute__((swift_name("buttonPrimaryBg")));
846
+ @property (readonly) NSString * _Nullable buttonPrimaryColor __attribute__((swift_name("buttonPrimaryColor")));
847
+ @property (readonly) NSString * _Nullable containerBg __attribute__((swift_name("containerBg")));
848
+ @property (readonly) NSString * _Nullable fontFamily __attribute__((swift_name("fontFamily")));
849
+ @property (readonly) NSString * _Nullable labelColor __attribute__((swift_name("labelColor")));
850
+ @property (readonly) FNCCaptureTheme *theme __attribute__((swift_name("theme")));
851
+ @end
852
+
853
+ __attribute__((objc_subclassing_restricted))
854
+ __attribute__((swift_name("CaptureAppearance.Companion")))
855
+ @interface FNCCaptureAppearanceCompanion : FNCBase
856
+ + (instancetype)alloc __attribute__((unavailable));
857
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
858
+ + (instancetype)companion __attribute__((swift_name("init()")));
859
+ @property (class, readonly, getter=shared) FNCCaptureAppearanceCompanion *shared __attribute__((swift_name("shared")));
860
+
861
+ /**
862
+ * Default appearance using platform-native colors and typography.
863
+ * Exposed as a factory because KMM marks the Kotlin no-arg
864
+ * constructor unavailable in Swift.
865
+ */
866
+ - (FNCCaptureAppearance *)default __attribute__((swift_name("default()")));
867
+
868
+ /**
869
+ * Builds a [CaptureAppearance] from the loose key/value bag that
870
+ * mirrors `Appearance.variables` on the bridge side. Only keys we
871
+ * know how to paint are read; everything else is ignored, so
872
+ * consumers can pass the same appearance object they use elsewhere
873
+ * without trimming it first.
874
+ */
875
+ - (FNCCaptureAppearance *)fromVariablesTheme:(NSString * _Nullable)theme variables:(NSDictionary<NSString *, NSString *> *)variables fontFamily:(NSString * _Nullable)fontFamily __attribute__((swift_name("fromVariables(theme:variables:fontFamily:)")));
876
+ @end
877
+
878
+
879
+ /**
880
+ * Theme variant the capture screen should render with.
881
+ * Mirrors `Appearance.theme` (`"light" | "dark"`) from the rest of the
882
+ * Footprint SDKs.
883
+ */
884
+ __attribute__((objc_subclassing_restricted))
885
+ __attribute__((swift_name("CaptureTheme")))
886
+ @interface FNCCaptureTheme : FNCKotlinEnum<FNCCaptureTheme *>
887
+ + (instancetype)alloc __attribute__((unavailable));
888
+
889
+ /**
890
+ * Theme variant the capture screen should render with.
891
+ * Mirrors `Appearance.theme` (`"light" | "dark"`) from the rest of the
892
+ * Footprint SDKs.
893
+ */
894
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
895
+ - (instancetype)initWithName:(NSString *)name ordinal:(int32_t)ordinal __attribute__((swift_name("init(name:ordinal:)"))) __attribute__((objc_designated_initializer)) __attribute__((unavailable));
896
+ @property (class, readonly, getter=companion) FNCCaptureThemeCompanion *companion __attribute__((swift_name("companion")));
897
+ @property (class, readonly) FNCCaptureTheme *light __attribute__((swift_name("light")));
898
+ @property (class, readonly) FNCCaptureTheme *dark __attribute__((swift_name("dark")));
899
+ + (FNCKotlinArray<FNCCaptureTheme *> *)values __attribute__((swift_name("values()")));
900
+ @property (class, readonly) NSArray<FNCCaptureTheme *> *entries __attribute__((swift_name("entries")));
901
+ @property (readonly) NSString *value __attribute__((swift_name("value")));
902
+ @end
903
+
904
+ __attribute__((objc_subclassing_restricted))
905
+ __attribute__((swift_name("CaptureTheme.Companion")))
906
+ @interface FNCCaptureThemeCompanion : FNCBase
907
+ + (instancetype)alloc __attribute__((unavailable));
908
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
909
+ + (instancetype)companion __attribute__((swift_name("init()")));
910
+ @property (class, readonly, getter=shared) FNCCaptureThemeCompanion *shared __attribute__((swift_name("shared")));
911
+ - (FNCCaptureTheme *)fromValueValue:(NSString * _Nullable)value __attribute__((swift_name("fromValue(value:)")));
912
+ @end
913
+
914
+
915
+ /**
916
+ * Owns the per-side capture loop for the shared camera. Consumers inject a
917
+ * [CaptureUploadClient] (Handoff's FootprintQueries adapter, or the Expo
918
+ * bridge's JS-routing client) and map [CaptureError] back to their own error
919
+ * type at the boundary.
920
+ */
921
+ __attribute__((objc_subclassing_restricted))
922
+ __attribute__((swift_name("CameraViewModel")))
923
+ @interface FNCCameraViewModel : FNCBase
924
+ - (instancetype)initWithUploadClient:(id<FNCCaptureUploadClient>)uploadClient __attribute__((swift_name("init(uploadClient:)"))) __attribute__((objc_designated_initializer));
925
+ - (void)handleErrorError:(FNCCaptureError *)error __attribute__((swift_name("handleError(error:)")));
926
+ - (void)initializeDocId:(NSString * _Nullable)docId selectedDocType:(NSString * _Nullable)selectedDocType selectedCountryCode:(NSString * _Nullable)selectedCountryCode onError:(void (^)(FNCCaptureError *))onError onComplete:(void (^)(void))onComplete __attribute__((swift_name("initialize(docId:selectedDocType:selectedCountryCode:onError:onComplete:)")));
927
+ - (BOOL)isCompletelyInitialized __attribute__((swift_name("isCompletelyInitialized()")));
928
+ - (void)navigateBack __attribute__((swift_name("navigateBack()")));
929
+ - (void)onImageCaptured __attribute__((swift_name("onImageCaptured()")));
930
+ - (void)onProcessing __attribute__((swift_name("onProcessing()")));
931
+ - (void)onRetakeImage __attribute__((swift_name("onRetakeImage()")));
932
+ - (FNCKotlinUnit *(^(^)(FNCKotlinUnit *(^)(FNCKotlinUnit *, FNCKotlinUnit *), FNCKotlinUnit *(^)(NSError *, FNCKotlinUnit *), FNCKotlinUnit *(^)(NSError *, FNCKotlinUnit *)))(void))processImageImage:(NSString *)image fromGallery:(BOOL)fromGallery isAppClip:(BOOL)isAppClip isInstantApp:(BOOL)isInstantApp __attribute__((swift_name("processImage(image:fromGallery:isAppClip:isInstantApp:)")));
933
+ - (void)setAutoCaptureStatusStatus:(FNCAutoCaptureStatus *)status __attribute__((swift_name("setAutoCaptureStatus(status:)")));
934
+ - (void)setCameraCaptureStateState:(FNCCameraCaptureState *)state __attribute__((swift_name("setCameraCaptureState(state:)")));
935
+ - (void)setCameraStepStep:(NSString *)step __attribute__((swift_name("setCameraStep(step:)")));
936
+ - (void)setImageErrorsImageErrors:(NSArray<FNCCaptureImageError *> *)imageErrors __attribute__((swift_name("setImageErrors(imageErrors:)")));
937
+ - (void)transitionBackToCountrySelect __attribute__((swift_name("transitionBackToCountrySelect()")));
938
+ - (void)updateCaptureModeCaptureMode:(FNCCaptureMode *)captureMode __attribute__((swift_name("updateCaptureMode(captureMode:)")));
939
+ - (BOOL)validateSelectedDocument __attribute__((swift_name("validateSelectedDocument()")));
940
+ @property (readonly) id<FNCKotlinx_coroutines_coreCoroutineScope> coroutineScope __attribute__((swift_name("coroutineScope")));
941
+ @property (readonly) FNCKotlinUnit *(^(^uiState)(FNCKotlinUnit *(^)(FNCCameraUiState *, FNCKotlinUnit *(^)(void), FNCKotlinUnit *), FNCKotlinUnit *(^)(NSError * _Nullable, FNCKotlinUnit *), FNCKotlinUnit *(^)(NSError *, FNCKotlinUnit *)))(void) __attribute__((swift_name("uiState")));
942
+ @property (readonly) FNCCameraUiState *uiStateValue __attribute__((swift_name("uiStateValue")));
943
+ @end
944
+
945
+ __attribute__((objc_subclassing_restricted))
946
+ __attribute__((swift_name("MapImageErrorKt")))
947
+ @interface FNCMapImageErrorKt : FNCBase
948
+
949
+ /**
950
+ * Maps a backend [CaptureImageError] to a displayable [ImageError] for the error
951
+ * overlay. The display message is expected to come from the consumer (the Expo
952
+ * JS SDK owns the error-code i18n and passes it as `message`); when absent this
953
+ * falls back to the generic copy. Title uses the generic error title — per-code
954
+ * titles remain a consumer concern (Handoff maps them via its own OpenAPI copy).
955
+ */
956
+ + (FNCImageError *)mapImageErrorError:(FNCCaptureImageError *)error copy:(FNCCaptureCopy *)copy __attribute__((swift_name("mapImageError(error:copy:)")));
957
+ @end
958
+
959
+ __attribute__((swift_name("KotlinRuntimeException")))
960
+ @interface FNCKotlinRuntimeException : FNCKotlinException
961
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
962
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
963
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
964
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
965
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
966
+ @end
967
+
968
+ __attribute__((swift_name("KotlinIllegalStateException")))
969
+ @interface FNCKotlinIllegalStateException : FNCKotlinRuntimeException
970
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
971
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
972
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
973
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
974
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
975
+ @end
976
+
977
+
978
+ /**
979
+ * @note annotations
980
+ * kotlin.SinceKotlin(version="1.4")
981
+ */
982
+ __attribute__((swift_name("KotlinCancellationException")))
983
+ @interface FNCKotlinCancellationException : FNCKotlinIllegalStateException
984
+ - (instancetype)init __attribute__((swift_name("init()"))) __attribute__((objc_designated_initializer));
985
+ + (instancetype)new __attribute__((availability(swift, unavailable, message="use object initializers instead")));
986
+ - (instancetype)initWithMessage:(NSString * _Nullable)message __attribute__((swift_name("init(message:)"))) __attribute__((objc_designated_initializer));
987
+ - (instancetype)initWithCause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(cause:)"))) __attribute__((objc_designated_initializer));
988
+ - (instancetype)initWithMessage:(NSString * _Nullable)message cause:(FNCKotlinThrowable * _Nullable)cause __attribute__((swift_name("init(message:cause:)"))) __attribute__((objc_designated_initializer));
989
+ @end
990
+
991
+ __attribute__((objc_subclassing_restricted))
992
+ __attribute__((swift_name("KotlinUnit")))
993
+ @interface FNCKotlinUnit : FNCBase
994
+ + (instancetype)alloc __attribute__((unavailable));
995
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
996
+ + (instancetype)unit __attribute__((swift_name("init()")));
997
+ @property (class, readonly, getter=shared) FNCKotlinUnit *shared __attribute__((swift_name("shared")));
998
+ - (NSString *)description __attribute__((swift_name("description()")));
999
+ @end
1000
+
1001
+ __attribute__((objc_subclassing_restricted))
1002
+ __attribute__((swift_name("KotlinEnumCompanion")))
1003
+ @interface FNCKotlinEnumCompanion : FNCBase
1004
+ + (instancetype)alloc __attribute__((unavailable));
1005
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
1006
+ + (instancetype)companion __attribute__((swift_name("init()")));
1007
+ @property (class, readonly, getter=shared) FNCKotlinEnumCompanion *shared __attribute__((swift_name("shared")));
1008
+ @end
1009
+
1010
+ __attribute__((objc_subclassing_restricted))
1011
+ __attribute__((swift_name("KotlinArray")))
1012
+ @interface FNCKotlinArray<T> : FNCBase
1013
+ + (instancetype)arrayWithSize:(int32_t)size init:(T _Nullable (^)(FNCInt *))init __attribute__((swift_name("init(size:init:)")));
1014
+ + (instancetype)alloc __attribute__((unavailable));
1015
+ + (instancetype)allocWithZone:(struct _NSZone *)zone __attribute__((unavailable));
1016
+ - (T _Nullable)getIndex:(int32_t)index __attribute__((swift_name("get(index:)")));
1017
+ - (id<FNCKotlinIterator>)iterator __attribute__((swift_name("iterator()")));
1018
+ - (void)setIndex:(int32_t)index value:(T _Nullable)value __attribute__((swift_name("set(index:value:)")));
1019
+ @property (readonly) int32_t size __attribute__((swift_name("size")));
1020
+ @end
1021
+
1022
+ __attribute__((swift_name("Kotlinx_coroutines_coreCoroutineScope")))
1023
+ @protocol FNCKotlinx_coroutines_coreCoroutineScope
1024
+ @required
1025
+ @property (readonly) id<FNCKotlinCoroutineContext> coroutineContext __attribute__((swift_name("coroutineContext")));
1026
+ @end
1027
+
1028
+ __attribute__((swift_name("KotlinIterator")))
1029
+ @protocol FNCKotlinIterator
1030
+ @required
1031
+ - (BOOL)hasNext __attribute__((swift_name("hasNext()")));
1032
+ - (id _Nullable)next __attribute__((swift_name("next()")));
1033
+ @end
1034
+
1035
+
1036
+ /**
1037
+ * @note annotations
1038
+ * kotlin.SinceKotlin(version="1.3")
1039
+ */
1040
+ __attribute__((swift_name("KotlinCoroutineContext")))
1041
+ @protocol FNCKotlinCoroutineContext
1042
+ @required
1043
+ - (id _Nullable)foldInitial:(id _Nullable)initial operation:(id _Nullable (^)(id _Nullable, id<FNCKotlinCoroutineContextElement>))operation __attribute__((swift_name("fold(initial:operation:)")));
1044
+ - (id<FNCKotlinCoroutineContextElement> _Nullable)getKey:(id<FNCKotlinCoroutineContextKey>)key __attribute__((swift_name("get(key:)")));
1045
+ - (id<FNCKotlinCoroutineContext>)minusKeyKey:(id<FNCKotlinCoroutineContextKey>)key __attribute__((swift_name("minusKey(key:)")));
1046
+ - (id<FNCKotlinCoroutineContext>)plusContext:(id<FNCKotlinCoroutineContext>)context __attribute__((swift_name("plus(context:)")));
1047
+ @end
1048
+
1049
+ __attribute__((swift_name("KotlinCoroutineContextElement")))
1050
+ @protocol FNCKotlinCoroutineContextElement <FNCKotlinCoroutineContext>
1051
+ @required
1052
+ @property (readonly) id<FNCKotlinCoroutineContextKey> key __attribute__((swift_name("key")));
1053
+ @end
1054
+
1055
+ __attribute__((swift_name("KotlinCoroutineContextKey")))
1056
+ @protocol FNCKotlinCoroutineContextKey
1057
+ @required
1058
+ @end
1059
+
1060
+ #pragma pop_macro("_Nullable_result")
1061
+ #pragma clang diagnostic pop
1062
+ NS_ASSUME_NONNULL_END