armor-editor
Version:
Advanced rich text editor with premium armor-grade security, real-time collaboration, spell checking, track changes, and framework-agnostic design for React, Vue, Angular, Next.js, Nuxt.js
64 lines (63 loc) • 1.82 kB
TypeScript
export interface AnalyticsEvent {
id: string;
type: EventType;
timestamp: Date;
userId?: string;
sessionId: string;
data: Record<string, any>;
metadata?: {
userAgent?: string;
viewport?: {
width: number;
height: number;
};
location?: string;
};
}
export type EventType = 'editor_load' | 'content_change' | 'format_apply' | 'ai_usage' | 'export_document' | 'share_document' | 'collaboration_join' | 'plugin_use' | 'shortcut_use' | 'theme_change' | 'error_occurred' | 'session_end';
export interface AnalyticsMetrics {
totalSessions: number;
activeUsers: number;
documentsCreated: number;
wordsWritten: number;
aiInteractions: number;
exportCount: number;
averageSessionDuration: number;
popularFeatures: {
feature: string;
usage: number;
}[];
userEngagement: {
dailyActiveUsers: number;
weeklyActiveUsers: number;
monthlyActiveUsers: number;
};
performance: {
averageLoadTime: number;
averageResponseTime: number;
errorRate: number;
};
}
export declare class AnalyticsSystem {
private events;
private sessionId;
private startTime;
private editor;
private isEnabled;
constructor(editor: any);
private setupEventTracking;
trackEvent(type: EventType, data?: Record<string, any>): void;
getMetrics(): AnalyticsMetrics;
generateReport(): string;
showDashboard(): void;
private getTotalWordsWritten;
private getAverageLoadTime;
private getAverageResponseTime;
private getErrorRate;
private generateSessionId;
private generateEventId;
private persistEvents;
private loadPersistedEvents;
setEnabled(enabled: boolean): void;
clearData(): void;
}