
### Event
Main event abstract class for inheriting classes.
  

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

This is an abstract class and it is not meant to be instantiated directly. You should use concrete `RecommendationEvent` subclasses instead.

</div></div></div>

  
**Declared In:**  
lib/classes/events/Event.js  
  
**Declaration:**  

<pre><code class="language-TypeScript">abstract class Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(type: string, label: string, action: string | null, parameters: object)</code></pre>


---
---

### CustomEvent

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

DO NOT send `transaction.charge` events as custom events.<br>
Transactions must be tracked with these endpoints:
- [`/v4/transactions`](https://developers.synerise.com/DataManagement/DataManagement.html#operation/CreateATransaction) (single transaction)
- [`/v4/transactions/batch`](https://developers.synerise.com/DataManagement/DataManagement.html#operation/BatchAddOrUpdateTransactions) (multiple transactions)

</div></div></div>

Represents a custom client event.  
  
**Declared In:**  
lib/classes/events/other/CustomEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**  

<pre><code class="language-TypeScript">class CustomEvent extends Event</code></pre>

  
**Initializers:**
  

<pre><code class="language-TypeScript">constructor(label: string, action: string, parameters?: Record&lt;string, any&gt;)</code></pre>


---
---

### PushViewedEvent
Represents a 'client viewed push' event.
  
This event is used for push message interaction tracking.
  
**Declared In:**  
lib/classes/events/push/ViewedPushEvent.js   
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)    
  
**Declaration:**

<pre><code class="language-TypeScript">class PushViewedEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### PushClickedEvent
Represents a 'client clicked push' event.
  
This event is used for push message interaction tracking.
  
**Declared In:**  
lib/classes/events/push/ClickedPushEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class PushClickedEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### PushCancelledEvent
Represents a 'client viewed push' event.
  
This event is used for push message interaction tracking.
  
**Declared In:**  
lib/classes/events/push/CancelledPushEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)   
  
**Declaration:**

<pre><code class="language-TypeScript">class PushCancelledEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### CartEvent
Main cart action abstract class for inheriting classes.
  

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

This is an abstract class and it is not meant to be instantiated directly. You should use concrete `CartEvent` subclasses instead.

</div></div></div>

  
**Declared In:**  
lib/classes/events/cart/CartEvent.js  
  
**Inherits From:**
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class CartEvent extends Event</code></pre>

  
**Initializers:**  

<pre><code class="language-TypeScript">constructor(type: string, label: string, sku: string, finalPrice: UnitPrice, quantity: number, parameters?: object)</code></pre>

  
**Methods:**

This method sets a value for the `name` parameter.

<pre><code class="language-TypeScript">public setName(name: string)</code></pre>


---

This method sets a value for the `category` parameter.

<pre><code class="language-TypeScript">public setCategory(category: string)</code></pre>


---

This method sets values for the `categories` parameter.

<pre><code class="language-TypeScript">public setCategories(categories: string[])</code></pre>


---

This method sets a value for the `offline` parameter.

<pre><code class="language-TypeScript">public setOffline(offline: boolean)</code></pre>


---

This method sets the value of the `regularPrice` parameter.

<pre><code class="language-TypeScript">public setRegularPrice(regularPrice: UnitPrice)</code></pre>


---

This method sets the value of the `discountedPrice` parameter.

<pre><code class="language-TypeScript">public setDiscountedPrice(discountedPrice: UnitPrice)</code></pre>


---

This method sets the value of the `url` parameter.

<pre><code class="language-TypeScript">public setUrl(url: string)</code></pre>


---

This method sets the value of the `producer` parameter (producer can signify a brand of the item).

<pre><code class="language-TypeScript">public setProducer(producer: string)</code></pre>


---
---

### UnitPrice
**Declared In:**  
lib/classes/events/cart/UnitPrice.js  
  
**Declaration:**

<pre><code class="language-TypeScript">class UnitPrice</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(amount: number, currency: string)</code></pre>


---
---

### ProductAddedToCartEvent
Represents a 'client added product to cart' event.
  
**Declared In:**  
lib/classes/events/product/ProductAddedToCartEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class ProductAddedToCartEvent extends CartEvent</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, sku: string, finalPrice: UnitPrice, quantity: number, parameters?: object)</code></pre>


---
---

### ProductRemovedFromCartEvent
Represents a 'client removed product from cart' event.
  
**Declared In:**  
lib/classes/events/cart/RemovedFromCartEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class ProductRemovedFromCartEvent extends CartEvent</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, sku: string, finalPrice: UnitPrice, quantity: number, parameters?: object)</code></pre>


---
---

