import { ISwrveCampaign, ISwrveCampaignResourceResponse, ISwrveCondition, ISwrveMessage, ISwrveTrigger, ISwrveAsset, ISwrveBaseMessage } from "./ISwrveCampaign";
import { ICampaignDownloadData, IQACampaignTriggerEvent } from "../Events/EventTypeInterfaces";
import { ICampaignState } from "./ICampaignState";
import { OnPageViewed } from "./Messages/SwrveMessageDisplayManager";
import { AssetManager } from "./AssetManager";
import { OnMessageListener } from "../SwrveSDK";
import { ProfileManager } from "../Profile/ProfileManager";
import { OnButtonClicked, OnBackButtonClicked } from "./Messages/SwrveMessageDisplayManager";
import { IPlatform } from "../utils/platforms/IPlatform";
import { ISwrveInternalConfig } from "../Config/ISwrveInternalConfig";
import { ResourceManager } from "../Resources/ResourceManager";
import { OnEmbeddedMessageListener } from "../Config/ISwrveConfig";
import IDictionary from "../utils/IDictionary";
export declare type OnAssetsLoaded = (error?: Error) => void;
export interface ICampaignRuleStatus {
    status: number;
    message: string;
}
export interface ICampaignTriggerStatus {
    globalStatus: ICampaignRuleStatus;
    campaignStatus?: ICampaignRuleStatus;
    campaignFailCode: number;
    campaigns: IQACampaignTriggerEvent[];
}
export declare class CampaignManager {
    profileManager: ProfileManager;
    private campaigns;
    private campaignState;
    private platform;
    private readonly messageDisplayManager;
    private readonly assetManager;
    private onMessageListener;
    private onEmbeddedListener;
    private _maxMessagesPerSession;
    private _minDelay;
    private _delayFirstMessage;
    private readonly MAX_MESSAGES_PER_SESSION;
    private readonly MIN_DELAY;
    private readonly DELAY_FIRST_MESSAGE;
    private messagesShownCount;
    private lastShownMessageTime;
    constructor(profileManager: ProfileManager, platform: IPlatform, config?: ISwrveInternalConfig, resourceManager?: ResourceManager, personalizationProperties?: IDictionary<string>);
    storeCampaigns(response: ISwrveCampaignResourceResponse, personalizationProperties: IDictionary<string>, onAssetsLoaded: OnAssetsLoaded): void;
    refreshAssets(personalizationProperties: IDictionary<string>, onAssetsLoaded: OnAssetsLoaded): void;
    resetCampaignState(clearCampaigns?: boolean): void;
    loadStoredCampaigns(userId: string): void;
    synchronizeCampaignState(): void;
    getCampaignIDs(): ICampaignDownloadData[];
    getCampaignVariantID(campaign: ISwrveCampaign): number;
    getSentPageViewEvents(): number[];
    getSentNavigationEvents(): number[];
    getCampaignState(campaignId: string): ICampaignState;
    onEmbeddedMessage(onEmbeddedMessageListener: OnEmbeddedMessageListener): void;
    onMessage(onMessageListener: OnMessageListener): void;
    onPageViewed(callback: OnPageViewed): void;
    onButtonClicked(callback: OnButtonClicked): void;
    onBackButtonClicked(callback: OnBackButtonClicked): void;
    showCampaign(campaign: ISwrveCampaign, personalizationProperties?: IDictionary<string>, impressionCallback?: OnMessageListener): boolean;
    checkTriggers(triggerName: string, payload: object, impressionCallback: OnMessageListener, qa?: boolean, personalizationProperties?: IDictionary<string>): ICampaignTriggerStatus;
    showMessage(message: ISwrveMessage, campaign: ISwrveCampaign, personalizationProperties?: IDictionary<string>): void;
    closeMessage(): void;
    canTriggerWithPayload(trigger: ISwrveTrigger, payload: any): boolean;
    hasFulfilledCondition(condition: ISwrveCondition, payload: any): boolean;
    handleCDN(response: ISwrveCampaignResourceResponse): void;
    getAssetManager(): AssetManager;
    getMessageCenterCampaigns(personalizationProperties?: IDictionary<string>): ISwrveCampaign[];
    updateCampaignState(message: ISwrveBaseMessage): void;
    markCampaignAsSeen(campaign: ISwrveCampaign): void;
    removeMessageCenterCampaign(campaign: ISwrveCampaign): void;
    isMessageShowing(): boolean;
    private setCampaignStatus;
    private applyGlobalRules;
    private applyCampaignRules;
    private parseGlobalRules;
    private handleAssets;
    static getAllAssets(campaigns: ReadonlyArray<ISwrveCampaign>, cdn: string, personalizationProperties?: IDictionary<string>): ISwrveAsset[];
    private canCampaignRender;
    private getNow;
    private filterUnsupportedCampaigns;
    private hasMultilineTextFeature;
    private hasPlainTextButtonFeature;
    private hasCopyToClipboardFeature;
}
