@ninetailed/experience.js-plugin-analytics
Version:
Ninetailed SDK plugin for analytics
37 lines (36 loc) • 1.74 kB
TypeScript
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;
}