import { primitive, IHit, VisitorCacheDTO, IFSFlagMetadata, CampaignDTO, EAIScore } from '../types'; import { IVisitor } from './IVisitor'; import { VisitorAbstract } from './VisitorAbstract'; import { DecisionMode, IConfigManager, IFlagshipConfig } from '../config/index'; import { IDecisionManager } from '../decision/IDecisionManager'; import { BatchDTO } from '../hit/Batch'; import { ITrackingManager } from '../api/ITrackingManager'; import { Troubleshooting } from '../hit/Troubleshooting'; import { MurmurHash } from '../utils/MurmurHash'; import { UsageHit } from '../hit/UsageHit'; import { GetFlagMetadataParam, GetFlagValueParam, VisitorExposedParam } from '../type.local'; import { IVisitorEvent } from '../emotionAI/hit/IVisitorEvent'; import { IPageView } from '../emotionAI/hit/IPageView'; import { type HitAbstract } from '../hit/HitAbstract'; import { IVisitorCacheImplementation } from '../cache/IVisitorCacheImplementation'; export declare const LOOKUP_HITS_JSON_ERROR = "JSON DATA must be an array of object"; export declare const LOOKUP_HITS_JSON_OBJECT_ERROR = "JSON DATA must fit the type HitCacheDTO"; export declare const VISITOR_ID_MISMATCH_ERROR = "Visitor ID mismatch: {0} vs {1}"; export type StrategyAbstractConstruct = { visitor: VisitorAbstract; murmurHash: MurmurHash; }; export declare abstract class StrategyAbstract implements Omit { protected visitor: VisitorAbstract; protected get configManager(): IConfigManager; protected get trackingManager(): ITrackingManager; protected get decisionManager(): IDecisionManager; get config(): IFlagshipConfig; protected _murmurHash: MurmurHash; constructor(param: StrategyAbstractConstruct); collectEAIEventsAsync(currentPage?: Omit): Promise; reportEaiVisitorEvent(event: IVisitorEvent): void; reportEaiPageView(pageView: IPageView): void; onEAICollectStatusChange(callback: (status: boolean) => void): void; cleanup(): void; updateCampaigns(campaigns: CampaignDTO[]): void; protected hasTrackingManager(process: string): boolean; setConsent(hasConsented: boolean): void; protected checKLookupVisitorDataV1(item: VisitorCacheDTO): boolean; protected checKLookupVisitorData(item: VisitorCacheDTO): boolean; private tryLookupCache; private processValidCache; lookupVisitor(): Promise; protected createVisitorCacheDTO(eAIScore?: EAIScore, isEAIDataCollected?: boolean): VisitorCacheDTO; protected cacheAnonymousVisitor(visitorCacheInstance: IVisitorCacheImplementation, visitorCacheDTO: VisitorCacheDTO): Promise; cacheVisitor(eAIScore?: EAIScore, isEAIDataCollected?: boolean): Promise; protected flushVisitor(): 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 sendHit(hit: HitAbstract): Promise; abstract sendHit(hit: IHit): Promise; abstract sendHit(hit: IHit | HitAbstract | BatchDTO): Promise; abstract sendHits(hit: HitAbstract[]): Promise; abstract sendHits(hit: IHit[]): Promise; abstract sendHits(hits: HitAbstract[] | IHit[] | BatchDTO[]): Promise; abstract authenticate(visitorId: string): void; abstract unauthenticate(): void; abstract fetchFlags(): Promise; abstract visitorExposed(param: VisitorExposedParam): Promise; abstract getFlagValue(param: GetFlagValueParam): T extends null ? unknown : T; abstract getFlagMetadata(param: GetFlagMetadataParam): IFSFlagMetadata; abstract sendVisitorAllocatedVariations(): void; sendTroubleshootingHit(hit: Troubleshooting): Promise; sendUsageHit(hit: UsageHit): Promise; getCurrentDateTime(): Date; protected getSdkConfigDecisionMode(): DecisionMode.BUCKETING | DecisionMode.BUCKETING_EDGE | 'DECISION_API' | undefined; sendSdkConfigAnalyticHit(): Promise; sendFetchFlagsTroubleshooting({ isFromCache, campaigns, now }: { isFromCache: boolean; campaigns: CampaignDTO[]; now: number; }): Promise; sendConsentHitTroubleshooting(): void; sendSegmentHitTroubleshooting(): void; }