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.

158 lines • 3.9 kB
import { Observable } from 'rxjs'; import { User, Achievement, GameEvent, GameRule, GamifyConfig, GamifyPlugin, LeaderboardEntry, Mission, Theme } from '../types'; /** * Main Gamification Engine * * This is the core class that orchestrates all gamification features. * It provides a clean API for managing users, events, rules, and rewards. */ export declare class GamifyEngine { private readonly userManager; private readonly eventProcessor; private readonly ruleEngine; private readonly missionManager; private readonly pluginManager; private readonly themeManager; private readonly achievementManager; private readonly analyticsManager; private readonly config; private readonly eventStream; private readonly userStream; constructor(config?: GamifyConfig); /** * Create a new user in the gamification system */ createUser(id: string, name?: string, email?: string): User; /** * Get a user by their ID */ getUser(id: string): User | undefined; /** * Update user information */ updateUser(id: string, updates: Partial<User>): User | null; /** * Get all users in the system */ getUsers(): User[]; /** * Trigger an event for a specific user */ triggerEvent(userId: string, eventType: string, data?: Record<string, any>): void; /** * Add a new game rule */ addRule(rule: GameRule): void; /** * Remove a game rule */ removeRule(ruleId: string): boolean; /** * Get all active rules */ getRules(): GameRule[]; /** * Add a new mission */ addMission(mission: Mission): void; /** * Get all available missions */ getMissions(): Mission[]; /** * Install a plugin */ use(plugin: GamifyPlugin): void; /** * Uninstall a plugin */ uninstallPlugin(pluginName: string): boolean; /** * Subscribe to all events */ onEvent(): Observable<GameEvent>; /** * Subscribe to user updates */ onUserUpdate(): Observable<User>; /** * Subscribe to level up events */ onLevelUp(): Observable<User>; /** * Subscribe to achievement events */ onAchievement(): Observable<{ user: User; achievement: Achievement; }>; /** * Get level progress for a user */ getLevelProgress(user: User): { current: number; next: number; progress: number; }; /** * Get leaderboard data */ getLeaderboard(limit?: number): LeaderboardEntry[]; /** * Get current theme */ getTheme(): Theme; /** * Get current configuration */ getConfig(): GamifyConfig; /** * Register an achievement template */ registerAchievement(template: any): void; /** * Get achievement templates */ getAchievementTemplates(): any[]; /** * Get user achievements */ getUserAchievements(userId: string): Achievement[]; /** * Get achievement statistics */ getAchievementStats(userId: string): any; /** * Start a user session */ startSession(userId: string): string; /** * End a user session */ endSession(userId: string, sessionId: string): void; /** * Get user metrics */ getUserMetrics(userId: string): any; /** * Get engagement score */ getEngagementScore(userId: string): number; /** * Get engagement leaderboard */ getEngagementLeaderboard(limit?: number): any[]; /** * Get event analytics */ getEventAnalytics(): any[]; /** * Initialize the engine from configuration */ private initializeFromConfig; /** * Enable debug mode for development */ private enableDebugMode; } //# sourceMappingURL=GamifyEngine.d.ts.map