@keyringnetwork/keyring-connect-sdk 4.1.0-alpha.2 → 4.1.0-alpha.3

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 (70) hide show
  1. package/dist/index.cjs +3279 -0
  2. package/dist/index.d.cts +263 -0
  3. package/dist/index.d.ts +263 -3
  4. package/dist/index.js +3251 -21
  5. package/package.json +10 -6
  6. package/readme.md +20 -75
  7. package/dist/core/VerificationSession.d.ts +0 -62
  8. package/dist/core/VerificationSession.js +0 -404
  9. package/dist/core/errors.d.ts +0 -49
  10. package/dist/core/errors.js +0 -81
  11. package/dist/core/htppClient.d.ts +0 -17
  12. package/dist/core/htppClient.js +0 -160
  13. package/dist/core/keyringConnectExtension.d.ts +0 -45
  14. package/dist/core/keyringConnectExtension.js +0 -241
  15. package/dist/core/websocketClient.d.ts +0 -23
  16. package/dist/core/websocketClient.js +0 -220
  17. package/dist/types/api.d.ts +0 -24
  18. package/dist/types/api.js +0 -2
  19. package/dist/types/core.d.ts +0 -78
  20. package/dist/types/core.js +0 -2
  21. package/dist/types/extension.d.ts +0 -59
  22. package/dist/types/extension.js +0 -9
  23. package/dist/types/index.d.ts +0 -4
  24. package/dist/types/index.js +0 -20
  25. package/dist/types/websocket.d.ts +0 -68
  26. package/dist/types/websocket.js +0 -3
  27. package/dist/ui/UIManager.d.ts +0 -52
  28. package/dist/ui/UIManager.js +0 -257
  29. package/dist/ui/components/keyring-button.d.ts +0 -12
  30. package/dist/ui/components/keyring-button.js +0 -140
  31. package/dist/ui/components/keyring-text.d.ts +0 -12
  32. package/dist/ui/components/keyring-text.js +0 -169
  33. package/dist/ui/composites/keyring-complete-modal.d.ts +0 -19
  34. package/dist/ui/composites/keyring-complete-modal.js +0 -200
  35. package/dist/ui/composites/keyring-mobile-modal.d.ts +0 -25
  36. package/dist/ui/composites/keyring-mobile-modal.js +0 -308
  37. package/dist/ui/composites/keyring-qr-modal.d.ts +0 -32
  38. package/dist/ui/composites/keyring-qr-modal.js +0 -464
  39. package/dist/ui/composites/keyring-selection-modal.d.ts +0 -25
  40. package/dist/ui/composites/keyring-selection-modal.js +0 -342
  41. package/dist/ui/composites/keyring-terminated-modal.d.ts +0 -14
  42. package/dist/ui/composites/keyring-terminated-modal.js +0 -121
  43. package/dist/ui/icons/apple-icon.d.ts +0 -4
  44. package/dist/ui/icons/apple-icon.js +0 -47
  45. package/dist/ui/icons/check-circle.d.ts +0 -4
  46. package/dist/ui/icons/check-circle.js +0 -35
  47. package/dist/ui/icons/checkmark.d.ts +0 -4
  48. package/dist/ui/icons/checkmark.js +0 -37
  49. package/dist/ui/icons/close-circle.d.ts +0 -4
  50. package/dist/ui/icons/close-circle.js +0 -35
  51. package/dist/ui/icons/error-circle.d.ts +0 -4
  52. package/dist/ui/icons/error-circle.js +0 -48
  53. package/dist/ui/icons/extension-grid.d.ts +0 -4
  54. package/dist/ui/icons/extension-grid.js +0 -79
  55. package/dist/ui/icons/google-icon.d.ts +0 -4
  56. package/dist/ui/icons/google-icon.js +0 -55
  57. package/dist/ui/icons/gradient-donut.d.ts +0 -8
  58. package/dist/ui/icons/gradient-donut.js +0 -85
  59. package/dist/ui/icons/keyring.d.ts +0 -4
  60. package/dist/ui/icons/keyring.js +0 -71
  61. package/dist/ui/icons/mobile-grid.d.ts +0 -4
  62. package/dist/ui/icons/mobile-grid.js +0 -68
  63. package/dist/ui/icons/success.d.ts +0 -4
  64. package/dist/ui/icons/success.js +0 -54
  65. package/dist/utils/environment.d.ts +0 -34
  66. package/dist/utils/environment.js +0 -67
  67. package/dist/utils/logger.d.ts +0 -7
  68. package/dist/utils/logger.js +0 -40
  69. package/dist/utils/platformUtils.d.ts +0 -24
  70. package/dist/utils/platformUtils.js +0 -64
