/**
 * Analytics interfaces - decoupled contracts
 */

/* eslint-disable no-unused-vars */

export interface AnalyticsEvent {
  name: string;
  props?: Record<string, any>;
}

export interface AnalyticsAdapter {
  track(event: AnalyticsEvent): Promise<void>;
  identify?(_userId: string, _traits?: Record<string, any>): Promise<void>;
  page?(_path: string, _props?: Record<string, any>): Promise<void>;
  getScriptTag?(): string;
}

export interface AnalyticsConfig {
  domain?: string;
  scriptUrl?: string;
}
