UNPKG

@rudderstack/rudder-sdk-react-native

Version:
50 lines (45 loc) 2.01 kB
import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; import IRudderContext from './IRudderContext'; type dictionary = { [key: string]: unknown } | null; export interface Configuration { dataPlaneUrl?: string; controlPlaneUrl?: string; flushQueueSize?: number; dbCountThreshold?: number; sleepTimeOut?: number; configRefreshInterval?: number; autoCollectAdvertId?: boolean; trackAppLifecycleEvents?: boolean; recordScreenViews?: boolean; logLevel?: number; autoSessionTracking?: boolean; sessionTimeout?: number; enableBackgroundMode?: boolean; collectDeviceId?: boolean; enableGzip?: boolean; dbEncryption?: unknown; // eslint-disable-next-line @typescript-eslint/ban-types withFactories?: Array<Record<string, unknown> | Function>; } export interface Spec extends TurboModule { setup(configuration: dictionary, options: dictionary): Promise<void>; track(event: string, properties: dictionary, options: dictionary | null): Promise<void>; screen(name: string, properties: dictionary, options: dictionary): Promise<void>; identify(userId: string, traits: dictionary, options: dictionary): Promise<void>; alias(newId: string, previousId: string | null, options: dictionary): Promise<void>; group(groupId: string, traits: dictionary, options: dictionary): Promise<void>; reset(clearAnonymousId: boolean): Promise<void>; flush(): Promise<void>; optOut(optOut: boolean): Promise<void>; putDeviceToken(token: string): Promise<void>; putAdvertisingId(id: string): Promise<void>; clearAdvertisingId(): Promise<void>; putAnonymousId(id: string): Promise<void>; registerCallback(integrationName: string, callback: (data: unknown) => void): void; getRudderContext(): Promise<IRudderContext | null>; startSession(sessionId?: string): Promise<void>; endSession(): Promise<void>; getSessionId(): Promise<number | null>; } export default TurboModuleRegistry.getEnforcing<Spec>('RNRudderSdkModule');