import { IConfigManager, IFlagshipConfig } from '../config/index'; import { IHit, NewVisitor, primitive, VisitorCacheDTO, FlagDTO, IFSFlagMetadata, sdkInitialData, VisitorCacheStatus, FlagsStatus, SerializedFlagMetadata, CampaignDTO, VisitorVariations, EAIScore } from '../types'; import { IVisitor } from './IVisitor'; import { FSSdkStatus } from '../enum/index'; import { type HitAbstract } from '../hit/HitAbstract'; import { StrategyAbstract } from './StrategyAbstract'; import { EventEmitter } from '../depsNode.native'; import { MurmurHash } from '../utils/MurmurHash'; import { type Troubleshooting } from '../hit/Troubleshooting'; import { IFSFlag } from '../flag/IFSFlag'; import { GetFlagMetadataParam, GetFlagValueParam, IVisitorProfileCache, VisitorExposedParam, VisitorVariationState } from '../type.local'; import { IFSFlagCollection } from '../flag/IFSFlagCollection'; import { IEmotionAI } from '../emotionAI/IEmotionAI'; import { IVisitorEvent } from '../emotionAI/hit/IVisitorEvent'; import { IPageView } from '../emotionAI/hit/IPageView'; import { type UsageHit } from '../hit/UsageHit'; export declare abstract class VisitorAbstract extends EventEmitter implements IVisitor { protected _visitorId: string; protected _context: Record; protected _flags: Map; protected _configManager: IConfigManager; protected _campaigns: CampaignDTO[]; protected _hasConsented: boolean; protected _anonymousId: string | null; deDuplicationCache: Record; protected _isCleaningDeDuplicationCache: boolean; visitorCache?: VisitorCacheDTO; protected _exposedVariations: Record; protected _sendExposedVariationTimeoutId?: NodeJS.Timeout; private _instanceId; private _traffic; protected _sdkInitialData?: sdkInitialData; private _consentHitTroubleshooting?; private _segmentHitTroubleshooting?; private _fetchStatus; private _onFetchFlagsStatusChanged?; private _getCampaignsPromise?; private _hasContextBeenUpdated; private _emotionAi; private _analyticTraffic; private _murmurHash; private _visitorProfileCache?; private _isClientSuppliedID; private _visitorVariationState; get visitorVariationState(): VisitorVariationState; get isClientSuppliedID(): boolean; get hasContextBeenUpdated(): boolean; set hasContextBeenUpdated(v: boolean); get getCampaignsPromise(): Promise | undefined; set getCampaignsPromise(v: Promise | undefined); get onFetchFlagsStatusChanged(): (({ status, reason }: FlagsStatus) => void) | undefined; set onFetchFlagsStatusChanged(v: (({ status, reason }: FlagsStatus) => void) | undefined); get flagsStatus(): FlagsStatus; set flagsStatus(v: FlagsStatus); get segmentHitTroubleshooting(): Troubleshooting | undefined; set segmentHitTroubleshooting(v: Troubleshooting | undefined); get consentHitTroubleshooting(): Troubleshooting | undefined; set consentHitTroubleshooting(v: Troubleshooting | undefined); get sdkInitialData(): sdkInitialData | undefined; static SdkStatus?: FSSdkStatus; getSdkStatus(): FSSdkStatus | undefined; lastFetchFlagsTimestamp: number; private _visitorCacheStatus?; get visitorCacheStatus(): VisitorCacheStatus | undefined; set visitorCacheStatus(v: VisitorCacheStatus | undefined); get emotionAi(): IEmotionAI; get analyticTraffic(): number; private initBaseProperties; /** * Attempts to retrieve a visitor ID from the ABTasty tag in browser environments * @returns The ABTasty visitor ID if available, otherwise undefined */ private getVisitorIdFromTag; private hasVisitorProfileClientSuppliedId; private initVisitorId; constructor(param: NewVisitor & { visitorId?: string; configManager: IConfigManager; context: Record; monitoringData?: sdkInitialData; emotionAi: IEmotionAI; murmurHash?: MurmurHash; visitorProfileCache?: IVisitorProfileCache; visitorVariationState?: VisitorVariationState; }); protected updateFlagsStatus(): void; protected updateCache(): void; get traffic(): number; set traffic(v: number); get instanceId(): string; getCurrentDateTime(): Date; protected initAnalyticTraffic(): void; protected generateVisitorId(): string; clearDeDuplicationCache(deDuplicationTime: number): void; protected setInitialFlags(flags?: SerializedFlagMetadata[], strategy?: StrategyAbstract): void; protected setInitializeCampaigns(campaigns?: CampaignDTO[], hasInitialFlags?: boolean, strategy?: StrategyAbstract): void; loadPredefinedContext(): void; get visitorId(): string; set visitorId(v: string); get hasConsented(): boolean; set hasConsented(v: boolean); setConsent(hasConsented: boolean): void; get context(): Record; set context(v: Record); get flagsData(): Map; set flagsData(v: Map); get configManager(): IConfigManager; get config(): IFlagshipConfig; get campaigns(): CampaignDTO[]; set campaigns(v: CampaignDTO[]); get anonymousId(): string | null; set anonymousId(v: string | null); protected getStrategy(): StrategyAbstract; sendExposedVariation(flag?: FlagDTO): Promise; collectEAIEventsAsync(currentPage?: Omit): Promise; sendEaiVisitorEvent(event: IVisitorEvent): void; sendEaiPageView(pageView: IPageView): void; onEAICollectStatusChange(callback: (status: boolean) => void): void; cleanup(): void; getCachedEAIScore(): Promise; isEAIDataCollected(): Promise; setCachedEAIScore(eAIScore: EAIScore): Promise; setIsEAIDataCollected(isEAIDataCollected: boolean): Promise; sendTroubleshooting(hit: Troubleshooting): Promise; sendUsageHit(hit: UsageHit): Promise; addInTrackingManager(hit: HitAbstract): Promise; abstract updateContext(key: string, value: primitive): void; abstract updateContext(context: Record): void; abstract updateContext(context: Record | string, value?: primitive): void; abstract clearContext(): void; abstract getFlag(key: string): IFSFlag; abstract getFlags(): IFSFlagCollection; abstract sendHit(hit: HitAbstract): Promise; abstract sendHit(hit: IHit): Promise; abstract sendHit(hit: IHit | HitAbstract): Promise; abstract sendHits(hit: HitAbstract[]): Promise; abstract sendHits(hit: IHit[]): Promise; abstract sendHits(hit: HitAbstract[] | IHit[]): Promise; abstract authenticate(visitorId: string): void; abstract unauthenticate(): void; abstract visitorExposed(param: VisitorExposedParam): Promise; abstract getFlagValue(param: GetFlagValueParam): T extends null ? unknown : T; abstract fetchFlags(): Promise; abstract getFlagMetadata(param: GetFlagMetadataParam): IFSFlagMetadata; }