/**
 * Analytics interfaces - decoupled contracts
 */

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;
}