@flagship.io/js-sdk
Version:
56 lines (55 loc) • 2.77 kB
TypeScript
import { IDecisionManager } from './IDecisionManager';
import { IFlagshipConfig } from '../config/index';
import { IHttpClient } from '../utils/HttpClient';
import { VisitorAbstract } from '../visitor/VisitorAbstract';
import { FSSdkStatus } from '../enum/index';
import { CampaignDTO, FlagDTO, TroubleshootingData } from '../types';
import { ITrackingManager } from '../api/ITrackingManager';
type ConstructorParam = {
httpClient: IHttpClient;
config: IFlagshipConfig;
trackingManager: ITrackingManager;
flagshipInstanceId?: string;
};
export declare abstract class DecisionManager implements IDecisionManager {
protected _config: IFlagshipConfig;
protected _panic: boolean;
protected _httpClient: IHttpClient;
private _statusChangedCallback;
private _troubleshooting?;
protected _lastBucketingTimestamp?: string;
private _trackingManager;
private _flagshipInstanceId;
get trackingManager(): ITrackingManager;
set trackingManager(v: ITrackingManager);
get flagshipInstanceId(): string;
set flagshipInstanceId(v: string);
get lastBucketingTimestamp(): string | undefined;
get troubleshooting(): TroubleshootingData | undefined;
set troubleshooting(v: TroubleshootingData | undefined);
get config(): IFlagshipConfig;
protected set panic(v: boolean);
statusChangedCallback(v: (status: FSSdkStatus) => void): void;
constructor({ httpClient, config, trackingManager, flagshipInstanceId }: ConstructorParam);
protected updateFlagshipStatus(v: FSSdkStatus): void;
getModifications(campaigns: Array<CampaignDTO>): Map<string, FlagDTO>;
/**
* Apply forced allocation campaigns from QA Assistant
* @param visitor - The visitor instance containing forced allocation state
* @param campaign - The array of campaigns from the decision API
* @returns The combined array of campaigns including forced allocations
*/
protected applyCampaignsForcedAllocation(visitor: VisitorAbstract, campaign: CampaignDTO[] | null): CampaignDTO[] | null;
/**
* Apply forced unallocation campaigns from QA Assistant
* @param visitor - The visitor instance containing forced unallocation state
* @param campaigns - The array of campaigns from the decision API
* @returns The filtered array of campaigns excluding forced unallocations
*/
protected applyCampaignsForcedUnallocation(visitor: VisitorAbstract, campaigns: CampaignDTO[] | null): CampaignDTO[] | null;
abstract getCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
isPanic(): boolean;
private handleTroubleshootingError;
protected getDecisionApiCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
}
export {};