import type { IUnleashConfig } from '../../../types/index.js';
import type { IUnleashStores } from '../../../types/index.js';
import type { ToggleMetricsSummary } from '../../../types/models/metrics.js';
import type { IClientMetricsEnv } from './client-metrics-store-v2-type.js';
import { type IApiUser } from '../../../types/api-user.js';
import type { IUser } from '../../../types/user.js';
import type { LastSeenService } from '../last-seen/last-seen-service.js';
import type { ClientMetricsSchema } from '../../../../lib/openapi/index.js';
import type { UnknownFlagsService } from '../unknown-flags/unknown-flags-service.js';
import { type Metric } from '../impact/metrics-translator.js';
export default class ClientMetricsServiceV2 {
    private config;
    private unsavedMetrics;
    private clientMetricsStoreV2;
    private lastSeenService;
    private unknownFlagsService;
    private flagResolver;
    private logger;
    private impactMetricsTranslator;
    private cachedFeatureNames;
    constructor({ clientMetricsStoreV2 }: Pick<IUnleashStores, 'clientMetricsStoreV2'>, config: IUnleashConfig, lastSeenService: LastSeenService, unknownFlagsService: UnknownFlagsService);
    clearMetrics(hoursAgo: number): Promise<void>;
    clearDailyMetrics(daysAgo: number): Promise<void>;
    aggregateDailyMetrics(): Promise<void>;
    filterExistingToggleNames(toggleNames: string[]): Promise<{
        validatedToggleNames: string[];
        unknownToggleNames: string[];
    }>;
    filterValidToggleNames(toggleNames: string[]): Promise<string[]>;
    private siftMetrics;
    registerBulkMetrics(metrics: IClientMetricsEnv[]): Promise<void>;
    registerImpactMetrics(impactMetrics: Metric[]): Promise<void>;
    registerClientMetrics(data: ClientMetricsSchema, clientIp: string): Promise<void>;
    bulkAdd(): Promise<void>;
    getFeatureToggleMetricsSummary(featureName: string): Promise<ToggleMetricsSummary>;
    getClientMetricsForToggle(featureName: string, hoursBack?: number): Promise<IClientMetricsEnv[]>;
    resolveMetricsEnvironment(user: IUser | IApiUser, data: {
        environment?: string;
    }): string;
    resolveUserEnvironment(user: IUser | IApiUser): string;
}
//# sourceMappingURL=metrics-service-v2.d.ts.map