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';
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: IHttpClient, config: IFlagshipConfig);
    protected updateFlagshipStatus(v: FSSdkStatus): void;
    getModifications(campaigns: Array<CampaignDTO>): Map<string, FlagDTO>;
    abstract getCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
    isPanic(): boolean;
    protected getDecisionApiCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
}
