UNPKG

@ninetailed/experience.js-plugin-analytics

Version:
37 lines (36 loc) 1.74 kB
import { type ElementSeenPayload, type VariableSeenPayload } from './ElementSeenPayload'; import { type TrackComponentProperties } from './TrackingProperties'; import { EventHandler, NinetailedPlugin } from './NinetailedPlugin'; import { HAS_SEEN_COMPONENT } from './constants'; export type Template = Record<string, string>; export type SanitizedElementSeenPayload = { experience: NonNullable<ElementSeenPayload['experience']>; audience: NonNullable<ElementSeenPayload['audience']>; selectedVariantSelector: string; selectedVariant: ElementSeenPayload['variant']; selectedVariantIndex: ElementSeenPayload['variantIndex']; }; export type SanitizedVariableSeenPayload = { componentId: string; selectedVariant: VariableSeenPayload['variant']; selectedVariantIndex: VariableSeenPayload['variantIndex']; selectedVariantSelector: string; }; export declare abstract class NinetailedAnalyticsPlugin<THasSeenExperienceEventTemplate extends Template = Template> extends NinetailedPlugin { private readonly hasSeenExperienceEventTemplate; private seenElements; private seenVariables; constructor(hasSeenExperienceEventTemplate?: THasSeenExperienceEventTemplate); protected abstract onTrackExperience(properties: SanitizedElementSeenPayload, eventPayload: Record<string, string>): Promise<void>; /** * @deprecated */ protected abstract onTrackComponent(properties: TrackComponentProperties): Promise<void>; private getHasSeenExperienceEventPayload; onHasSeenElement: EventHandler<ElementSeenPayload>; onHasSeenVariable: EventHandler<VariableSeenPayload>; /** * @deprecated */ [HAS_SEEN_COMPONENT]: EventHandler; }