@getpassage/react-native
Version:
Passage React Native SDK for mobile authentication
69 lines (68 loc) • 2.71 kB
TypeScript
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 {};