@codai/memorai
Version:
Universal Database & Storage Service for CODAI Ecosystem - CBD Backend
52 lines • 1.72 kB
TypeScript
/**
* Analytics Service - Production Implementation
* Handles event tracking, metrics collection, and analytics data processing
*/
import { EventEmitter } from 'events';
import type { AnalyticsEvent, AnalyticsQuery, AnalyticsResult } from '../types';
interface MetricSummary {
eventName: string;
count: number;
uniqueUsers: number;
lastSeen: Date;
properties: Record<string, Set<any>>;
}
export declare class AnalyticsService extends EventEmitter {
private isInitialized;
private events;
private metrics;
private batchQueue;
private processInterval?;
private batchSize;
private flushInterval;
constructor();
initialize(): Promise<void>;
shutdown(): Promise<void>;
track(event: AnalyticsEvent): Promise<void>;
query(query: AnalyticsQuery): Promise<AnalyticsResult>;
getEventCount(eventName?: string, userId?: string, appId?: string): Promise<number>;
getUniqueUsers(appId?: string, startDate?: Date, endDate?: Date): Promise<string[]>;
getTopEvents(limit?: number, appId?: string): Promise<Array<{
eventName: string;
count: number;
}>>;
getMetricsSummary(): Promise<Record<string, MetricSummary>>;
purgeOldEvents(olderThanDays?: number): Promise<number>;
getHealth(): Promise<{
status: string;
details?: any;
}>;
private generateEventId;
private validateEvent;
private updateMetrics;
private startBatchProcessing;
private startMetricsAggregation;
private flushBatch;
private processBatch;
private aggregateMetrics;
private filterEvents;
private applyAggregations;
private groupEvents;
}
export {};
//# sourceMappingURL=AnalyticsService.d.ts.map