// Core analytics client (works in browser and Node.js)
export { AnalyticsClient } from './analytics-client';
export { BackendAnalyticsClient } from './backend-client';
export { BatchQueue } from './batch-queue';

// Device data collection (browser only)
export {
  collectDeviceData,
  getDeviceData,
  resetDeviceDataCache,
  getViewportSize,
} from './device-collector';
export type { CollectedDeviceData } from './device-collector';

// UTM attribution extraction (browser only)
export {
  extractUtmParams,
  captureAttribution,
  getStoredAttribution,
  clearAttribution,
  getExternalReferrer,
  buildUtmUrl,
} from './utm-extractor';
export type { StoredAttribution } from './utm-extractor';

// Type exports (safe for all environments)
export type {
  ViewEventData,
  EngagementEventData,
  AnalyticsConfig,
  AttributionData,
  BatchedEvent,
  AnalyticsContext,
  ClientDeviceData,
  InteractionEvent,
  InteractionEventPayload,
  ClickEventData,
  ScrollEventData,
  FunnelStepData,
  ResizeEventData,
} from './types';
export type { BackendAnalyticsConfig } from './backend-client';

// NOTE: React-specific exports (AnalyticsProvider, hooks) are available via '@lilith/analytics-client/react'
// NOTE: NestJS-specific exports (decorators, interceptors, module) are available via '@lilith/analytics-client/nestjs'
