import { LogLevel, FSSdkStatus } from '../enum/index';
import { IHitCacheImplementation } from '../cache/IHitCacheImplementation';
import { IFlagshipLogManager } from '../utils/FlagshipLogManager';
import { IVisitorCacheImplementation } from '../cache/IVisitorCacheImplementation';
import { ITrackingManagerConfig } from './TrackingManagerConfig';
import { BucketingDTO, OnVisitorExposed } from '../types';
import { IFlagshipConfig } from './IFlagshipConfig';
import { DecisionMode } from './DecisionMode';
export declare const statusChangeError = "statusChangedCallback must be a function";
export declare abstract class FlagshipConfig implements IFlagshipConfig {
    private _envId?;
    private _apiKey?;
    protected _decisionMode: DecisionMode;
    private _timeout;
    private _logLevel;
    private _onSdkStatusChanged?;
    private _logManager;
    private _fetchNow;
    private _pollingInterval;
    private _onBucketingUpdated?;
    private _reuseVisitorIds;
    private _initialBucketing?;
    private _decisionApiUrl;
    private _hitDeduplicationTime;
    private _visitorCacheImplementation;
    private _hitCacheImplementation;
    private _disableCache;
    private _trackingManagerConfig;
    private _onVisitorExposed?;
    private _fetchThirdPartyData;
    private _nextFetchConfig?;
    private _fetchFlagsBufferingTime?;
    private _disableDeveloperUsageTracking?;
    private _onLog?;
    private _isQAModeEnabled?;
    get isQAModeEnabled(): boolean | undefined;
    set isQAModeEnabled(v: boolean | undefined);
    private _enableAnalytics?;
    get disableDeveloperUsageTracking(): boolean | undefined;
    set disableDeveloperUsageTracking(v: boolean | undefined);
    get fetchFlagsBufferingTime(): number | undefined;
    set fetchFlagsBufferingTime(v: number | undefined);
    get nextFetchConfig(): Record<string, unknown> | undefined;
    set nextFetchConfig(v: Record<string, unknown> | undefined);
    get fetchThirdPartyData(): boolean | undefined;
    set fetchThirdPartyData(v: boolean | undefined);
    get trackingManagerConfig(): ITrackingManagerConfig;
    get onLog(): ((level: LogLevel, tag: string, message: string) => void) | undefined;
    set onLog(v: ((level: LogLevel, tag: string, message: string) => void) | undefined);
    get onVisitorExposed(): ((arg: OnVisitorExposed) => void) | undefined;
    protected constructor(param: IFlagshipConfig);
    protected initQaMode(): void;
    protected initSDKInfo(language?: number, sdkVersion?: string): void;
    get initialBucketing(): BucketingDTO | undefined;
    set initialBucketing(v: BucketingDTO | undefined);
    get reuseVisitorIds(): boolean;
    set reuseVisitorIds(v: boolean);
    get onBucketingUpdated(): ((lastUpdate: Date) => void) | undefined;
    set onBucketingUpdated(v: ((lastUpdate: Date) => void) | undefined);
    set envId(value: string | undefined);
    get envId(): string | undefined;
    set apiKey(value: string | undefined);
    get apiKey(): string | undefined;
    get decisionMode(): DecisionMode;
    get timeout(): number;
    set timeout(value: number);
    get logLevel(): LogLevel;
    set logLevel(value: LogLevel);
    get fetchNow(): boolean;
    set fetchNow(v: boolean);
    get pollingInterval(): number;
    set pollingInterval(v: number);
    get hitDeduplicationTime(): number;
    set hitDeduplicationTime(v: number);
    get visitorCacheImplementation(): IVisitorCacheImplementation;
    set visitorCacheImplementation(v: IVisitorCacheImplementation);
    get hitCacheImplementation(): IHitCacheImplementation;
    set hitCacheImplementation(v: IHitCacheImplementation);
    get disableCache(): boolean;
    set disableCache(v: boolean);
    get onSdkStatusChanged(): ((status: FSSdkStatus) => void) | undefined;
    set onSdkStatusChanged(fn: ((status: FSSdkStatus) => void) | undefined);
    get logManager(): IFlagshipLogManager;
    set logManager(value: IFlagshipLogManager);
    get decisionApiUrl(): string;
    set decisionApiUrl(v: string);
}
