import { DataStore } from '../data-store/index.js';
import type { CharacterAnalytics } from '../../types/api.js';
export declare class AnalyticsEngine {
    private dataStore;
    private aggregator;
    private cronTask;
    constructor(dataStore: DataStore);
    /**
     * Get analytics for a character, loading from stored file or calculating fresh.
     */
    getCharacterAnalytics(characterId: string, period: 'daily' | 'weekly' | 'monthly', date?: string): Promise<CharacterAnalytics>;
    /**
     * Calculate and store daily analytics for a character.
     */
    calculateDailyAnalytics(characterId: string, date?: string): Promise<CharacterAnalytics>;
    /**
     * Calculate and store weekly analytics for a character.
     */
    calculateWeeklyAnalytics(characterId: string): Promise<CharacterAnalytics>;
    /**
     * Calculate and store monthly analytics for a character.
     */
    calculateMonthlyAnalytics(characterId: string): Promise<CharacterAnalytics>;
    /**
     * Compare analytics across multiple characters for a given period.
     */
    compareCharacters(characterIds: string[], period: 'daily' | 'weekly' | 'monthly'): Promise<CharacterAnalytics[]>;
    /**
     * Get a system-wide overview of all characters.
     */
    getSystemOverview(): Promise<{
        totalCharacters: number;
        totalMessages: number;
        totalStars: number;
        topCharacter?: string;
    }>;
    /**
     * Start periodic analytics calculation using node-cron.
     * Default: daily at midnight.
     */
    startPeriodicCalculation(cronExpression?: string): void;
    /**
     * Stop periodic analytics calculation.
     */
    stopPeriodicCalculation(): void;
    private storeAnalytics;
    private getAnalyticsPath;
    private getDateString;
    private getWeekNumber;
}
//# sourceMappingURL=index.d.ts.map