UNPKG

gamify-ui-core

Version:

🚀 The ultimate gamification engine for modern web applications. Framework-agnostic, real-time leaderboards, custom rule engine, streaks, missions, and AI-powered features.

108 lines • 2.51 kB
import { GameEvent } from '../types'; export interface UserSession { id: string; userId: string; startTime: Date; endTime?: Date; events: GameEvent[]; totalXp: number; levelUps: number; achievements: number; badges: number; } export interface UserMetrics { userId: string; totalSessions: number; totalPlayTime: number; averageSessionLength: number; totalXp: number; totalLevelUps: number; totalAchievements: number; totalBadges: number; favoriteEvents: string[]; lastActive: Date; engagementScore: number; } export interface EventAnalytics { eventType: string; totalOccurrences: number; uniqueUsers: number; averageXpPerEvent: number; lastOccurrence: Date; trend: 'increasing' | 'decreasing' | 'stable'; } /** * Manages analytics and user behavior tracking */ export declare class AnalyticsManager { private readonly sessions; private readonly eventHistory; private readonly userMetrics; /** * Start a new user session */ startSession(userId: string): string; /** * End a user session */ endSession(userId: string, sessionId: string): void; /** * Track an event */ trackEvent(userId: string, event: GameEvent): void; /** * Get user metrics */ getUserMetrics(userId: string): UserMetrics | null; /** * Get all user metrics */ getAllUserMetrics(): UserMetrics[]; /** * Get event analytics */ getEventAnalytics(): EventAnalytics[]; /** * Get user engagement score */ getEngagementScore(userId: string): number; /** * Get leaderboard by engagement */ getEngagementLeaderboard(limit?: number): Array<{ userId: string; score: number; }>; /** * Get user session history */ getUserSessions(userId: string): UserSession[]; /** * Get user event history */ getUserEvents(userId: string): GameEvent[]; /** * Get popular events */ getPopularEvents(limit?: number): Array<{ eventType: string; count: number; }>; /** * Update user metrics */ private updateUserMetrics; /** * Get user's favorite events */ private getFavoriteEvents; /** * Calculate event trend */ private calculateTrend; /** * Clear analytics data (for testing) */ clearData(): void; } //# sourceMappingURL=AnalyticsManager.d.ts.map