import { IUnleashConfig } from '../../server-impl';
import { IUnleashStores } from '../../types';
import { IClientApp } from '../../types/model';
import { ToggleMetricsSummary } from '../../types/models/metrics';
import { IClientMetricsEnv } from '../../types/stores/client-metrics-store-v2';
import ApiUser from '../../types/api-user';
import User from '../../types/user';
import { LastSeenService } from './last-seen-service';
export default class ClientMetricsServiceV2 {
    private config;
    private timers;
    private unsavedMetrics;
    private clientMetricsStoreV2;
    private featureToggleStore;
    private lastSeenService;
    private flagResolver;
    private logger;
    constructor({ featureToggleStore, clientMetricsStoreV2, }: Pick<IUnleashStores, 'featureToggleStore' | 'clientMetricsStoreV2'>, config: IUnleashConfig, lastSeenService: LastSeenService, bulkInterval?: number);
    registerClientMetrics(data: IClientApp, clientIp: string): Promise<void>;
    bulkAdd(): Promise<void>;
    getFeatureToggleMetricsSummary(featureName: string): Promise<ToggleMetricsSummary>;
    getClientMetricsForToggle(featureName: string, hoursBack?: number): Promise<IClientMetricsEnv[]>;
    resolveMetricsEnvironment(user: User | ApiUser, data: IClientApp): string;
    destroy(): void;
}
