@ninetailed/experience.js-plugin-analytics
Version:
Ninetailed SDK plugin for analytics
42 lines (41 loc) • 2.02 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>;
/**
* 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;
}