import { type ElementSeenPayload, type VariableSeenPayload } from './ElementPayload'; import { type TrackComponentProperties } from './TrackingProperties'; import { EventHandler, NinetailedPlugin } from './NinetailedPlugin'; import { HAS_SEEN_COMPONENT } from './constants'; export type Template = Record; /** * This type is only used for the `onTrackExperience` method that is implemented in subclasses of `NinetailedAnalyticsPlugin`. */ export type SanitizedElementSeenPayload = { experience: NonNullable; audience: NonNullable; selectedVariantSelector: string; selectedVariant: ElementSeenPayload['variant']; selectedVariantIndex: ElementSeenPayload['variantIndex']; componentType: NonNullable; }; export type SanitizedVariableSeenPayload = { componentId: string; selectedVariant: VariableSeenPayload['variant']; selectedVariantIndex: VariableSeenPayload['variantIndex']; selectedVariantSelector: string; componentType: NonNullable; }; export declare abstract class NinetailedAnalyticsPlugin extends NinetailedPlugin { private readonly hasSeenExperienceEventTemplate; private seenElements; private seenVariables; constructor(hasSeenExperienceEventTemplate?: THasSeenExperienceEventTemplate); protected abstract onTrackExperience(properties: SanitizedElementSeenPayload, eventPayload: Record): Promise; /** * @deprecated */ protected abstract onTrackComponent(properties: TrackComponentProperties): Promise; private getHasSeenExperienceEventPayload; onHasSeenElement: EventHandler; onHasSeenVariable: EventHandler; /** * @deprecated */ [HAS_SEEN_COMPONENT]: EventHandler; }