import { IFlagshipConfig } from '../config/index';
import { BatchTriggeredBy } from '../enum/BatchTriggeredBy';
import { type Activate } from '../hit/Activate';
import { type UsageHit } from '../hit/UsageHit';
import { type Troubleshooting } from '../hit/Troubleshooting';
import { TroubleshootingData } from '../types';
import { IHttpClient } from '../utils/HttpClient';
import { ITrackingManagerCommon } from './ITrackingManagerCommon';
import type { BatchingCachingStrategyConstruct, SendActivate } from './types';
import { ISharedActionTracking } from '../sharedFeature/ISharedActionTracking';
import { ActivateConstructorParam } from '../type.local';
import { type HitAbstract } from '../hit/HitAbstract';
export declare abstract class BatchingCachingStrategyAbstract implements ITrackingManagerCommon {
    protected _config: IFlagshipConfig;
    protected _hitsPoolQueue: Map<string, HitAbstract>;
    protected _activatePoolQueue: Map<string, Activate>;
    protected _httpClient: IHttpClient;
    protected _troubleshootingQueue: Map<string, Troubleshooting>;
    protected _usageHitQueue: Map<string, UsageHit>;
    protected _flagshipInstanceId?: string;
    protected _isUsageHitQueueSending: boolean;
    protected _isTroubleshootingQueueSending: boolean;
    private _HitsToFsQa;
    private _sendFsHitToQATimeoutId?;
    private _troubleshootingData?;
    private _initTroubleshootingHit?;
    private _hasInitTroubleshootingHitSent;
    protected _sharedActionTracking?: ISharedActionTracking;
    get flagshipInstanceId(): string | undefined;
    get troubleshootingData(): TroubleshootingData | undefined;
    set troubleshootingData(v: TroubleshootingData | undefined);
    get config(): IFlagshipConfig;
    get initTroubleshootingHit(): Troubleshooting | undefined;
    set initTroubleshootingHit(v: Troubleshooting | undefined);
    constructor(param: BatchingCachingStrategyConstruct);
    protected dispatchHitsToTag(hits: HitAbstract[]): void;
    sendHitsToFsQa(hits: HitAbstract[]): void;
    abstract addHitInPoolQueue(hit: HitAbstract): Promise<void>;
    protected abstract sendActivate({ activateHitsPool, currentActivate, batchTriggeredBy }: SendActivate): Promise<void>;
    addHit(hit: HitAbstract): Promise<void>;
    activateFlag(paramHit: ActivateConstructorParam): Promise<void>;
    protected activateFlagEdgeMode(hit: Activate): Promise<void>;
    protected onVisitorExposed(activate: Activate): void;
    sendBatch(batchTriggeredBy?: BatchTriggeredBy): Promise<void>;
    notConsent(visitorId: string): Promise<void>;
    protected cacheHit(hits: Map<string, HitAbstract>): Promise<void>;
    flushHits(hitKeys: string[]): Promise<void>;
    flushAllHits(): Promise<void>;
    protected isTroubleshootingActivated(): boolean;
    addTroubleshootingHit(hit: Troubleshooting): Promise<void>;
    sendTroubleshootingHit(hit: Troubleshooting): Promise<void>;
    protected sendInitTroubleshootingHit(): Promise<void>;
    sendTroubleshootingQueue(): Promise<void>;
    protected addUsageHit(hit: UsageHit): Promise<void>;
    sendUsageHit(hit: UsageHit): Promise<void>;
    sendUsageHitQueue(): Promise<void>;
}
