UNPKG

@ninetailed/experience.js-plugin-analytics

Version:
42 lines (41 loc) 2.02 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>; /** * This type is only used for the `onTrackExperience` method that is implemented in subclasses of `NinetailedAnalyticsPlugin`. */ export type SanitizedElementSeenPayload = { experience: NonNullable<ElementSeenPayload['experience']>; audience: NonNullable<ElementSeenPayload['audience']>; selectedVariantSelector: string; selectedVariant: ElementSeenPayload['variant']; selectedVariantIndex: ElementSeenPayload['variantIndex']; componentType: NonNullable<ElementSeenPayload['componentType']>; }; export type SanitizedVariableSeenPayload = { componentId: string; selectedVariant: VariableSeenPayload['variant']; selectedVariantIndex: VariableSeenPayload['variantIndex']; selectedVariantSelector: string; componentType: NonNullable<VariableSeenPayload['componentType']>; }; 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; }