<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@snowplow/react-native-tracker](./react-native-tracker.md) &gt; [ReactNativeTracker](./react-native-tracker.reactnativetracker.md)

## ReactNativeTracker type

The ReactNativeTracker type

<b>Signature:</b>

```typescript
export declare type ReactNativeTracker = {
    namespace: string;
    readonly trackSelfDescribingEvent: <T extends Record<string, unknown> = Record<string, unknown>>(argmap: SelfDescribing<T>, contexts?: EventContext[]) => void;
    readonly trackScreenViewEvent: (argmap: ScreenViewProps, contexts?: EventContext[]) => void;
    readonly trackScrollChangedEvent: (argmap: ScrollChangedProps, contexts?: EventContext[]) => void;
    readonly trackListItemViewEvent: (argmap: ListItemViewProps, contexts?: EventContext[]) => void;
    readonly trackStructuredEvent: (argmap: StructuredProps, contexts?: EventContext[]) => void;
    readonly trackPageViewEvent: (argmap: PageViewEvent, contexts?: EventContext[]) => void;
    readonly trackTimingEvent: (argmap: TimingProps, contexts?: EventContext[]) => void;
    readonly trackDeepLinkReceivedEvent: (argmap: DeepLinkReceivedProps, contexts?: EventContext[]) => void;
    readonly trackMessageNotificationEvent: (argmap: MessageNotificationProps, contexts?: EventContext[]) => void;
    addGlobalContexts(contexts: Array<ConditionalContextProvider | ContextPrimitive> | Record<string, ConditionalContextProvider | ContextPrimitive>): void;
    clearGlobalContexts(): void;
    removeGlobalContexts(contexts: Array<ConditionalContextProvider | ContextPrimitive | string>): void;
    addPlugin(configuration: BrowserPluginConfiguration): void;
    flush: () => Promise<void>;
    readonly setAppId: (appId: string) => void;
    readonly setPlatform: (value: string) => void;
    readonly setUserId: (newUid: string) => void;
    readonly setNetworkUserId: (newNuid: string | undefined) => void;
    readonly setDomainUserId: (newDuid: string | undefined) => void;
    readonly setIpAddress: (newIp: string) => void;
    readonly setUseragent: (newUagent: string) => void;
    readonly setTimezone: (newTz: string) => void;
    readonly setLanguage: (newLang: string) => void;
    readonly setScreenResolution: (newRes: ScreenSize) => void;
    readonly setScreenViewport: (newView: ScreenSize) => void;
    readonly setColorDepth: (newLang: number) => void;
    readonly setSubjectData: (config: SubjectConfiguration) => void;
    readonly getSessionUserId: () => Promise<string | undefined>;
    readonly getSessionId: () => Promise<string | undefined>;
    readonly getSessionIndex: () => Promise<number | undefined>;
    readonly getSessionState: () => Promise<SessionState | undefined>;
    readonly getIsInBackground: () => boolean | undefined;
    readonly getBackgroundIndex: () => number | undefined;
    readonly getForegroundIndex: () => number | undefined;
    readonly enablePlatformContext: () => Promise<void>;
    readonly disablePlatformContext: () => void;
    readonly refreshPlatformContext: () => Promise<void>;
};
```
<b>References:</b> [SelfDescribing](./react-native-tracker.selfdescribing.md)<!-- -->, [EventContext](./react-native-tracker.eventcontext.md)<!-- -->, [ScreenViewProps](./react-native-tracker.screenviewprops.md)<!-- -->, [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md)<!-- -->, [ListItemViewProps](./react-native-tracker.listitemviewprops.md)<!-- -->, [StructuredProps](./react-native-tracker.structuredprops.md)<!-- -->, [TimingProps](./react-native-tracker.timingprops.md)<!-- -->, [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md)<!-- -->, [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md)<!-- -->, [ScreenSize](./react-native-tracker.screensize.md)<!-- -->, [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md)<!-- -->, [SessionState](./react-native-tracker.sessionstate.md)

