import type { LogProvider } from '../../../logger.js';
import type { IClientMetricsEnv, IClientMetricsEnvKey, IClientMetricsStoreV2 } from './client-metrics-store-v2-type.js';
import type { Db } from '../../../db/db.js';
import type { IFlagResolver } from '../../../types/index.js';
import type EventEmitter from 'events';
export declare class ClientMetricsStoreV2 implements IClientMetricsStoreV2 {
    private db;
    private logger;
    private flagResolver;
    private metricTimer;
    constructor(db: Db, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver);
    get(key: IClientMetricsEnvKey): Promise<IClientMetricsEnv>;
    getFeatureFlagNames(): Promise<string[]>;
    getAll(query?: Object): Promise<IClientMetricsEnv[]>;
    exists(key: IClientMetricsEnvKey): Promise<boolean>;
    delete(key: IClientMetricsEnvKey): Promise<void>;
    deleteAll(): Promise<void>;
    destroy(): void;
    batchInsertMetrics(metrics: IClientMetricsEnv[]): Promise<void>;
    getMetricsForFeatureToggle(featureName: string, hoursBack?: number): Promise<IClientMetricsEnv[]>;
    getMetricsForFeatureToggleV2(featureName: string, hoursBack?: number): Promise<IClientMetricsEnv[]>;
    getSeenAppsForFeatureToggle(featureName: string, hoursBack?: number): Promise<string[]>;
    getSeenTogglesForApp(appName: string, hoursBack?: number): Promise<string[]>;
    clearMetrics(hoursAgo: number): Promise<void>;
    clearDailyMetrics(daysAgo: number): Promise<void>;
    countPreviousDayHourlyMetricsBuckets(): Promise<{
        enabledCount: number;
        variantCount: number;
    }>;
    countPreviousDayMetricsBuckets(): Promise<{
        enabledCount: number;
        variantCount: number;
    }>;
    aggregateDailyMetrics(): Promise<void>;
}
//# sourceMappingURL=client-metrics-store-v2.d.ts.map