/** * Interface for SDK utilities * Both utils.ts and utils-expo.ts implement this interface */ import { DeviceInfo, DeviceContext } from './types'; export interface SDKUtils { STORAGE_KEYS: { VISITOR_ID: string; ANONYMOUS_ID: string; SESSION_ID: string; USER_ID: string; USER_PROPERTIES: string; EVENT_QUEUE: string; ATTRIBUTION_DATA: string; LAST_SESSION_TIME: string; }; generateUUID: () => string; getOrCreateVisitorId: () => Promise; getOrCreateAnonymousId: () => Promise; getOrCreateSessionId: () => Promise; getDeviceInfo: () => Promise; createDeviceContext: () => Promise; getNetworkType: () => string | Promise; validateEventName: (eventName: string) => boolean; validateEventData: (eventData: any) => boolean; debugLog: (message: string, ...args: any[]) => void; errorLog: (message: string, error?: Error) => void; Storage: { setItem: (key: string, value: any) => Promise; getItem: (key: string) => Promise; removeItem: (key: string) => Promise; clear?: () => Promise; }; }