@incodetech/welcome 1.90.0 → 1.91.0-20260619153720.0

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.
@@ -12,7 +12,7 @@ import { ReactNode } from 'react';
12
12
  import { RefAttributes } from 'react';
13
13
  import { SetStateAction } from 'react';
14
14
 
15
- declare function addAddressStatement({ token, file, image, docType, format, onProgress, }: AddAddressStatementParams): Promise<any>;
15
+ declare function addAddressStatement({ token, file, image, docType, format, title, processingMethod, onProgress, }: AddAddressStatementParams): Promise<AddDocumentResponse>;
16
16
 
17
17
  declare type AddAddressStatementParams = {
18
18
  token: string;
@@ -20,6 +20,8 @@ declare type AddAddressStatementParams = {
20
20
  image?: string;
21
21
  docType?: string;
22
22
  format?: string;
23
+ title?: string;
24
+ processingMethod?: ProcessingMethod;
23
25
  onProgress?: (progress: number) => void;
24
26
  };
25
27
 
@@ -85,15 +87,33 @@ declare type AddCustomFieldsParams = {
85
87
  token: string;
86
88
  };
87
89
 
88
- export declare function addDocument({ token, type, image, onProgress, }: AddDocumentParams): Promise<any>;
90
+ export declare function addDocument({ token, type, image, title, processingMethod, onProgress, }: AddDocumentParams): Promise<AddDocumentResponse | {
91
+ success: boolean;
92
+ sessionStatus: string;
93
+ additionalInformation: {
94
+ contractId: string;
95
+ url: string;
96
+ };
97
+ }>;
89
98
 
90
99
  declare type AddDocumentParams = {
91
100
  token: LooseSession['token'];
92
101
  type: 'contract' | string;
93
102
  image: string;
103
+ /** Optional document title forwarded to /omni/add/document/v3?title= */
104
+ title?: string;
105
+ /** Optional processing method for v3 (sync|async). Sync is the default for v3-supported types. */
106
+ processingMethod?: ProcessingMethod;
94
107
  onProgress?: (progress: number) => void;
95
108
  };
96
109
 
110
+ export declare type AddDocumentResponse = {
111
+ status?: AddDocumentStatus;
112
+ success?: boolean;
113
+ };
114
+
115
+ export declare type AddDocumentStatus = 'SUCCESS' | 'PROCESS_DOC_ERROR' | 'SESSION_ERROR' | 'ADD_NEXT_PAGE' | 'OPTIONAL_PAGE_CAPTURE' | 'CLASSIFICATION_ERROR' | 'MULTI_PAGE_CLASSIFICATION_ERROR' | 'V5C_REGISTRATION_NUMBER_MISMATCH' | 'V5C_REFERENCE_NUMBER_MISMATCH' | 'V5C_NUMBER_MISMATCH' | 'FSL_AGREEMENT_REFERENCE_MISMATCH' | 'FSL_NAME_MISMATCH' | 'MANDATORY_FIELD_MISSING' | 'UNSUPPORTED_PAGE_NUMBERS' | 'VALIDATION_ERROR' | 'UNEXPECTED_ERROR' | 'FINALIZE_ERROR_NO_PAGES' | 'UNSUPPORTED_MP_DOCUMENT_TYPE';
116
+
97
117
  export declare function addEvent(event: Event_2): Promise<void | WebClientResponse<any>>;
98
118
 
99
119
  declare function addFrontSecondId({ token, image, onProgress }: {
@@ -325,13 +345,26 @@ declare type CaptureConfig = {
325
345
  onlyBack: boolean;
326
346
  manualUploadIdCapture: boolean;
327
347
  digitalIdsUpload: boolean;
348
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
328
349
  deviceWallet?: boolean;
350
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
351
+ appleWallet?: boolean;
352
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
353
+ googleWallet?: boolean;
354
+ /** [ENG-46418] Per-flow Apple/Google Wallet config (flat, enriched). */
355
+ digitalIds?: DigitalIdsConfig;
329
356
  idDetectionTimeout: number;
330
357
  isDeepsightEnabled?: boolean;
331
358
  usSmartCapture: boolean;
332
359
  alwaysCaptureBackOfId?: boolean;
333
360
  showCaptureButtonInAuto?: boolean;
334
361
  digiLocker?: boolean;
362
+ /** [ENG-44176] When `false`, the SDK forwards `extractIdFace=false` to
363
+ * `POST /omni/add/front-id` (v1 + v2), so the backend skips biometric face
364
+ * extraction. Default behavior (omitted / `true`) is unchanged. Use this in
365
+ * jurisdictions with biometric-consent restrictions (e.g. Quebec, Law 25);
366
+ * downstream face-match will not be available for the resulting session. */
367
+ extractIdFace?: boolean;
335
368
  };
336
369
 
337
370
  declare type CaptureConfig_2 = {
@@ -424,6 +457,9 @@ declare type CaptureIdResponse = UploadFrontIdResponse & {
424
457
  skipProcessId?: boolean;
425
458
  };
426
459
 
460
+ /** Whether the attempt started in (or switched to) manual fallback. */
461
+ declare type CaptureMode = 'auto' | 'manual';
462
+
427
463
  declare type CaptureOnlyResponse = {
428
464
  frontImage: CapturedImageData;
429
465
  backImage: CapturedImageData | undefined;
@@ -451,6 +487,10 @@ declare type CaptureParams = {
451
487
  metadata?: string;
452
488
  authHint?: string;
453
489
  mdlData?: any;
490
+ /** [ENG-44176] When `false`, instructs the backend `add/front-id` (v1 + v2)
491
+ * to skip biometric face extraction. Omitted/`true` preserves current
492
+ * behavior. Forwarded only as a query param, only for the `front` type. */
493
+ extractIdFace?: boolean;
454
494
  };
455
495
 
456
496
  export declare const CaptureSelfie: (props: any) => JSX_2.Element;
@@ -658,7 +698,7 @@ export declare function create({ apiKey, apiURL, lang, encrypt, translations, th
658
698
  }) => Promise<{
659
699
  redirectionUrl: string;
660
700
  action: "none" | "approved" | "rejected";
661
- scoreStatus: "UNKNOWN" | "OK" | "FAIL" | "WARN" | "MANUAL_OK" | "MANUAL_FAIL";
701
+ scoreStatus: TotalScore;
662
702
  }>;
663
703
  renderLogin: typeof renderLogin;
664
704
  renderLoginIncodeID: typeof renderLoginIncodeID;
@@ -953,6 +993,7 @@ export declare function create({ apiKey, apiURL, lang, encrypt, translations, th
953
993
  token: string;
954
994
  screen?: string;
955
995
  code?: string;
996
+ includeAppLogs?: boolean;
956
997
  } & {
957
998
  shouldOpen: boolean;
958
999
  sardineScreen?: string;
@@ -1236,6 +1277,31 @@ declare type DigilockerCallbackProps = {
1236
1277
  }) => void;
1237
1278
  };
1238
1279
 
1280
+ declare type DigitalIdConfig = {
1281
+ enabledMethods: EnabledDigitalIdMethod[];
1282
+ };
1283
+
1284
+ /**
1285
+ * [ENG-46418] Per-flow Digital IDs (Apple/Google Wallet) configuration as it
1286
+ * appears inside the ID capture module configuration (flat shape, enriched by
1287
+ * the backend with catalog metadata). Method ids use UPPER_SNAKE
1288
+ * (`APPLE_WALLET`, `GOOGLE_WALLET`).
1289
+ */
1290
+ declare type DigitalIdMethod = {
1291
+ method: string;
1292
+ enabled: boolean;
1293
+ requestedFields?: string[];
1294
+ displayName?: string;
1295
+ type?: string;
1296
+ countries?: string[];
1297
+ logoUrl?: string;
1298
+ };
1299
+
1300
+ declare type DigitalIdsConfig = {
1301
+ enabled: boolean;
1302
+ methods: DigitalIdMethod[];
1303
+ };
1304
+
1239
1305
  export declare const DocumentCapture: FC<DocumentCaptureProps>;
1240
1306
 
1241
1307
  declare type DocumentCaptureError = {
@@ -1330,6 +1396,24 @@ declare type EmptyConfig = Record<string, never>;
1330
1396
 
1331
1397
  declare function emptyFunc(...props: unknown[]): void;
1332
1398
 
1399
+ /**
1400
+ * [ENG-46418] Enriched, cross-platform Digital IDs config exposed at the top
1401
+ * level of the flow response (`FlowDto.digitalIdConfig`). Method ids use
1402
+ * lower_snake (`apple_wallet`, `google_wallet`). This supersedes the deprecated
1403
+ * `appleWallet`/`googleWallet`/`deviceWallet` booleans.
1404
+ */
1405
+ declare type EnabledDigitalIdMethod = {
1406
+ id: string;
1407
+ displayName?: string;
1408
+ type?: string;
1409
+ countries?: string[];
1410
+ logoUrl?: string;
1411
+ requestedDocuments?: {
1412
+ type: string;
1413
+ requestedFields: string[];
1414
+ }[];
1415
+ };
1416
+
1333
1417
  export declare const enableDeviceRiskModule: ({ token, isSandbox, interviewId, }: EnableDeviceRiskModuleParams) => Promise<SardineContext>;
1334
1418
 
1335
1419
  declare type EnableDeviceRiskModuleParams = {
@@ -1449,7 +1533,7 @@ declare type FaceMatchProps = {
1449
1533
 
1450
1534
  export declare type FaceSuccess = SendFaceImageResponse;
1451
1535
 
1452
- declare const FEATURE_FLAGS: readonly ["id_text_barcode_readability", "selfie_local_lenses_check_web", "id_model_hebrew_back_id", "id_face_readability", "id_face_detector", "new_id_capture_ux_least_risky_clients", "enable_sentry_web", "id_test_aa", "id_iou_check", "iad_checks", "iad_c_checks", "new_fingerprint", "mp_test_hashed_id", "darwinium_profiling", "id_quality_backend_validation", "id_blur_threshold_03", "enable_fps_limit", "id_v2_reduced_aggregation_interval", "id_video_recording_enabled", "barcode_shadow_capture"];
1536
+ declare const FEATURE_FLAGS: readonly ["id_text_barcode_readability", "selfie_local_lenses_check_web", "id_model_hebrew_back_id", "id_face_readability", "id_face_detector", "new_id_capture_ux_least_risky_clients", "enable_sentry_web", "id_test_aa", "id_iou_check", "iad_checks", "iad_c_checks", "new_fingerprint", "mp_test_hashed_id", "darwinium_profiling", "id_quality_backend_validation", "id_v2_reduced_aggregation_interval", "id_video_recording_enabled", "barcode_shadow_capture", "enable_app_logs"];
1453
1537
 
1454
1538
  declare type FeatureConfig = {
1455
1539
  enabled: boolean;
@@ -1485,6 +1569,8 @@ declare function fetchProcessingStatus({ token }: {
1485
1569
  declare type FingerprintResult = {
1486
1570
  visitorId: string;
1487
1571
  ip: string;
1572
+ algorithmName?: string;
1573
+ algorithmVersion?: string;
1488
1574
  };
1489
1575
 
1490
1576
  export declare interface FinishedMessagePayload {
@@ -1522,6 +1608,8 @@ export declare type Flow = {
1522
1608
  ds?: boolean;
1523
1609
  oauth2Secured?: boolean;
1524
1610
  alwaysCaptureBackOfId?: boolean;
1611
+ /** [ENG-46418] Top-level enriched Digital IDs config (supersedes wallet booleans). */
1612
+ digitalIdConfig?: DigitalIdConfig;
1525
1613
  };
1526
1614
 
1527
1615
  declare type FlowConfig = {
@@ -1629,7 +1717,7 @@ declare type FlowModuleConfig = {
1629
1717
  directorsSource: 'userInput';
1630
1718
  };
1631
1719
  EXTERNAL_VERIFICATION: {
1632
- source: 'US_DRIVERS_LICENSE_1' | 'US_TELCO_1' | 'US_TELCO_2' | 'US_CONSUMER_1' | 'US_CREDIT_BUREAU_1' | 'MX_CONSUMER_1' | 'BR_GOVT_1' | 'CA_RES_CREDIT' | 'UK_CREDIT_BUREAU_1' | 'ES_PHONE_REGISTER_2' | 'CL_1' | 'AR_1' | 'GR_1' | 'GT_1' | 'BR_CPF_1' | 'NG_MONO_BVN' | 'NG_MONO_NIN';
1720
+ source: 'US_DRIVERS_LICENSE_1' | 'US_TELCO_1' | 'US_TELCO_2' | 'US_CONSUMER_1' | 'US_CREDIT_BUREAU_1' | 'MX_CONSUMER_1' | 'BR_GOVT_1' | 'CA_RES_CREDIT' | 'UK_CREDIT_BUREAU_1' | 'ES_PHONE_REGISTER_2' | 'CL_1' | 'AR_1' | 'GR_1' | 'GT_1' | 'BR_CPF_1' | 'NG_MONO_BVN' | 'NG_MONO_NIN' | 'PH_RES_CREDIT';
1633
1721
  checkName: boolean;
1634
1722
  nameSource: 'userInput' | 'document' | 'poa' | 'phoneModuleInput' | 'emailModuleInput';
1635
1723
  checkEmail: boolean;
@@ -1967,7 +2055,7 @@ export declare const getFinishStatus: (flowId: string | undefined | null, { toke
1967
2055
  }) => Promise<{
1968
2056
  redirectionUrl: string;
1969
2057
  action: 'approved' | 'rejected' | 'none';
1970
- scoreStatus: 'OK' | 'WARN' | 'MANUAL_OK' | 'FAIL' | 'UNKNOWN' | 'MANUAL_FAIL';
2058
+ scoreStatus: TotalScore;
1971
2059
  }>;
1972
2060
 
1973
2061
  export declare function getFlow(token: string): Promise<Flow>;
@@ -2100,6 +2188,17 @@ declare type HEX = `#${string}`;
2100
2188
 
2101
2189
  export declare const i18n: i18n_2;
2102
2190
 
2191
+ /** Per-attempt context consumed by the `captureAttemptFinished` enrichment
2192
+ * helper (ENG-41821). */
2193
+ declare type IdAttemptSummary = {
2194
+ initialCaptureMode: CaptureMode;
2195
+ captureMode: CaptureMode;
2196
+ autoCaptureTimeoutReached: boolean;
2197
+ idDetectedTimeoutReached: boolean;
2198
+ manualCaptureReason: ManualCaptureReason;
2199
+ timeToManualFallbackMs: number | null;
2200
+ };
2201
+
2103
2202
  export declare const IdCapture: FC<CaptureIdProps>;
2104
2203
 
2105
2204
  export declare const IdCaptureV2: FC<CaptureIdProps>;
@@ -2452,6 +2551,14 @@ declare type MainStatusRowProps = {
2452
2551
  small?: boolean;
2453
2552
  };
2454
2553
 
2554
+ /** Why we fell back to manual capture for the current attempt:
2555
+ * - `'needHelp'` — user pressed a help/manual button.
2556
+ * - `'idleTimeout'` — no ID detected within `idDetectedTimeout`.
2557
+ * - `'bestFrameTimeout'` — ID detected but no acceptable best frame within
2558
+ * `autocaptureTimeout`.
2559
+ * Null when capture stayed in auto mode. */
2560
+ declare type ManualCaptureReason = 'needHelp' | 'idleTimeout' | 'bestFrameTimeout' | null;
2561
+
2455
2562
  declare function manualIdUpload(element: any, { token, onSuccess, type, onlyFront, isSecondId, }: {
2456
2563
  token: any;
2457
2564
  onSuccess: () => void;
@@ -2712,7 +2819,7 @@ declare type PhoneProps = {
2712
2819
  otpVerification?: boolean;
2713
2820
  };
2714
2821
 
2715
- declare function postFingerprint({ hash, ip, deviceType, token, data, osVersion, deviceModel, browser, sdkVersion, hasLiedBrowser, hostingApp, ipLocation, }: PostFingerprintParams): Promise<{
2822
+ declare function postFingerprint({ hash, ip, deviceType, token, data, osVersion, deviceModel, browser, sdkVersion, hasLiedBrowser, hostingApp, algorithmName, algorithmVersion, ipLocation, }: PostFingerprintParams): Promise<{
2716
2823
  success: boolean;
2717
2824
  sessionStatus: string;
2718
2825
  showMandatoryConsent?: boolean;
@@ -2731,6 +2838,8 @@ declare type PostFingerprintParams = {
2731
2838
  sdkVersion: string;
2732
2839
  hasLiedBrowser: boolean;
2733
2840
  hostingApp: string;
2841
+ algorithmName?: string;
2842
+ algorithmVersion?: string;
2734
2843
  ipLocation?: {
2735
2844
  ipCountry: string;
2736
2845
  ipRegion: string;
@@ -2849,6 +2958,8 @@ export declare function processImss({ token, curp }: {
2849
2958
  curp?: string;
2850
2959
  }): Promise<WebClientResponse<any>>;
2851
2960
 
2961
+ declare type ProcessingMethod = 'sync' | 'async';
2962
+
2852
2963
  declare type ProcessInstantVerifyProps = {
2853
2964
  token: string;
2854
2965
  };
@@ -2942,10 +3053,11 @@ export declare namespace recorderRepository {
2942
3053
 
2943
3054
  export declare function Redirect({ session, onSuccess, url, showSms, assets, smsText, skipDesktopRedirect, allowSkipRedirect, externalId, expired, allowReEnrollment, authHint, qrPhishingResistance, uiConfig, flowId, oauth2Secured, }: RedirectProps): JSX_2.Element;
2944
3055
 
2945
- export declare function RedirectedCallFinished({ title, subtitle, displayOnboardingResultOnDesktop, token, }: {
3056
+ export declare function RedirectedCallFinished({ title, subtitle, displayOnboardingResultOnDesktop, showFinishScreenBySessionStatus, token, }: {
2946
3057
  title: any;
2947
3058
  subtitle: any;
2948
3059
  displayOnboardingResultOnDesktop: any;
3060
+ showFinishScreenBySessionStatus: any;
2949
3061
  token: any;
2950
3062
  }): JSX_2.Element;
2951
3063
 
@@ -3011,7 +3123,7 @@ declare function renderBiometricConsent(element: any, { token, onSuccess, onCanc
3011
3123
 
3012
3124
  declare function renderBiometricConsent_2(element: any, { token, onSuccess, consentId }: CombinedConsentProps): void;
3013
3125
 
3014
- export declare function renderCamera(type: string, element: Element, { onSuccess, onError, numberOfTries, onLog, permissionMessage, permissionBackgroundColor, token, timeout, sendBase64, documentType, showPreview, stream, nativeCamera, hideRetake, showTutorial, showPaperDLTutorial, onlyCapture, scanPdf417, videoTutorialSrc, showCustomCameraPermissionScreen, isSecondId, fullScreen, assistedOnboarding, isRecordingEnabled, onRestartOnboarding, showDoublePermissionsRequest, onlyAllowCapture, onlyUpload, onlyPdf, disableFullScreen, onStreamReady, showAutoCaptureIDOverlay, showManualCaptureIDOverlay, skipProcessFace, defaultHorizontalMask, isFixedMask, blurrinessStrictMode, isKiosk, ageAssurance, publishAudio, zoomLevel, idDetectedTimeout, flipVerticallyImage, disableZoomCheck, hatCheckEnabled, lensesCheckEnabled, maskCheckEnabled, eyesClosedCheckEnabled, isDeepsightEnabled, tutorialText, allowSkipDocumentCapture, }: RenderCameraProps): {
3126
+ export declare function renderCamera(type: string, element: Element, { onSuccess, onError, numberOfTries, onLog, permissionMessage, permissionBackgroundColor, token, timeout, sendBase64, documentType, showPreview, stream, nativeCamera, hideRetake, showTutorial, showPaperDLTutorial, onlyCapture, scanPdf417, videoTutorialSrc, showCustomCameraPermissionScreen, isSecondId, fullScreen, assistedOnboarding, isRecordingEnabled, onRestartOnboarding, showDoublePermissionsRequest, onlyAllowCapture, onlyUpload, onlyPdf, disableFullScreen, onStreamReady, showAutoCaptureIDOverlay, showManualCaptureIDOverlay, skipProcessFace, defaultHorizontalMask, isFixedMask, blurrinessStrictMode, isKiosk, ageAssurance, publishAudio, zoomLevel, idDetectedTimeout, flipVerticallyImage, disableZoomCheck, hatCheckEnabled, lensesCheckEnabled, maskCheckEnabled, eyesClosedCheckEnabled, isDeepsightEnabled, tutorialText, allowSkipDocumentCapture, extractIdFace, }: RenderCameraProps): {
3015
3127
  close: typeof emptyFunc;
3016
3128
  };
3017
3129
 
@@ -3071,6 +3183,11 @@ declare type RenderCameraProps = {
3071
3183
  eyesClosedCheckEnabled?: boolean;
3072
3184
  isDeepsightEnabled?: boolean;
3073
3185
  allowSkipDocumentCapture?: boolean;
3186
+ /** [ENG-44176] When `false`, the SDK forwards `extractIdFace=false` to
3187
+ * `POST /omni/add/front-id` (v1 + v2), so the backend skips biometric face
3188
+ * extraction. Omitted / `true` preserves current behavior. Only applied to
3189
+ * the front-id upload — back-id is unaffected. */
3190
+ extractIdFace?: boolean;
3074
3191
  tutorialText?: {
3075
3192
  [key: `step${number}`]: {
3076
3193
  title: string;
@@ -4547,6 +4664,17 @@ declare const tokens: {
4547
4664
  };
4548
4665
  };
4549
4666
 
4667
+ declare enum TotalScore {
4668
+ OK = "OK",
4669
+ WARN = "WARN",
4670
+ FAIL = "FAIL",
4671
+ UNKNOWN = "UNKNOWN",
4672
+ MANUAL = "MANUAL",
4673
+ MANUAL_OK = "MANUAL_OK",
4674
+ MANUAL_FAIL = "MANUAL_FAIL",
4675
+ MANUAL_PENDING = "MANUAL_PENDING"
4676
+ }
4677
+
4550
4678
  declare type Translations = {
4551
4679
  [key: string]: string | Translations;
4552
4680
  };
@@ -4565,12 +4693,23 @@ declare type TutorialIdConfig = {
4565
4693
  captureAttempts: number;
4566
4694
  manualUploadIdCapture: boolean;
4567
4695
  digitalIdsUpload: boolean;
4696
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
4568
4697
  deviceWallet: boolean;
4698
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
4699
+ appleWallet?: boolean;
4700
+ /** @deprecated [ENG-46418] superseded by `digitalIds`; kept for backward compat. */
4701
+ googleWallet?: boolean;
4702
+ /** [ENG-46418] Per-flow Apple/Google Wallet config (flat, enriched). */
4703
+ digitalIds?: DigitalIdsConfig;
4569
4704
  showDocumentChooserScreen: boolean;
4570
4705
  enableIdRecording: boolean;
4571
4706
  usSmartCapture: boolean;
4572
4707
  digiLocker?: boolean;
4573
4708
  alwaysCaptureBackOfId?: boolean;
4709
+ /** [ENG-44176] Backend-driven counterpart to `CaptureConfig.extractIdFace`.
4710
+ * When `false`, the SDK forwards `extractIdFace=false` to `add/front-id`
4711
+ * so the backend skips biometric face extraction (e.g. Quebec / Law 25). */
4712
+ extractIdFace?: boolean;
4574
4713
  perCountryPerDocOverrides: Record<string, Record<string, {
4575
4714
  onlyFront: boolean;
4576
4715
  onlyBack: boolean;
@@ -4668,7 +4807,7 @@ declare type UseFlowRedirectOptions = {
4668
4807
  forceSkipRedirect?: boolean;
4669
4808
  };
4670
4809
 
4671
- export declare function useIdDetection({ getCanvas, onCapture, mode }: UseIdDetectionProps): {
4810
+ export declare function useIdDetection({ getCanvas, onCapture, onBestFrame, mode, }: UseIdDetectionProps): {
4672
4811
  startDetection: () => void;
4673
4812
  stopDetection: () => void;
4674
4813
  detectionState: string;
@@ -4687,11 +4826,16 @@ export declare function useIdDetection({ getCanvas, onCapture, mode }: UseIdDete
4687
4826
  counterValue: number;
4688
4827
  switchToManualCapture: () => void;
4689
4828
  onManualCapture: () => void;
4829
+ /** Snapshot of the manager's per-attempt summary fields. Consumed by
4830
+ * the V2 `captureAttemptFinished` enrichment (ENG-41821). Returns null
4831
+ * if the manager hasn't initialized yet (transient pre-mount window). */
4832
+ getAttemptSummary: () => IdAttemptSummary | null;
4690
4833
  };
4691
4834
 
4692
4835
  declare type UseIdDetectionProps = {
4693
4836
  getCanvas: GetCanvas_2;
4694
4837
  onCapture: OnCapture;
4838
+ onBestFrame?: () => void;
4695
4839
  mode: Mode;
4696
4840
  };
4697
4841
 
@@ -4703,9 +4847,10 @@ declare type UseModuleEvent = {
4703
4847
  token: string;
4704
4848
  screen?: string;
4705
4849
  code?: string;
4850
+ includeAppLogs?: boolean;
4706
4851
  };
4707
4852
 
4708
- export declare function useModuleEvents({ module, payload, token, screen, }: UseModuleEvent): void;
4853
+ export declare function useModuleEvents({ module, payload, token, screen, includeAppLogs, }: UseModuleEvent): void;
4709
4854
 
4710
4855
  export declare const UserData: ({ goNext, isSecondId, token }: UserDataProps) => JSX_2.Element;
4711
4856
 
@@ -4814,6 +4959,13 @@ declare type WebcamProps = {
4814
4959
  poster?: string;
4815
4960
  isV2?: boolean;
4816
4961
  captureOnly?: boolean;
4962
+ /** [ENG-47514] Suppress the full-screen camera "loading" overlay (the black
4963
+ * spinner Modal). The capture result/preview screen (`CapturePreview`) sets
4964
+ * this while it is open so a stuck `isLoadingCamera` (observed on iOS after a
4965
+ * retake `resetWebcam`, where camera frames don't resume) can't render the
4966
+ * Loader (overlay z-index 9999) on top of the preview (z-index 1000) and
4967
+ * hide the Try Again / Continue button. */
4968
+ suppressLoadingOverlay?: boolean;
4817
4969
  };
4818
4970
 
4819
4971
  declare type WebcamRef = {
@@ -4858,6 +5010,7 @@ declare type WorkflowConfig_2 = {
4858
5010
  disableUnsupportedBrowserScreen?: boolean;
4859
5011
  oauth2Secured?: boolean;
4860
5012
  enableUxV2?: boolean;
5013
+ showFinishScreenBySessionStatus?: boolean;
4861
5014
  };
4862
5015
 
4863
5016
  declare interface WorkflowPropsWithoutToken extends BaseWorkflowProps {