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
TypeScript
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