// Ownership: src/observability/analytics/ is owned by Phase 1 sub-plan 1G-analytics.
// This type-only seed exists because Phase 1A-1's Env depends on AnalyticsProviders.
// Sub-plan 1G-analytics extends this file with the facade and adapter implementations.

export interface AnalyticsProviders {
  metrica: boolean;
  ctm: boolean;
  variocube: boolean;
  dynatrace: boolean;
}

export interface AnalyticsProps {
  [key: string]: unknown;
}

export interface AnalyticsEvent {
  kind: "track" | "page";
  name: string;
  props: AnalyticsProps;
  provider: "metrica" | "ctm" | "variocube" | "dynatrace";
  ts: string;
}

export interface Analytics {
  track(event: string, props?: AnalyticsProps): void;
  page(url: string, props?: AnalyticsProps): void;
}

export interface AnalyticsAdapter {
  readonly name: AnalyticsEvent["provider"];
  load(): Promise<void>;
  track(event: string, props?: AnalyticsProps): void;
  page(url: string, props?: AnalyticsProps): void;
}
