import { EAIConfig } from '../type.local';
import { BucketingDTO } from '../types';
import { ISdkManager } from './ISdkManager';
import { IFlagshipConfig } from '../config/IFlagshipConfig';
import { IHttpClient, IHttpResponse } from '../utils/HttpClient';
import { ITrackingManager } from '../api/ITrackingManager';
type constructorParam = {
    httpClient: IHttpClient;
    sdkConfig: IFlagshipConfig;
    trackingManager: ITrackingManager;
    flagshipInstanceId: string;
};
export declare class BucketingSdkManager implements ISdkManager {
    protected _httpClient: IHttpClient;
    protected _config: IFlagshipConfig;
    protected _trackingManager: ITrackingManager;
    protected _intervalID?: NodeJS.Timeout;
    protected _lastModified: string;
    protected _isPooling: boolean;
    protected _EAIConfig?: EAIConfig;
    protected _bucketingContent?: BucketingDTO;
    protected _lastBucketingTimestamp: string;
    protected _flagshipInstanceId: string;
    constructor({ httpClient, sdkConfig, trackingManager, flagshipInstanceId }: constructorParam);
    resetSdk(): void;
    getBucketingContent(): BucketingDTO | undefined;
    initSdk(): Promise<void>;
    getEAIConfig(): EAIConfig | undefined;
    protected sendTroubleshooting(headers: Record<string, string>, url: string, response: IHttpResponse | undefined, now: number): void;
    protected sendErrorTroubleshooting(headers: Record<string, string>, url: string, error: {
        message: string;
        headers: Record<string, string>;
        statusCode: number;
    }, now: number): void;
    protected handlePollingResponse(params: {
        response: IHttpResponse;
        headers: Record<string, string>;
        url: string;
        now: number;
    }): void;
    protected fetchBucketingFile(): Promise<void>;
}
export {};
