UNPKG

@kameleoon/javascript-sdk-core

Version:
70 lines (69 loc) 4.06 kB
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; }