/** * LeaderboardManager.ts * * Leaderboard: scores, ranking, time periods, * pagination, and personal bests. * * @module gameplay */ export type TimePeriod = 'all-time' | 'daily' | 'weekly' | 'monthly'; export interface LeaderboardEntry { playerId: string; playerName: string; score: number; rank: number; timestamp: number; metadata: Record; } export interface LeaderboardDef { id: string; name: string; ascending: boolean; maxEntries: number; entries: LeaderboardEntry[]; } export declare class LeaderboardManager { private leaderboards; private personalBests; createBoard(id: string, name: string, ascending?: boolean, maxEntries?: number): LeaderboardDef; getBoard(id: string): LeaderboardDef | undefined; submitScore(boardId: string, playerId: string, playerName: string, score: number, metadata?: Record): { rank: number; isPersonalBest: boolean; } | null; getTopN(boardId: string, n: number): LeaderboardEntry[]; getPage(boardId: string, page: number, pageSize?: number): LeaderboardEntry[]; getPlayerRank(boardId: string, playerId: string): number; getPlayerEntry(boardId: string, playerId: string): LeaderboardEntry | undefined; getPersonalBest(playerId: string, boardId: string): number | undefined; getAroundPlayer(boardId: string, playerId: string, range?: number): LeaderboardEntry[]; getBoardCount(): number; getEntryCount(boardId: string): number; } //# sourceMappingURL=LeaderboardManager.d.ts.map