@aituber-onair/kizuna
Version:
A sophisticated bond system (絆 - Kizuna) for managing relationships between users and AI characters in AITuber OnAir.
131 lines (130 loc) • 2.98 kB
TypeScript
/**
* UserManager - User management class
*
* Manages creation, retrieval, and updates of Kizuna users
*/
import type { KizunaUser, PointContext, Achievement, UserType, KizunaConfig } from "./types";
/**
* User management class
*/
export declare class UserManager {
private users;
private config;
constructor(config: KizunaConfig);
/**
* Get or create user
*/
getOrCreateUser(context: PointContext): KizunaUser;
/**
* Get user
*/
getUser(userId: string): KizunaUser | null;
/**
* Get all users
*/
getAllUsers(): KizunaUser[];
/**
* Get user count
*/
getUserCount(): number;
/**
* Get user count by platform
*/
getUserCountByPlatform(): Record<UserType, number>;
/**
* Get active users (users who accessed within specified period)
*/
getActiveUsers(hours?: number): KizunaUser[];
/**
* Get top users (by points)
*/
getTopUsers(limit?: number): KizunaUser[];
/**
* Delete user
*/
deleteUser(userId: string): boolean;
/**
* Reset user points
*/
resetUserPoints(userId: string): boolean;
/**
* Grant achievement to user
*/
grantAchievement(userId: string, achievement: Achievement): boolean;
/**
* Add user interaction record
*/
addInteractionRecord(userId: string, context: PointContext, pointsEarned: number, appliedRules: string[]): void;
/**
* Export users in JSON format
*/
exportUsers(): string;
/**
* Import users from JSON format
*/
importUsers(jsonData: string): {
success: boolean;
imported: number;
errors: string[];
};
/**
* Get user data as Map format (for internal processing)
*/
getUsersAsMap(): Map<string, KizunaUser>;
/**
* Set user data from Map format (for internal processing)
*/
setUsersFromMap(users: Map<string, KizunaUser>): void;
/**
* Generate user ID from context
*/
private generateUserIdFromContext;
/**
* Extract username from context
*/
private extractUserNameFromContext;
/**
* Create new user
*/
private createUser;
/**
* Determine user type
*/
private determineUserType;
/**
* Create initial statistics
*/
private createInitialStats;
/**
* Update user activity
*/
private updateUserActivity;
/**
* Grant owner-specific achievements
*/
private grantOwnerAchievements;
/**
* Calculate level
*/
private calculateLevel;
/**
* Generate interaction ID
*/
private generateInteractionId;
/**
* Check if same day
*/
private isSameDay;
/**
* Check if consecutive day
*/
private isConsecutiveDay;
/**
* Validate and normalize user data
*/
private validateAndNormalizeUser;
/**
* Log output
*/
private log;
}