import { Repository } from 'typeorm';
import { FeatureAnalytics } from './entities/feature-analytics.entity';
import { CreateFeatureAnalyticsDto } from './dto/creaate-feature-analytics.dto';
import { AnalyticsQueryDto } from './dto/query-analytics.dto';
import { FeatureMetricsResponse, FeatureUsageOverTimeResponse, GeoDistributionResponse, HomeAnalyticsRespone } from './dto/analytics-response.dto';
export declare class FeatureAnalyticsService {
    private readonly analyticsRepository;
    private readonly logger;
    constructor(analyticsRepository: Repository<FeatureAnalytics>);
    createAnalytics(data: CreateFeatureAnalyticsDto): Promise<FeatureAnalytics>;
    getFeatureUsageCount(): Promise<Array<{
        featureName: string;
        count: number;
        uniqueUsers: number;
        firstUsed: Date;
        lastUsed: Date;
    }>>;
    getFeatureUsageOverTime(featureName?: string, startDate?: Date, endDate?: Date): Promise<FeatureUsageOverTimeResponse[]>;
    getGeoDistribution(featureName?: string): Promise<GeoDistributionResponse[]>;
    getUserAgentDistribution(featureName?: string): Promise<Array<{
        userAgent: string;
        count: number;
    }>>;
    getUsageByTimeOfDay(featureName?: string): Promise<Array<{
        hour: number;
        count: number;
    }>>;
    getUniqueUsersCount(featureName?: string, startDate?: Date, endDate?: Date): Promise<{
        totalUsers: number;
    }>;
    getFeatureMetrics(startDate: Date, endDate: Date): Promise<FeatureMetricsResponse[]>;
    getMetadataAnalysis(featureName: string, metadataKey: string): Promise<Array<{
        value: any;
        count: number;
    }>>;
    getHomeAnalytics(queryDto: AnalyticsQueryDto): Promise<HomeAnalyticsRespone>;
    private calculateGeoDistribution;
    private calculateUserAgentDistribution;
    private parseUserAgent;
    private getUsageCountByProperty;
    private getNestedProperty;
    private getHighestUsageItem;
    private getTopItems;
}