### ProductViewedEvent
Represents a 'client viewed product' event.
  
**Declared In:**  
lib/classes/events/product/ProductViewEvent.js  

**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**  

<pre><code class="language-TypeScript">class ProductViewedEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, productId: string, name: string, parameters?: object)</code></pre>

  
**Methods:**

This method sets a value for the `category` parameter.

<pre><code class="language-TypeScript">public setCategory(category: string)</code></pre>


---

This method sets the value of the `url` parameter.

<pre><code class="language-TypeScript">public setUrl(url: string)</code></pre>


---
---

### ProductAddedToFavoritesEvent
Represents a 'client added product to favorites' event.
  
**Declared In:**  
lib/classes/events/product/ProductAddedToFavouritesEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class ProductAddedToFavouritesEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### LoggedInEvent
Represents a 'client logged in' event.
  
**Declared In:**  
lib/classes/events/auth/LoggedInEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class LoggedInEvent extends Event</code></pre>


---
---

### LoggedOutEvent
Represents a 'client logged out' event.
  
**Declared In:**  
lib/classes/events/auth/LoggedOutEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class LoggedOutEvent extends Event</code></pre>


---
---

### RegisteredEvent
Represents a 'client registered' event.
  
**Declared In:**  
lib/classes/events/auth/RegisteredEvent.js    
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**  

<pre><code class="language-TypeScript">class RegisteredEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

## RecommendationEvent
Main recommendation abstract class for inheriting classes.
  

<div class="admonition admonition-warning"><div class="admonition-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" /></svg></div><div class="admonition-body"><div class="admonition-content">

This is an abstract class and it is not meant to be instantiated directly. You should use concrete `RecommendationEvent` subclasses instead.

</div></div></div>

  
**Declared In:**  
lib/classes/events/recommendation/RecommendationEvent.js    
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)    
  
**Declaration:**  

<pre><code class="language-TypeScript">class RecommendationEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(type: string, label: string, productId: string, name: string, campaignId: string, campaignHash: string, parameters?: object)</code></pre>


---
---

### RecommendationSeenEvent
Represents a 'client saw a recommendation' event.
  
**Declared In:**  
lib/classes/events/recommendation/RecommendationSeenEvent.js   
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**  

<pre><code class="language-TypeScript">class RecommendationSeenEvent extends RecommendationEvent</code></pre>

  
**Initializers:**  

<pre><code class="language-TypeScript">constructor(label: string, productId: string, name: string, campaignId: string, campaignHash: string, parameters?: object)</code></pre>


---
---

### RecommendationClickEvent
Represents a 'client clicked a recommendation' event.
  
**Declared In:**  
lib/classes/events/recommendation/RecommendationClickEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
[RecommendationEvent](/developers/mobile-sdk/class-reference/react-native/events#recommendationevent)  
  
**Declaration:**

<pre><code class="language-TypeScript">class RecommendationClickEvent extends RecommendationEvent</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, productId: string, name: string, campaignId: string, campaignHash: string, parameters?: object)</code></pre>


---
---

### VisitedScreenEvent
Represents a 'client visited screen' event.
  
This can be used for mobile screen usage tracking.
  
**Declared In:**  
lib/classes/events/other/VisitedScreenEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class VisitedScreenEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### HitTimerEvent
Represents a 'client hit timer' event.
  
This could be used for profiling or activity time monitoring - you can send a `HitTimerEvent` when your client starts doing something and send it once again when they finish, but this time with the different time signature. Then you can use our analytics engine to measure, for example, average activity time.
  
**Declared In:**  
lib/classes/events/other/HitTimerEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  

**Declaration:**

<pre><code class="language-TypeScript">class HitTimerEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### SearchedEvent
Represents a 'client searched' event.
  
**Declared In:**  
lib/classes/events/other/SearchedEvent.js   
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class SearchedEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### SharedEvent
Represents a 'client shared' event.
  
**Declared In:**  
lib/classes/events/other/SharedEvent.js  
  
**Inherits From:**  
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class SharedEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, parameters?: object)</code></pre>


---
---

### AppearedInLocationEvent
Represents a 'client appeared in location' event.
  
**Declared In:**  
lib/classes/events/other/AppearedInLocationEvent.js  
  
**Inherits From:**
[Event](/developers/mobile-sdk/class-reference/react-native/events#event)  
  
**Declaration:**

<pre><code class="language-TypeScript">class AppearedInLocationEvent extends Event</code></pre>

  
**Initializers:**

<pre><code class="language-TypeScript">constructor(label: string, lat: number, lon: number, parameters?: object)</code></pre>

