UNPKG

@getpassage/react-native

Version:

Passage React Native SDK for mobile authentication

69 lines (68 loc) 2.71 kB
export declare const ANALYTICS_EVENTS: { readonly SDK_MODAL_OPENED: "SDK_MODAL_OPENED"; readonly SDK_MODAL_CLOSED: "SDK_MODAL_CLOSED"; readonly SDK_CONFIGURE_START: "SDK_CONFIGURE_START"; readonly SDK_CONFIGURE_SUCCESS: "SDK_CONFIGURE_SUCCESS"; readonly SDK_CONFIGURE_ERROR: "SDK_CONFIGURE_ERROR"; readonly SDK_CONFIGURATION_REQUEST: "SDK_CONFIGURATION_REQUEST"; readonly SDK_CONFIGURATION_SUCCESS: "SDK_CONFIGURATION_SUCCESS"; readonly SDK_CONFIGURATION_ERROR: "SDK_CONFIGURATION_ERROR"; readonly SDK_OPEN_REQUEST: "SDK_OPEN_REQUEST"; readonly SDK_OPEN_SUCCESS: "SDK_OPEN_SUCCESS"; readonly SDK_OPEN_ERROR: "SDK_OPEN_ERROR"; readonly SDK_ON_SUCCESS: "SDK_ON_SUCCESS"; readonly SDK_ON_ERROR: "SDK_ON_ERROR"; readonly SDK_REMOTE_CONTROL_CONNECT_START: "SDK_REMOTE_CONTROL_CONNECT_START"; readonly SDK_REMOTE_CONTROL_CONNECT_SUCCESS: "SDK_REMOTE_CONTROL_CONNECT_SUCCESS"; readonly SDK_REMOTE_CONTROL_CONNECT_ERROR: "SDK_REMOTE_CONTROL_CONNECT_ERROR"; readonly SDK_REMOTE_CONTROL_DISCONNECT: "SDK_REMOTE_CONTROL_DISCONNECT"; readonly SDK_WEBVIEW_SWITCH: "SDK_WEBVIEW_SWITCH"; readonly SDK_NAVIGATION_START: "SDK_NAVIGATION_START"; readonly SDK_NAVIGATION_SUCCESS: "SDK_NAVIGATION_SUCCESS"; readonly SDK_NAVIGATION_ERROR: "SDK_NAVIGATION_ERROR"; readonly SDK_COMMAND_RECEIVED: "SDK_COMMAND_RECEIVED"; readonly SDK_COMMAND_SUCCESS: "SDK_COMMAND_SUCCESS"; readonly SDK_COMMAND_ERROR: "SDK_COMMAND_ERROR"; }; export type AnalyticsEventType = (typeof ANALYTICS_EVENTS)[keyof typeof ANALYTICS_EVENTS]; export interface AnalyticsEvent { event: AnalyticsEventType; timestamp?: string; userId?: string; sessionId?: string; metadata?: Record<string, unknown>; } export interface SDKAnalyticsEvent extends AnalyticsEvent { source: "sdk"; sdkName: string; sdkVersion?: string; appVersion?: string; platform?: string; deviceInfo?: Record<string, unknown>; } declare class AnalyticsManager { private enabled; private readonly analyticsUrl; private sdkName; private sdkVersion?; private sessionId; private intentToken?; private eventQueue; private flushTimer?; private readonly BATCH_SIZE; private readonly FLUSH_INTERVAL; constructor(); /** * Update intent token and extract session ID */ updateIntentToken(token: string | null): void; configure(config: { enabled?: boolean; }): void; track(event: AnalyticsEventType, metadata?: Record<string, unknown>): void; flush(): Promise<void>; private startBatchFlushTimer; destroy(): void; } export declare const analytics: AnalyticsManager; export {};