@simplr-ai/react-native 1.1.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.
@@ -0,0 +1,606 @@
1
+ /**
2
+ * Shared types mirroring the Simplr API contract (source of truth).
3
+ * Keep byte-for-byte compatible with the browser/Node/Flutter SDKs.
4
+ */
5
+ type RiskLevel = "low" | "medium" | "high" | "critical";
6
+ /** Device signals collected from React Native APIs (no DOM/canvas). */
7
+ interface DeviceSignals {
8
+ /** Combined stable device fingerprint hash (murmurhash3 hex). */
9
+ fingerprint: string;
10
+ /** Individual fingerprint components. */
11
+ fingerprint_components: {
12
+ device_signature: string;
13
+ screen_signature: string;
14
+ locale_signature: string;
15
+ };
16
+ /** Persistent device ID (AsyncStorage-backed when available). */
17
+ device_id: string;
18
+ /** When the device ID was first created (ISO 8601), or null. */
19
+ device_id_created_at: string | null;
20
+ /** Platform type. */
21
+ platform: "ios" | "android";
22
+ /** Operating system name. */
23
+ os: string;
24
+ os_version: string | null;
25
+ /** Device model / brand if obtainable. */
26
+ model: string | null;
27
+ brand: string | null;
28
+ /** Screen geometry. */
29
+ screen_resolution: string;
30
+ device_pixel_ratio: number;
31
+ font_scale: number;
32
+ /** Timezone. */
33
+ timezone: string;
34
+ timezone_offset: number;
35
+ /** Locale. */
36
+ language: string;
37
+ languages: string[];
38
+ /** Whether the device is recognized as a physical phone/tablet (vs simulator). */
39
+ is_emulator: boolean | null;
40
+ }
41
+ interface TouchMetrics {
42
+ /** Average touch pressure (0-1), when the platform reports force. */
43
+ avgPressure: number;
44
+ /** Standard deviation of touch pressure. */
45
+ pressureStdDev: number;
46
+ /** Average swipe velocity (px/s). */
47
+ avgSwipeVelocity: number;
48
+ /** Number of touch sample points. */
49
+ touchCount: number;
50
+ /** Number of tap (touch-end) gestures. */
51
+ tapCount: number;
52
+ /** Average interval between consecutive taps (ms). */
53
+ avgTapInterval: number;
54
+ /** Standard deviation of tap intervals (ms). */
55
+ tapIntervalStdDev: number;
56
+ /** Average duration a touch was held (ms). */
57
+ avgTouchDuration: number;
58
+ /** Number of multi-touch gestures. */
59
+ multiTouchCount: number;
60
+ /** Total tracking duration (ms). */
61
+ totalDuration: number;
62
+ }
63
+ interface BehaviorSignals {
64
+ touch?: TouchMetrics;
65
+ /** Time the user spent on the current form/screen (ms). */
66
+ form_fill_time?: number;
67
+ }
68
+ interface CollectedSignals {
69
+ device: DeviceSignals;
70
+ behavior: BehaviorSignals;
71
+ collected_at: string;
72
+ }
73
+ /** POST /v1/check input. */
74
+ interface CheckInput {
75
+ email?: string;
76
+ phone?: string;
77
+ device?: Record<string, unknown>;
78
+ behavior?: Record<string, unknown>;
79
+ event_type?: string;
80
+ event_id?: string;
81
+ metadata?: Record<string, unknown>;
82
+ [key: string]: unknown;
83
+ }
84
+ /** POST /v1/check result. */
85
+ interface CheckResult {
86
+ type?: string;
87
+ risk_score: number;
88
+ risk_level: RiskLevel;
89
+ signals?: Record<string, unknown>;
90
+ email?: string;
91
+ phone_number?: string;
92
+ fingerprint_hash?: string;
93
+ checked_at?: string;
94
+ is_sandbox?: boolean;
95
+ [key: string]: unknown;
96
+ }
97
+ /** POST /v1/orders input. */
98
+ interface OrderInput {
99
+ order_id: string;
100
+ external_id?: string;
101
+ amount: number;
102
+ currency: string;
103
+ fingerprint_hash?: string;
104
+ [key: string]: unknown;
105
+ }
106
+ /** POST /v1/orders result. */
107
+ interface OrderResult {
108
+ order_id: string;
109
+ risk_score: number;
110
+ risk_level: RiskLevel;
111
+ [key: string]: unknown;
112
+ }
113
+ /** Feature-flag rule (contract). */
114
+ interface FlagRule {
115
+ attribute: string;
116
+ op: "eq" | "neq" | "contains";
117
+ value: string;
118
+ }
119
+ /** Feature-flag definition (contract). */
120
+ interface FlagDefinition {
121
+ key: string;
122
+ enabled: boolean;
123
+ rollout_percentage: number;
124
+ target_user_ids: string[];
125
+ rules: FlagRule[];
126
+ }
127
+ interface EvalContext {
128
+ userId?: string;
129
+ attributes?: Record<string, unknown>;
130
+ }
131
+ interface IdentifyOptions {
132
+ /** Profile type. */
133
+ profileType?: "customer" | "cashier" | "employee";
134
+ /** Pre-collected device signals (auto-collected if omitted). */
135
+ deviceSignals?: DeviceSignals;
136
+ /** Extra fields merged into the request body. */
137
+ [key: string]: unknown;
138
+ }
139
+ interface ProfileResult {
140
+ profile: {
141
+ id: string;
142
+ external_id: string;
143
+ profile_type: string;
144
+ status: string;
145
+ risk_score: number;
146
+ risk_level: string;
147
+ device_count: number;
148
+ total_orders: number;
149
+ first_seen_at: string;
150
+ last_seen_at: string;
151
+ };
152
+ is_new: boolean;
153
+ device_linked: boolean;
154
+ device_anomaly?: string;
155
+ [key: string]: unknown;
156
+ }
157
+ interface ProfileRiskResult {
158
+ profile: {
159
+ id: string;
160
+ external_id: string;
161
+ profile_type: string;
162
+ status: string;
163
+ risk_score: number;
164
+ risk_level: string;
165
+ signals: Record<string, number>;
166
+ device_count: number;
167
+ total_orders: number;
168
+ flagged_orders: number;
169
+ fraud_reports: number;
170
+ legitimate_reports: number;
171
+ first_seen_at: string;
172
+ last_seen_at: string;
173
+ };
174
+ [key: string]: unknown;
175
+ }
176
+ type RUMEventType = "session_start" | "session_end" | "view" | "action" | "error" | "log";
177
+ type RUMLogLevel = "debug" | "info" | "warn" | "error";
178
+ interface RUMEvent {
179
+ type: RUMEventType;
180
+ timestamp: number;
181
+ sessionId: string;
182
+ viewId?: string;
183
+ userId?: string;
184
+ applicationId: string;
185
+ applicationVersion?: string;
186
+ environment?: string;
187
+ platform?: string;
188
+ view?: {
189
+ id: string;
190
+ name: string;
191
+ };
192
+ action?: {
193
+ name: string;
194
+ type: string;
195
+ };
196
+ error?: {
197
+ message: string;
198
+ stack?: string;
199
+ type?: string;
200
+ };
201
+ log?: {
202
+ level: RUMLogLevel;
203
+ message: string;
204
+ };
205
+ attributes?: Record<string, unknown>;
206
+ userAttributes?: Record<string, unknown>;
207
+ globalAttributes?: Record<string, unknown>;
208
+ }
209
+ interface RUMEventBatch {
210
+ events: RUMEvent[];
211
+ sentAt: number;
212
+ }
213
+ type BindingMode = "verified_device" | "any_location";
214
+ interface CreateDelegationOptions {
215
+ userId: string;
216
+ email?: string;
217
+ binding?: BindingMode;
218
+ expiresInDays?: number;
219
+ sessionId?: string;
220
+ fingerprintHash?: string;
221
+ }
222
+ interface DelegationResult {
223
+ token: string;
224
+ delegationId: string;
225
+ expiresAt: string;
226
+ bindingMode: BindingMode;
227
+ }
228
+ interface DelegationInfo {
229
+ delegationId: string;
230
+ endUserId: string;
231
+ bindingMode: BindingMode;
232
+ status: "active" | "revoked" | "expired";
233
+ expiresAt: string;
234
+ useCount: number;
235
+ lastUsedAt?: string;
236
+ createdAt: string;
237
+ }
238
+ interface ValidationResult {
239
+ valid: boolean;
240
+ sessionType?: "ai";
241
+ endUserId?: string;
242
+ delegation?: {
243
+ delegationId: string;
244
+ bindingMode: BindingMode;
245
+ expiresAt: string;
246
+ useCount: number;
247
+ };
248
+ error?: string;
249
+ }
250
+ interface DelegationStats {
251
+ totalDelegations: number;
252
+ activeDelegations: number;
253
+ totalUses: number;
254
+ delegationsByBinding: {
255
+ verifiedDevice: number;
256
+ anyLocation: number;
257
+ };
258
+ }
259
+
260
+ /**
261
+ * Touch / gesture dynamics tracker for React Native.
262
+ *
263
+ * Pure JS, analogous to the browser touch tracker but fed by handlers the
264
+ * developer attaches to RN gesture responders (PanResponder / onTouch* props).
265
+ * It records tap intervals, touch pressure/force (when reported), swipe
266
+ * velocity and touch durations, then derives stable behavioral metrics.
267
+ */
268
+
269
+ /** A single touch sample. Shaped to accept RN GestureResponderEvent fields. */
270
+ interface TouchSample {
271
+ x: number;
272
+ y: number;
273
+ timestamp: number;
274
+ /** Pressure/force 0..1 (iOS 3D-touch / pencil); 0 when unreported. */
275
+ force?: number;
276
+ }
277
+ /** Subset of an RN GestureResponderEvent we read from. */
278
+ interface RNTouchEventLike {
279
+ nativeEvent?: {
280
+ locationX?: number;
281
+ locationY?: number;
282
+ pageX?: number;
283
+ pageY?: number;
284
+ force?: number;
285
+ timestamp?: number;
286
+ touches?: unknown[];
287
+ };
288
+ }
289
+ declare class TouchTracker {
290
+ private samples;
291
+ private touchDurations;
292
+ private tapTimestamps;
293
+ private activeStart;
294
+ private multiTouchCount;
295
+ private startTime;
296
+ private tracking;
297
+ start(): void;
298
+ stop(): void;
299
+ reset(): void;
300
+ private extract;
301
+ /** Call on touch/gesture start (e.g. onResponderGrant / onTouchStart). */
302
+ handleTouchStart(e: RNTouchEventLike): void;
303
+ /** Call on touch/gesture move (e.g. onResponderMove / onTouchMove). */
304
+ handleTouchMove(e: RNTouchEventLike): void;
305
+ /** Call on touch/gesture end (e.g. onResponderRelease / onTouchEnd). */
306
+ handleTouchEnd(e: RNTouchEventLike): void;
307
+ /** Handlers ready to spread onto a View's responder/touch props. */
308
+ getEventHandlers(): {
309
+ onTouchStart: (e: RNTouchEventLike) => void;
310
+ onTouchMove: (e: RNTouchEventLike) => void;
311
+ onTouchEnd: (e: RNTouchEventLike) => void;
312
+ };
313
+ getMetrics(): TouchMetrics;
314
+ getRawData(): TouchSample[];
315
+ }
316
+ declare function createTouchTracker(): TouchTracker;
317
+
318
+ /**
319
+ * Anonymous user profile management + order fraud monitoring for React Native.
320
+ *
321
+ * Configure with a PUBLIC key (pk_…). Ported from the browser SimplrProfiles,
322
+ * but reuses the RN http helper (which sends `X-API-Key` and unwraps the
323
+ * `{ success, message, content }` envelope) and the shared SimplrError.
324
+ */
325
+
326
+ interface SimplrProfilesConfig {
327
+ /** Public API key (pk_*). */
328
+ apiKey: string;
329
+ /** API base URL (default https://api.simplr.sh). */
330
+ baseUrl?: string;
331
+ /** Per-request timeout in ms (default 15000). */
332
+ timeoutMs?: number;
333
+ /** Override fetch (defaults to the RN/global fetch). */
334
+ fetchImpl?: typeof fetch;
335
+ }
336
+ declare class SimplrProfiles {
337
+ private apiKey;
338
+ private baseUrl;
339
+ private timeoutMs;
340
+ private fetchImpl?;
341
+ private collectDeviceSignalsFn?;
342
+ private configured;
343
+ constructor(config?: SimplrProfilesConfig);
344
+ configure(config: SimplrProfilesConfig): this;
345
+ /**
346
+ * Set the device-signal collector so identify()/submitOrder() can auto-attach
347
+ * a fingerprint. The main client wires this to its own collector.
348
+ */
349
+ setDeviceSignalCollector(fn: () => Promise<DeviceSignals>): void;
350
+ private requireConfigured;
351
+ private get httpConfig();
352
+ /** Create or update an anonymous profile and link the current device. */
353
+ identify(externalId: string, options?: IdentifyOptions): Promise<ProfileResult>;
354
+ /** Submit an order for real-time fraud scoring; auto-attaches a fingerprint. */
355
+ submitOrder(order: OrderInput): Promise<OrderResult>;
356
+ /** Get the risk profile for a user. */
357
+ getProfileRisk(externalId: string): Promise<ProfileRiskResult>;
358
+ /** Report a profile as fraud or legitimate. */
359
+ reportOutcome(externalId: string, outcome: "fraud" | "legitimate"): Promise<void>;
360
+ }
361
+ /** Convenience singleton. */
362
+ declare const simplrProfiles: SimplrProfiles;
363
+
364
+ /**
365
+ * SimplrRUM — Real User Monitoring for React Native.
366
+ *
367
+ * Configure with a PUBLIC key (pk_…). Batches events and flushes them to
368
+ * POST /v1/rum/events using a timer-based flush (setInterval). There are no
369
+ * native dependencies — screen views are captured via the public trackView()
370
+ * API the developer calls (or the useTrackView hook). Reuses the RN http helper
371
+ * (`X-API-Key` + envelope unwrapping) and the shared SimplrError.
372
+ */
373
+
374
+ interface SimplrRUMConfig {
375
+ /** Public API key (pk_*). */
376
+ apiKey: string;
377
+ /** Application identifier (required). */
378
+ applicationId: string;
379
+ /** Optional version/environment tags applied to every event. */
380
+ applicationVersion?: string;
381
+ environment?: string;
382
+ /** API base URL (default https://api.simplr.sh). */
383
+ baseUrl?: string;
384
+ /** Flush when this many events are queued (default 30). */
385
+ batchSize?: number;
386
+ /** Background flush interval in ms (default 10000; 0 disables the timer). */
387
+ flushInterval?: number;
388
+ /** Per-request timeout in ms (default 15000). */
389
+ timeoutMs?: number;
390
+ /** Override fetch (defaults to the RN/global fetch). */
391
+ fetchImpl?: typeof fetch;
392
+ }
393
+ declare class SimplrRUM {
394
+ private config;
395
+ private initialized;
396
+ private baseUrl;
397
+ private timeoutMs;
398
+ private fetchImpl?;
399
+ private batchSize;
400
+ private queue;
401
+ private timer;
402
+ private flushing;
403
+ private sessionId;
404
+ private currentViewId;
405
+ private userId?;
406
+ private userAttributes?;
407
+ private globalAttributes;
408
+ /** Initialize the SDK, start a session, and begin the flush timer. */
409
+ initialize(config: SimplrRUMConfig): void;
410
+ isInitialized(): boolean;
411
+ private get httpConfig();
412
+ /** Associate subsequent events with a user. */
413
+ setUser(userId: string, attributes?: Record<string, unknown>): void;
414
+ clearUser(): void;
415
+ addAttribute(key: string, value: unknown): void;
416
+ removeAttribute(key: string): void;
417
+ /** Track a screen view (call from your navigation listener or useTrackView). */
418
+ trackView(name: string, attributes?: Record<string, unknown>): void;
419
+ /** Track a user action (tap, swipe, submit, …). */
420
+ trackAction(name: string, attributes?: Record<string, unknown>): void;
421
+ /** Track an error. */
422
+ trackError(error: Error | {
423
+ message: string;
424
+ stack?: string;
425
+ type?: string;
426
+ }, attributes?: Record<string, unknown>): void;
427
+ /** Emit a log line. */
428
+ log(level: RUMLogLevel, message: string, attributes?: Record<string, unknown>): void;
429
+ private trackEvent;
430
+ /** Flush queued events to POST /v1/rum/events. */
431
+ flush(): Promise<void>;
432
+ /** End the session, flush remaining events, and stop the timer. */
433
+ stopSession(): Promise<void>;
434
+ getSessionId(): string | null;
435
+ getViewId(): string | null;
436
+ }
437
+ /** Convenience singleton. */
438
+ declare const simplrRUM: SimplrRUM;
439
+
440
+ /**
441
+ * AI delegation (SimplrAI) for React Native — OAuth-like AI authentication.
442
+ *
443
+ * Configure with a PUBLIC key (pk_…). Mint, validate, and revoke delegation
444
+ * tokens an end user shares with their AI agent. Reuses the RN http helper
445
+ * (`X-API-Key` + envelope unwrapping) and the shared SimplrError.
446
+ *
447
+ * The browser SDK's interactive `connect()` popup is browser-only (uses
448
+ * window.open / postMessage) and is intentionally omitted here — use
449
+ * createDelegation() to mint tokens directly.
450
+ */
451
+
452
+ interface SimplrAIConfig {
453
+ /** API key (public pk_* for clients). */
454
+ apiKey: string;
455
+ /** API base URL (default https://api.simplr.sh). */
456
+ baseUrl?: string;
457
+ timeoutMs?: number;
458
+ fetchImpl?: typeof fetch;
459
+ }
460
+ declare class SimplrAI {
461
+ private apiKey;
462
+ private baseUrl;
463
+ private timeoutMs;
464
+ private fetchImpl?;
465
+ private configured;
466
+ constructor(config?: SimplrAIConfig);
467
+ configure(config: SimplrAIConfig): this;
468
+ private requireConfigured;
469
+ private get httpConfig();
470
+ /** Create a new AI delegation token for a user. POST /v1/ai/delegations. */
471
+ createDelegation(options: CreateDelegationOptions): Promise<DelegationResult>;
472
+ /** Validate (introspect) an AI delegation token. POST /v1/ai/validate. */
473
+ validate(token: string, options?: {
474
+ fingerprintHash?: string;
475
+ aiProvider?: string;
476
+ action?: string;
477
+ }): Promise<ValidationResult>;
478
+ /** Revoke a delegation. POST /v1/ai/delegations/{id}/revoke. */
479
+ revoke(delegationId: string, reason?: string): Promise<void>;
480
+ /** List delegations, optionally filtered by user. GET /v1/ai/delegations. */
481
+ list(userId?: string): Promise<DelegationInfo[]>;
482
+ /** Get a single delegation. GET /v1/ai/delegations/{id}. */
483
+ get(delegationId: string): Promise<DelegationInfo>;
484
+ /** Get delegation statistics. GET /v1/ai/stats. */
485
+ stats(): Promise<DelegationStats>;
486
+ /** Revoke all delegations for a user (e.g. on logout). POST /v1/ai/revoke-all. */
487
+ revokeAllForUser(userId: string, reason?: string): Promise<number>;
488
+ }
489
+ /** Convenience singleton. */
490
+ declare const simplrAI: SimplrAI;
491
+
492
+ /**
493
+ * SimplrFraud — the React Native client surface.
494
+ *
495
+ * Configure with a PUBLIC key (pk_…), collect device signals, run fraud checks
496
+ * (POST /v1/check), submit orders (POST /v1/orders), and optionally identify
497
+ * profiles. Uses the global fetch (available in React Native).
498
+ */
499
+
500
+ interface SimplrFraudConfig {
501
+ /** Public API key (pk_live_… / pk_test_…). Safe for client use. */
502
+ apiKey: string;
503
+ /** API base URL (default https://api.simplr.sh). Trailing slashes stripped. */
504
+ baseUrl?: string;
505
+ /** Per-request timeout in ms (default 15000). */
506
+ timeoutMs?: number;
507
+ /** Begin collecting touch biometrics immediately (default true). */
508
+ autoStart?: boolean;
509
+ /** Override fetch (defaults to the RN/global fetch). */
510
+ fetchImpl?: typeof fetch;
511
+ }
512
+ declare class SimplrFraud {
513
+ private apiKey;
514
+ private baseUrl;
515
+ private timeoutMs;
516
+ private fetchImpl?;
517
+ private touchTracker;
518
+ private formStartTime;
519
+ private configured;
520
+ /** Anonymous user profiles + order fraud monitoring (shares this client's config). */
521
+ readonly profiles: SimplrProfiles;
522
+ /** Real User Monitoring — batched events to /v1/rum/events. */
523
+ readonly rum: SimplrRUM;
524
+ /** AI delegation — OAuth-like AI authentication. */
525
+ readonly ai: SimplrAI;
526
+ constructor(config?: SimplrFraudConfig);
527
+ /** Configure (or re-configure) the client. */
528
+ configure(config: SimplrFraudConfig): this;
529
+ private requireConfigured;
530
+ private get httpConfig();
531
+ /** Start collecting touch biometrics and reset the form timer. */
532
+ startTracking(): void;
533
+ stopTracking(): void;
534
+ reset(): void;
535
+ /** The shared touch tracker; attach its handlers to your Views. */
536
+ getTouchTracker(): TouchTracker;
537
+ collectBehaviorSignals(): BehaviorSignals;
538
+ /** Collect stable device signals from React Native APIs. */
539
+ getDeviceSignals(): Promise<DeviceSignals>;
540
+ /** Collect device + behavior signals together. */
541
+ collect(): Promise<CollectedSignals>;
542
+ /**
543
+ * Run a fraud check. Device + behavior signals are auto-collected and merged
544
+ * into the request unless already present on `input`.
545
+ */
546
+ check(input?: CheckInput): Promise<CheckResult>;
547
+ /** Submit an order for scoring (POST /v1/orders). */
548
+ submitOrder(order: OrderInput): Promise<OrderResult>;
549
+ /**
550
+ * Identify/associate the current device with an external profile id.
551
+ * Sends a profile check via POST /v1/check with the device signals attached.
552
+ */
553
+ identify(externalId: string, metadata?: Record<string, unknown>): Promise<CheckResult>;
554
+ }
555
+ /** Convenience singleton for simple apps. */
556
+ declare const simplr: SimplrFraud;
557
+
558
+ /**
559
+ * Feature flags with deterministic per-user rollout + targeting.
560
+ *
561
+ * Ported from @simplr-ai/js. Flags are fetched once from
562
+ * GET /v1/flags (public key) and refreshed on an interval, then evaluated
563
+ * locally — no network call per `isEnabled`. Bucketing uses the verbatim
564
+ * murmurHash3 port so it matches the server/browser/Node/Flutter exactly.
565
+ */
566
+
567
+ interface SimplrFlagsConfig {
568
+ /** Public API key (pk_*). */
569
+ apiKey: string;
570
+ /** API base URL (default https://api.simplr.sh). */
571
+ baseUrl?: string;
572
+ /** Which key environment's flags to load (default: test). */
573
+ environment?: "live" | "test";
574
+ /** Auto-refresh interval in ms (default 60000; 0 disables). */
575
+ refreshIntervalMs?: number;
576
+ /** Fallback identity used when no userId is supplied (e.g. device_id). */
577
+ defaultUserId?: string;
578
+ /** Override fetch (defaults to global fetch). */
579
+ fetchImpl?: typeof fetch;
580
+ }
581
+ declare class SimplrFlags {
582
+ private apiKey;
583
+ private baseUrl;
584
+ private environment;
585
+ private refreshIntervalMs;
586
+ private flags;
587
+ private userId?;
588
+ private defaultUserId?;
589
+ private fetchImpl?;
590
+ private timer;
591
+ private ready;
592
+ initialize(config: SimplrFlagsConfig): Promise<void>;
593
+ setUser(userId: string): void;
594
+ /** Sets the fallback identity (typically the persisted device_id). */
595
+ setDefaultUser(userId: string): void;
596
+ refresh(): Promise<void>;
597
+ isEnabled(key: string, ctx?: EvalContext): boolean;
598
+ getAll(): Record<string, FlagDefinition>;
599
+ /** Replace the in-memory flag set directly (useful for testing/SSR). */
600
+ setFlags(list: FlagDefinition[]): void;
601
+ isReady(): boolean;
602
+ dispose(): void;
603
+ }
604
+ declare const simplrFlags: SimplrFlags;
605
+
606
+ export { simplr as A, type BehaviorSignals as B, type CheckInput as C, type DeviceSignals as D, type EvalContext as E, type FlagDefinition as F, simplrAI as G, simplrFlags as H, type IdentifyOptions as I, simplrProfiles as J, simplrRUM as K, type OrderInput as O, type ProfileResult as P, type RUMEvent as R, SimplrFraud as S, TouchTracker as T, type ValidationResult as V, SimplrFlags as a, type SimplrRUMConfig as b, SimplrRUM as c, type SimplrFraudConfig as d, type BindingMode as e, type CheckResult as f, type CollectedSignals as g, type CreateDelegationOptions as h, type DelegationInfo as i, type DelegationResult as j, type DelegationStats as k, type FlagRule as l, type OrderResult as m, type ProfileRiskResult as n, type RUMEventBatch as o, type RUMEventType as p, type RUMLogLevel as q, type RiskLevel as r, SimplrAI as s, type SimplrAIConfig as t, type SimplrFlagsConfig as u, SimplrProfiles as v, type SimplrProfilesConfig as w, type TouchMetrics as x, type TouchSample as y, createTouchTracker as z };