@@ -0,0 +1,263 @@
1
+ export * from '@keyringnetwork/contracts-abi';
2
+ import { ExtensionStatus, BaseWebSocketMessage, DataTransportType, UserJourneyType, SessionStatus } from '@keyringnetwork/keyring-core-sdk';
3
+ export { DataTransportType, EVENT_ACTIONS, ExtensionLaunchConfig, ExtensionStatus, UserJourneyType } from '@keyringnetwork/keyring-core-sdk';
4
+ import { DatasourceTypes } from '@keyringnetwork/keyring-dtos';
5
+
6
+ type AttestationStatus = "onboarding_required" | "onboarding_pending" | "attestation_ready" | "non_compliant";
7
+ type CredentialStatus = "expired" | "valid" | "none";
8
+ type User = {
9
+ /**
10
+ * Off-chain attestation status.
11
+ */
12
+ attestation_status: AttestationStatus;
13
+ /**
14
+ * On-chain keyring credential status.
15
+ */
16
+ credential_status: CredentialStatus;
17
+ /**
18
+ * Connected wallet address of the user.
19
+ */
20
+ wallet_address: string;
21
+ /**
22
+ * Keyring User ID.
23
+ */
24
+ user_id: string;
25
+ /**
26
+ * Keyring Entity ID.
27
+ */
28
+ entity_id: string;
29
+ };
30
+ interface ExtensionState {
31
+ status: ExtensionStatus;
32
+ manifest?: unknown;
33
+ error?: string;
34
+ user?: User;
35
+ tlsn_proof?: string;
36
+ credentialData?: CredentialData;
37
+ }
38
+
39
+ type ConnectWebSocketMessage<TType extends string, TData = unknown> = BaseWebSocketMessage<TType, TData> & {
40
+ session_id: string;
41
+ timestamp: number;
42
+ };
43
+ type SessionCreatedMessage = ConnectWebSocketMessage<"session_created", {
44
+ session_id: string;
45
+ qr_code_data: string;
46
+ expires_at: number | string;
47
+ }>;
48
+ type ExtensionConnectedMessage = ConnectWebSocketMessage<"extension_connected", {
49
+ device_info: {
50
+ platform: "extension";
51
+ extension_id: string;
52
+ extension_version: string;
53
+ };
54
+ }>;
55
+ type MobileConnectedMessage = ConnectWebSocketMessage<"mobile_connected", {
56
+ device_info: {
57
+ platform: "ios" | "android";
58
+ app_version: string;
59
+ };
60
+ connection_id: string;
61
+ }>;
62
+ type ProcessingStartedMessage = ConnectWebSocketMessage<"processing_started", Record<string, unknown> | undefined>;
63
+ type ProcessingCompletedMessage = ConnectWebSocketMessage<"processing_completed", {
64
+ result: {
65
+ credential_data: CredentialData;
66
+ entity_type: string;
67
+ datasourceObject: DatasourceTypes.DatasourceObject;
68
+ };
69
+ status: "success" | "error" | "cancelled";
70
+ }>;
71
+ type ProcessingFailedMessage = ConnectWebSocketMessage<"processing_failed" | "error", {
72
+ error: string;
73
+ [key: string]: unknown;
74
+ }>;
75
+ type SessionExpiredMessage = ConnectWebSocketMessage<"session_expired", {
76
+ reason: "timeout" | "manual";
77
+ }>;
78
+ type WebSocketMessage = SessionCreatedMessage | ExtensionConnectedMessage | MobileConnectedMessage | ProcessingStartedMessage | ProcessingCompletedMessage | ProcessingFailedMessage | SessionExpiredMessage | ConnectWebSocketMessage<string, unknown>;
79
+
80
+ interface SessionConfig {
81
+ /**
82
+ * The name of the client.
83
+ */
84
+ name: string;
85
+ /**
86
+ * The URL of the client app which the chrome extension will communicate with.
87
+ */
88
+ app_url: string;
89
+ /**
90
+ * The URL of the client logo.
91
+ */
92
+ logo_url: string;
93
+ /**
94
+ * The onchain policy ID of the client.
95
+ */
96
+ policy_id: number;
97
+ /**
98
+ * The wallet address and chain ID of the user.
99
+ */
100
+ credential_config: {
101
+ chain_id: number;
102
+ wallet_address: string;
103
+ };
104
+ /**
105
+ * The short-lived browser token used to create backend sessions.
106
+ */
107
+ clientToken?: string;
108
+ /**
109
+ * Keyring Network configuration for the extension.
110
+ * @note this is meant to be used for internal testing and development purposes.
111
+ */
112
+ krn_config?: {
113
+ keyring_api_url?: string;
114
+ keyring_user_app_url?: string;
115
+ analytics_api_url?: string;
116
+ notaryUrl?: string;
117
+ websocketProxyUrl?: string;
118
+ };
119
+ dataTransport?: DataTransportType;
120
+ userJourney?: UserJourneyType;
121
+ websocket?: {
122
+ session_id: string;
123
+ session_token: string;
124
+ };
125
+ }
126
+ interface CredentialData {
127
+ trader: `0x${string}`;
128
+ policyId: number;
129
+ chainId: number;
130
+ validUntil: number;
131
+ cost: number;
132
+ key: string;
133
+ signature: string;
134
+ backdoor: string;
135
+ }
136
+ interface SDKError {
137
+ code: string;
138
+ message: string;
139
+ details?: any;
140
+ }
141
+ type SDKErrorCode = "BACKEND_UNAVAILABLE" | "SESSION_CREATION_FAILED" | "SESSION_NOT_FOUND" | "SESSION_EXPIRED" | "WEBSOCKET_CONNECTION_FAILED" | "WEBSOCKET_DISCONNECTED" | "PROCESSING_FAILED" | "NETWORK_ERROR" | "VALIDATION_ERROR" | "TIMEOUT_ERROR" | "QR_DISPLAY_NOT_SUPPORTED";
142
+ interface SDKCallbacks {
143
+ onExtensionConnected?: (data: ExtensionConnectedMessage["data"]) => void;
144
+ onSessionCreated?: (data: SessionCreatedMessage["data"]) => void;
145
+ onMobileConnected?: (data: MobileConnectedMessage["data"]) => void;
146
+ onProcessingStarted?: (data: ProcessingStartedMessage["data"]) => void;
147
+ onProcessingCompleted?: (data: ProcessingCompletedMessage["data"]) => void;
148
+ onProcessingFailed?: (data: ProcessingFailedMessage["data"]) => void;
149
+ onSessionExpired?: (data: SessionExpiredMessage["data"]) => void;
150
+ onError?: (error: SDKError) => void;
151
+ onConnectionStatusChanged?: (connected: boolean) => void;
152
+ }
153
+ type SDKEventTypes = "sessionCreated" | "extensionConnected" | "mobileConnected" | "processingStarted" | "processingCompleted" | "processingFailed" | "sessionExpired" | "error" | "connectionStatusChanged";
154
+ type SDKEventData = {
155
+ sessionCreated: SessionCreatedMessage["data"];
156
+ extensionConnected: ExtensionConnectedMessage["data"];
157
+ mobileConnected: MobileConnectedMessage["data"];
158
+ processingStarted: ProcessingStartedMessage["data"];
159
+ processingCompleted: ProcessingCompletedMessage["data"];
160
+ processingFailed: ProcessingFailedMessage["data"];
161
+ sessionExpired: SessionExpiredMessage["data"];
162
+ error: SDKError;
163
+ connectionStatusChanged: boolean;
164
+ };
165
+
166
+ interface CrossDeviceSession {
167
+ session_id: string;
168
+ session_token: string;
169
+ config: SessionConfig;
170
+ origin_url: string;
171
+ status: SessionStatus;
172
+ created_at: number | string;
173
+ expires_at: number | string;
174
+ result?: {
175
+ credential_data?: CredentialData;
176
+ entity_type?: string;
177
+ datasourceObject?: DatasourceTypes.DatasourceObject;
178
+ };
179
+ error?: string;
180
+ platform: "web" | "mobile";
181
+ qr_code_data: string;
182
+ connected_clients: {
183
+ web?: string;
184
+ mobile?: string;
185
+ };
186
+ }
187
+
188
+ /**
189
+ * Represents an active verification session with proper cleanup
190
+ */
191
+ declare class VerificationSession {
192
+ private readonly sessionConfig;
193
+ private static activeSession;
194
+ private static staticLogger;
195
+ private logger;
196
+ private httpClient?;
197
+ private wsClient?;
198
+ private sessionResponse?;
199
+ private stopPolling?;
200
+ private uiManager?;
201
+ private eventListeners;
202
+ private isWebsocketActive;
203
+ private flowType;
204
+ private resultPromise?;
205
+ private resolveResult?;
206
+ private rejectResult?;
207
+ private closePromise?;
208
+ private resultSettled;
209
+ private constructor();
210
+ /**
211
+ * Launch verification flow with automatic platform detection and fallback
212
+ */
213
+ static launch(sessionConfig: SessionConfig): Promise<VerificationSession>;
214
+ /**
215
+ * Start the verification session
216
+ */
217
+ start(): Promise<CredentialData | null>;
218
+ get sessionId(): string | undefined;
219
+ get sessionToken(): string | undefined;
220
+ /**
221
+ * Add event listener for verification events
222
+ */
223
+ addEventListener<T extends SDKEventTypes>(eventType: T, listener: (data: SDKEventData[T]) => void): void;
224
+ /**
225
+ * Remove event listener
226
+ */
227
+ removeEventListener<T extends SDKEventTypes>(eventType: T, listener: (data: SDKEventData[T]) => void): void;
228
+ /**
229
+ * Clean up all resources
230
+ */
231
+ close(): Promise<void>;
232
+ private complete;
233
+ private fail;
234
+ private resolvePendingResult;
235
+ private rejectPendingResult;
236
+ private clearPendingResultHandlers;
237
+ private cleanup;
238
+ private resolveDataTransport;
239
+ private validateTransportRequirements;
240
+ private startChromeApiFlow;
241
+ /**
242
+ * Initialize mobile-specific resources (HTTP client, session, WebSocket)
243
+ */
244
+ private initializeSession;
245
+ private setupWebSocket;
246
+ private setupUI;
247
+ private showQR;
248
+ private showMobileModal;
249
+ /**
250
+ * Start HTTP polling as fallback when WebSocket is disconnected
251
+ */
252
+ private startPollingFallback;
253
+ private createSession;
254
+ private closeBackendSession;
255
+ private getSession;
256
+ /**
257
+ * Handle session updates from HTTP polling
258
+ */
259
+ private handlePollingUpdate;
260
+ private emit;
261
+ }
262
+
263
+ export { type AttestationStatus, type CredentialData, type CredentialStatus, type CrossDeviceSession, type ExtensionConnectedMessage, type ExtensionState, type MobileConnectedMessage, type ProcessingCompletedMessage, type ProcessingFailedMessage, type ProcessingStartedMessage, type SDKCallbacks, type SDKError, type SDKErrorCode, type SDKEventData, type SDKEventTypes, type SessionConfig, type SessionCreatedMessage, type SessionExpiredMessage, type User, VerificationSession, type WebSocketMessage };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,263 @@
1
- export * from "@keyringnetwork/contracts-abi";
2
- export { VerificationSession } from "./core/VerificationSession";
3
- export * from "./types";
1
+ export * from '@keyringnetwork/contracts-abi';
2
+ import { ExtensionStatus, BaseWebSocketMessage, DataTransportType, UserJourneyType, SessionStatus } from '@keyringnetwork/keyring-core-sdk';
3
+ export { DataTransportType, EVENT_ACTIONS, ExtensionLaunchConfig, ExtensionStatus, UserJourneyType } from '@keyringnetwork/keyring-core-sdk';
4
+ import { DatasourceTypes } from '@keyringnetwork/keyring-dtos';
5
+
6
+ type AttestationStatus = "onboarding_required" | "onboarding_pending" | "attestation_ready" | "non_compliant";
7
+ type CredentialStatus = "expired" | "valid" | "none";
8
+ type User = {
9
+ /**
10
+ * Off-chain attestation status.
11
+ */
12
+ attestation_status: AttestationStatus;
13
+ /**
14
+ * On-chain keyring credential status.
15
+ */
16
+ credential_status: CredentialStatus;
17
+ /**
18
+ * Connected wallet address of the user.
19
+ */
20
+ wallet_address: string;
21
+ /**
22
+ * Keyring User ID.
23
+ */
24
+ user_id: string;
25
+ /**
26
+ * Keyring Entity ID.
27
+ */
28
+ entity_id: string;
29
+ };
30
+ interface ExtensionState {
31
+ status: ExtensionStatus;
32
+ manifest?: unknown;
33
+ error?: string;
34
+ user?: User;
35
+ tlsn_proof?: string;
36
+ credentialData?: CredentialData;
37
+ }
38
+
39
+ type ConnectWebSocketMessage<TType extends string, TData = unknown> = BaseWebSocketMessage<TType, TData> & {
40
+ session_id: string;
41
+ timestamp: number;
42
+ };
43
+ type SessionCreatedMessage = ConnectWebSocketMessage<"session_created", {
44
+ session_id: string;
45
+ qr_code_data: string;
46
+ expires_at: number | string;
47
+ }>;
48
+ type ExtensionConnectedMessage = ConnectWebSocketMessage<"extension_connected", {
49
+ device_info: {
50
+ platform: "extension";
51
+ extension_id: string;
52
+ extension_version: string;
53
+ };
54
+ }>;
55
+ type MobileConnectedMessage = ConnectWebSocketMessage<"mobile_connected", {
56
+ device_info: {
57
+ platform: "ios" | "android";
58
+ app_version: string;
59
+ };
60
+ connection_id: string;
61
+ }>;
62
+ type ProcessingStartedMessage = ConnectWebSocketMessage<"processing_started", Record<string, unknown> | undefined>;
63
+ type ProcessingCompletedMessage = ConnectWebSocketMessage<"processing_completed", {
64
+ result: {
65
+ credential_data: CredentialData;
66
+ entity_type: string;
67
+ datasourceObject: DatasourceTypes.DatasourceObject;
68
+ };
69
+ status: "success" | "error" | "cancelled";
70
+ }>;
71
+ type ProcessingFailedMessage = ConnectWebSocketMessage<"processing_failed" | "error", {
72
+ error: string;
73
+ [key: string]: unknown;
74
+ }>;
75
+ type SessionExpiredMessage = ConnectWebSocketMessage<"session_expired", {
76
+ reason: "timeout" | "manual";
77
+ }>;
78
+ type WebSocketMessage = SessionCreatedMessage | ExtensionConnectedMessage | MobileConnectedMessage | ProcessingStartedMessage | ProcessingCompletedMessage | ProcessingFailedMessage | SessionExpiredMessage | ConnectWebSocketMessage<string, unknown>;
79
+
80
+ interface SessionConfig {
81
+ /**
82
+ * The name of the client.
83
+ */
84
+ name: string;
85
+ /**
86
+ * The URL of the client app which the chrome extension will communicate with.
87
+ */
88
+ app_url: string;
89
+ /**
90
+ * The URL of the client logo.
91
+ */
92
+ logo_url: string;
93
+ /**
94
+ * The onchain policy ID of the client.
95
+ */
96
+ policy_id: number;
97
+ /**
98
+ * The wallet address and chain ID of the user.
99
+ */
100
+ credential_config: {
101
+ chain_id: number;
102
+ wallet_address: string;
103
+ };
104
+ /**
105
+ * The short-lived browser token used to create backend sessions.
106
+ */
107
+ clientToken?: string;
108
+ /**
109
+ * Keyring Network configuration for the extension.
110
+ * @note this is meant to be used for internal testing and development purposes.
111
+ */
112
+ krn_config?: {
113
+ keyring_api_url?: string;
114
+ keyring_user_app_url?: string;
115
+ analytics_api_url?: string;
116
+ notaryUrl?: string;
117
+ websocketProxyUrl?: string;
118
+ };
119
+ dataTransport?: DataTransportType;
120
+ userJourney?: UserJourneyType;
121
+ websocket?: {
122
+ session_id: string;
123
+ session_token: string;
124
+ };
125
+ }
126
+ interface CredentialData {
127
+ trader: `0x${string}`;
128
+ policyId: number;
129
+ chainId: number;
130
+ validUntil: number;
131
+ cost: number;
132
+ key: string;
133
+ signature: string;
134
+ backdoor: string;
135
+ }
136
+ interface SDKError {
137
+ code: string;
138
+ message: string;
139
+ details?: any;
140
+ }
141
+ type SDKErrorCode = "BACKEND_UNAVAILABLE" | "SESSION_CREATION_FAILED" | "SESSION_NOT_FOUND" | "SESSION_EXPIRED" | "WEBSOCKET_CONNECTION_FAILED" | "WEBSOCKET_DISCONNECTED" | "PROCESSING_FAILED" | "NETWORK_ERROR" | "VALIDATION_ERROR" | "TIMEOUT_ERROR" | "QR_DISPLAY_NOT_SUPPORTED";
142
+ interface SDKCallbacks {
143
+ onExtensionConnected?: (data: ExtensionConnectedMessage["data"]) => void;
144
+ onSessionCreated?: (data: SessionCreatedMessage["data"]) => void;
145
+ onMobileConnected?: (data: MobileConnectedMessage["data"]) => void;
146
+ onProcessingStarted?: (data: ProcessingStartedMessage["data"]) => void;
147
+ onProcessingCompleted?: (data: ProcessingCompletedMessage["data"]) => void;
148
+ onProcessingFailed?: (data: ProcessingFailedMessage["data"]) => void;
149
+ onSessionExpired?: (data: SessionExpiredMessage["data"]) => void;
150
+ onError?: (error: SDKError) => void;
151
+ onConnectionStatusChanged?: (connected: boolean) => void;
152
+ }
153
+ type SDKEventTypes = "sessionCreated" | "extensionConnected" | "mobileConnected" | "processingStarted" | "processingCompleted" | "processingFailed" | "sessionExpired" | "error" | "connectionStatusChanged";
154
+ type SDKEventData = {
155
+ sessionCreated: SessionCreatedMessage["data"];
156
+ extensionConnected: ExtensionConnectedMessage["data"];
157
+ mobileConnected: MobileConnectedMessage["data"];
158
+ processingStarted: ProcessingStartedMessage["data"];
159
+ processingCompleted: ProcessingCompletedMessage["data"];
160
+ processingFailed: ProcessingFailedMessage["data"];
161
+ sessionExpired: SessionExpiredMessage["data"];
162
+ error: SDKError;
163
+ connectionStatusChanged: boolean;
164
+ };
165
+
166
+ interface CrossDeviceSession {
167
+ session_id: string;
168
+ session_token: string;
169
+ config: SessionConfig;
170
+ origin_url: string;
171
+ status: SessionStatus;
172
+ created_at: number | string;
173
+ expires_at: number | string;
174
+ result?: {
175
+ credential_data?: CredentialData;
176
+ entity_type?: string;
177
+ datasourceObject?: DatasourceTypes.DatasourceObject;
178
+ };
179
+ error?: string;
180
+ platform: "web" | "mobile";
181
+ qr_code_data: string;
182
+ connected_clients: {
183
+ web?: string;
184
+ mobile?: string;
185
+ };
186
+ }
187
+
188
+ /**
189
+ * Represents an active verification session with proper cleanup
190
+ */
191
+ declare class VerificationSession {
192
+ private readonly sessionConfig;
193
+ private static activeSession;
194
+ private static staticLogger;
195
+ private logger;
196
+ private httpClient?;
197
+ private wsClient?;
198
+ private sessionResponse?;
199
+ private stopPolling?;
200
+ private uiManager?;
201
+ private eventListeners;
202
+ private isWebsocketActive;
203
+ private flowType;
204
+ private resultPromise?;
205
+ private resolveResult?;
206
+ private rejectResult?;
207
+ private closePromise?;
208
+ private resultSettled;
209
+ private constructor();
210
+ /**
211
+ * Launch verification flow with automatic platform detection and fallback
212
+ */
213
+ static launch(sessionConfig: SessionConfig): Promise<VerificationSession>;
214
+ /**
215
+ * Start the verification session
216
+ */
217
+ start(): Promise<CredentialData | null>;
218
+ get sessionId(): string | undefined;
219
+ get sessionToken(): string | undefined;
220
+ /**
221
+ * Add event listener for verification events
222
+ */
223
+ addEventListener<T extends SDKEventTypes>(eventType: T, listener: (data: SDKEventData[T]) => void): void;
224
+ /**
225
+ * Remove event listener
226
+ */
227
+ removeEventListener<T extends SDKEventTypes>(eventType: T, listener: (data: SDKEventData[T]) => void): void;
228
+ /**
229
+ * Clean up all resources
230
+ */
231
+ close(): Promise<void>;
232
+ private complete;
233
+ private fail;
234
+ private resolvePendingResult;
235
+ private rejectPendingResult;
236
+ private clearPendingResultHandlers;
237
+ private cleanup;
238
+ private resolveDataTransport;
239
+ private validateTransportRequirements;
240
+ private startChromeApiFlow;
241
+ /**
242
+ * Initialize mobile-specific resources (HTTP client, session, WebSocket)
243
+ */
244
+ private initializeSession;
245
+ private setupWebSocket;
246
+ private setupUI;
247
+ private showQR;
248
+ private showMobileModal;
249
+ /**
250
+ * Start HTTP polling as fallback when WebSocket is disconnected
251
+ */
252
+ private startPollingFallback;
253
+ private createSession;
254
+ private closeBackendSession;
255
+ private getSession;
256
+ /**
257
+ * Handle session updates from HTTP polling
258
+ */
259
+ private handlePollingUpdate;
260
+ private emit;
261
+ }
262
+
263
+ export { type AttestationStatus, type CredentialData, type CredentialStatus, type CrossDeviceSession, type ExtensionConnectedMessage, type ExtensionState, type MobileConnectedMessage, type ProcessingCompletedMessage, type ProcessingFailedMessage, type ProcessingStartedMessage, type SDKCallbacks, type SDKError, type SDKErrorCode, type SDKEventData, type SDKEventTypes, type SessionConfig, type SessionCreatedMessage, type SessionExpiredMessage, type User, VerificationSession, type WebSocketMessage };