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>;
    abstract getCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
    isPanic(): boolean;
    private handleTroubleshootingError;
    protected getDecisionApiCampaignsAsync(visitor: VisitorAbstract): Promise<CampaignDTO[] | null>;
}
export {};
