/** * Journey Tracking Module for React Native * Mirrors the Web SDK's journey tracking capabilities: * - First-touch attribution with 90-day expiration * - Last-touch attribution with 90-day expiration * - Up to 30 touchpoints stored */ /** * Attribution data for a touch */ export interface TouchAttribution { timestamp: number; expires_at: number; captured_at: number; source?: string; medium?: string; campaign?: string; term?: string; content?: string; clickId?: string; clickIdType?: string; fbclid?: string; gclid?: string; ttclid?: string; gbraid?: string; wbraid?: string; lyr?: string; landingPage?: string; referrer?: string; } /** * A single touchpoint in the customer journey */ export interface TouchPoint { timestamp: number; sessionId: string; source?: string; medium?: string; campaign?: string; clickIdType?: string; } /** * Journey manager for tracking customer touchpoints */ export declare class JourneyManager { private firstTouch; private lastTouch; private journey; private initialized; /** * Initialize journey tracking by loading persisted data */ initialize(): Promise; /** * Check if attribution has expired */ private isExpired; /** * Store first touch attribution (only if not already set or expired) */ storeFirstTouch(attribution: Partial): Promise; /** * Get first touch attribution (null if expired) */ getFirstTouch(): TouchAttribution | null; /** * Store last touch attribution (always updates) */ storeLastTouch(attribution: Partial): Promise; /** * Get last touch attribution (null if expired) */ getLastTouch(): TouchAttribution | null; /** * Add a touchpoint to the customer journey */ addTouchpoint(sessionId: string, attribution: Partial): Promise; /** * Get customer journey (all touchpoints) */ getJourney(): TouchPoint[]; /** * Record attribution from a deep link or install * Updates first-touch (if not set), last-touch, and adds touchpoint */ recordAttribution(sessionId: string, attribution: Partial): Promise; /** * Get attribution data for events (mirrors Web SDK format) */ getAttributionData(): Record; /** * Clear all journey data (for testing/reset) */ clearJourney(): Promise; /** * Get journey summary for debugging */ getJourneySummary(): { hasFirstTouch: boolean; hasLastTouch: boolean; touchpointCount: number; daysSinceFirstTouch: number; sources: string[]; }; } export declare const journeyManager: JourneyManager;