export declare enum DataResidencyEnum { 'EU' = "EU", 'US' = "US", 'UAE' = "UAE", 'AU' = "AU", 'IN' = "IN", 'QA' = "QA", 'DEV' = "DEV" } export declare enum DataRequestTypeEnum { 'SESSION' = "SESSION", 'CLIENT' = "CLIENT", 'EVENT' = "EVENT", 'CHECKOUT' = "CHECKOUT", 'PURCHASE' = "PURCHASE" } export declare enum EventTypeEnum { APP_START = "APP_START", CONTENT_VIEW = "CONTENT_VIEW", CATEGORY_VIEW = "CATEGORY_VIEW", PRODUCT_VIEW = "PRODUCT_VIEW", CART_ADD = "CART_ADD", CART_VIEW = "CART_VIEW", CART_REMOVE = "CART_REMOVE", SEARCH = "SEARCH", SEARCH_CLEAR = "SEARCH_CLEAR", CHECKOUT = "CHECKOUT", PURCHASE = "PURCHASE", QR_RUN = "QR_RUN", RATING = "RATING", CART_CLEAR = "CART_CLEAR", FEEDBACK = "FEEDBACK", APP_ONLINE = "APP_ONLINE", APP_OFFLINE = "APP_OFFLINE", ORDER_ITEM = "ORDER_ITEM", PROCESS_ORDER_START = "PROCESS_ORDER_START", PROCESS_ORDER_END = "PROCESS_ORDER_END", PROCESS_ORDER_SUCCESS = "PROCESS_ORDER_SUCCESS", PROCESS_ORDER_FAILED = "PROCESS_ORDER_FAILED", PROCESS_ORDER_ITEM_DELIVERED = "PROCESS_ORDER_ITEM_DELIVERED", PROCESS_ORDER_ITEM_FAILED = "PROCESS_ORDER_ITEM_FAILED", AUTHENTICATION_FAILED = "AUTHENTICATION_FAILED", AUTHENTICATION_SUCCESS = "AUTHENTICATION_SUCCESS", SCAN_BARCODE = "SCAN_BARCODE", MEDIA_FINISHED = "MEDIA_FINISHED" } export interface TrackEvent { captureId?: string; categoryId?: string; eventType: string; int1?: number; int2?: number; int3?: number; int4?: number; int5?: number; interaction: boolean; productId?: string; public?: number; stateful?: boolean; str1?: string; str2?: string; str3?: string; str4?: string; str5?: string; } export interface Session { appId: string; appVersion?: string; captureId?: string; clientId?: string; country?: string; dataResidency: string; deviceId?: string | null; environment: string; installationId: string; installationVersion?: string; ip?: string; latitude?: number; locationAccuracy?: number; longitude?: number; sessionCreated?: string; sessionId: string; spaceId: string; tenantId: string; } export interface Event extends TrackEvent { clientId?: string; dataResidency: string; eventTime?: string; ip?: string; sessionId: string; spaceId: string; tenantId: string; } export interface BaseCheckoutEvent extends Omit { transactionId: string; currency: string; revenue: number; affiliation?: string; shipping?: number; tax?: number; coupon?: string; products: { id: string; name: string; categoryId: string; spaceId: string; quantity: number; price: number; affiliation?: string; coupon?: string; discount?: number; }[]; } export interface CheckoutEvent extends BaseCheckoutEvent { } export interface PurchaseEvent extends BaseCheckoutEvent { } export interface CheckoutProps { transactionId: string; currency: string; revenue: number; affiliation?: string; shipping?: number; tax?: number; coupon?: string; products: { id: string; name: string; categoryId: string; spaceId: string; quantity: number; price: number; affiliation?: string; coupon?: string; discount?: number; }[]; } export interface PurchaseProps { transactionId: string; currency: string; revenue: number; affiliation?: string; shipping?: number; tax?: number; coupon?: string; products: { id: string; name: string; categoryId: string; spaceId: string; quantity: number; price: number; affiliation?: string; coupon?: string; discount?: number; }[]; } export interface Client { captureId?: string; clientBrowserEngine?: string; clientBrowserEngineVersion?: string; clientBrowserMajor?: string; clientBrowserName?: string; clientBrowserVersion?: string; clientCreated: string; clientCpuArchitecture?: string; clientDeviceModel?: string; clientDeviceType?: string; clientDeviceVendor?: string; clientHeight?: number; clientId?: string; clientIp?: string; clientOsName?: string; clientOsVersion?: string; clientScreenColorDepth?: number; clientScreenHeight?: number; clientScreenPixelDepth?: number; clientScreenWidth?: number; clientUserAgent?: string; country?: string; dataResidency: string; latitude?: number; locationAccuracy?: number; longitude?: number; tenantId: string; } export interface InitSignalPayload { tenantId: string; environment: string; dataResidency: string; country: string; locationAccuracy?: number; latitude?: number; longitude?: number; spaceId: string; appId: string; appVersion: string; installationId: string; installationVersion: string; lastActivity?: string; clientUserAgent?: string; clientScreenWidth?: number; clientScreenHeight?: number; clientScreenColorDepth?: number; clientScreenPixelDepth?: number; sessionId?: string; sessionCreated?: string; deviceId?: string; accessId?: string; accessToken?: string; clientCreated?: string; clientId?: string; useValidCachedSessionOnInit?: boolean; createNewSessionAfterLastActivityMins?: number; ip?: string; } export interface SignalInstance extends Session, Client { accessId: string; accessToken: string; lastActivity: string; } export type RequestData = Session | Event | CheckoutEvent | PurchaseEvent | Client; export type SendOrCacheDataProps = (type: DataRequestTypeEnum, data: RequestData) => Promise; export type GetSessionStateParams = { tenantId: string; sessionId: string; dataResidency: string; }; export type GetSessionStateResponse = { CART: { [productId: string]: number; }; SEARCH: string[]; }; export type GetSpaceStateParams = { accessId: string; accessToken: string; tenantId: string; spaceId: string; dataResidency: string; }; export type GetSpaceStateRowsParams = { accessId: string; accessToken: string; tenantId: string; sessionId: string; dataResidency: string; }; export type GetSpaceStateResponse = { RATING: { type: string; value: { min: number; max: number; mean: number; length: number; }; expiry: number; created: string; updated: string; }; CART: { [productId: string]: { quantity: number; contacts: number; }; }; }; export type GetSpaceStateRowsResponse = { RATING: { [sessionId: string]: { value: number; expiry: number; updated: string; }; }; CART: { [sessionId: string]: { expiry: string; updated: string; value: { [productId: string]: number; }; }; }; }; export type SubscribeSessionStateParams = { sessionId: string; dataResidency: string; callback: (data: any) => void; onStop?: () => void; onRefresh?: () => void; }; export type SubscribeSessionStateResponse = GetSessionStateResponse; export type SubscribeSpaceStateParams = { accessId: string; accessToken: string; spaceId: string; dataResidency: string; callback: (data: any) => void; }; export type SubscribeSpaceStateResponse = { CART: { [productId: string]: { quantity: number; contacts: number; }; }; }; export type SubscribeEventResponse = { captureId: string; clientId?: string; dataResidency: string; eventTime: string; eventType: string; interaction: boolean; ip: string; productId: string; sessionId: string; tenantId: string; int1?: number; int2?: number; int3?: number; int4?: number; int5?: number; str1?: string; str2?: string; str3?: string; str4?: string; str5?: string; }; export type CreatePubSub = { sessionId: string; dataResidency: string; }; export type PubSubData = { eventType: string; payload: string; }; export type GetContactParams = { tenantId: string; sessionId: string; dataResidency: DataResidencyEnum; }; export type SubscriptionGetTokenResponse = { accessToken: string; url: string; }; export type SendDataOptions = { expectResponse?: boolean; type: DataRequestTypeEnum; }; //# sourceMappingURL=signal.types.d.ts.map