@kameleoon/javascript-sdk-core
Version:
Kameleoon JS SDK Core
70 lines (69 loc) • 4.06 kB
TypeScript
import { JSONType } from './clientConfiguration';
import { CustomData, KameleoonDataType } from './kameleoonData';
import { TrackConversionParamsType, FeatureFlagType, GetFeatureFlagVariableParamsType, SDKCoreParameters, RemoteVisitorDataParamsType, GetVisitorWarehouseAudienceParamsType, SetUserConsentParametersType, FeatureFlagVariableType, KameleoonVariationType, GetVariationParamsType, GetVariationsParamsType, IsFeatureFlagActiveParamsType, SetForcedVariationParametersType, FlushParamsType, DataFile, Variable, Variation } from './types';
import { IKameleoonClient } from './kameleoonClientInterface';
import { EventCallbackType, EventType } from './eventManager';
import { Tracker } from './tracking';
import { LogLevel } from './logging';
/**
* @class
* KameleoonClient - a class for creating kameleoon client instance
* for communicating with Kameleoon JavaScript SDK Core, when new instance is created
*/
export declare class KameleoonClient implements IKameleoonClient {
private variationConfiguration;
private clientConfiguration;
private dataManager;
private consentDataStorage;
private trackingCache;
private requester;
private externalPackageInfo;
protected initialized: boolean;
private visitorCodeManager;
private eventManager;
protected readonly tracker: Tracker;
private environment;
protected readonly stubMode?: boolean;
/**
* @param {SDKCoreParameters} sdkCoreParameters - parameters for initializing sdk core
*/
constructor({ siteCode, dependencies, configuration, internalConfiguration, stubMode, }: SDKCoreParameters);
initialize(): Promise<boolean>;
addData(visitorCode: string, ...data: KameleoonDataType[]): void;
getRemoteVisitorData({ visitorCode, shouldAddData, filters, }: RemoteVisitorDataParamsType): Promise<KameleoonDataType[]>;
trackConversion({ visitorCode, goalId, negative, revenue, metadata, }: TrackConversionParamsType): void;
flush(params?: string | FlushParamsType): void;
getFeatureFlags(): FeatureFlagType[];
getVisitorFeatureFlags(visitorCode: string): FeatureFlagType[];
getVariation({ visitorCode, featureKey, track, }: GetVariationParamsType): Variation;
getVariations({ visitorCode, onlyActive, track, }: GetVariationsParamsType): Map<string, Variation>;
getActiveFeatureFlags(visitorCode: string): Map<string, KameleoonVariationType>;
getFeatureFlagVariationKey(visitorCode: string, featureKey: string): string;
getFeatureFlagVariable({ visitorCode, featureKey, variableKey, }: GetFeatureFlagVariableParamsType): FeatureFlagVariableType;
getFeatureFlagVariables(visitorCode: string, featureKey: string): Variable[];
isFeatureFlagActive(visitorCode: string, featureKey: string): boolean;
isFeatureFlagActive({ visitorCode, featureKey, track, }: IsFeatureFlagActiveParamsType): boolean;
getRemoteData(key: string): Promise<JSONType>;
getVisitorWarehouseAudience({ visitorCode, customDataIndex, warehouseKey, }: GetVisitorWarehouseAudienceParamsType): Promise<CustomData | null>;
onEvent<E extends EventType>(event: E, callback: EventCallbackType<E>): void;
getEngineTrackingCode(visitorCode: string): string;
isInitialized(): boolean;
setLogLevel(level: LogLevel): void;
setForcedVariation({ visitorCode, experimentId, variationKey, forceTargeting, }: SetForcedVariationParametersType): void;
evaluateAudiences(visitorCode: string): void;
getDataFile(): DataFile;
protected setUserConsent({ visitorCode, consent, setData, }: SetUserConsentParametersType): void;
private updateConsentData;
private getLegalConsent;
private extractLegalConsent;
protected _isConsentProvided(visitorCode: string): boolean;
private _getFeatureVariables;
private _getActiveFeatureVariations;
private _evaluate;
private _isFFUnrestrictedByMEGroup;
private _getFeatureVariation;
private _isVisitorNotInHoldout;
private _setForcedVariation;
private _getCodeForHash;
private static EvaluatedExperiment;
}