import type { BaseScore } from "../../common/types/score"; import type { Chart, Difficulty } from "gcm-database/maimai"; export declare enum ComboLamp { NONE = "none", FULL_COMBO = "full_combo", FULL_COMBO_PLUS = "full_combo_plus", ALL_PERFECT = "all_perfect", ALL_PERFECT_PLUS = "all_perfect_plus" } export declare enum SyncLamp { NONE = "none", SYNC_PLAY = "sync", FULL_SYNC = "full_sync", FULL_SYNC_PLUS = "full_sync_plus", FULL_SYNC_DX = "full_sync_dx", FULL_SYNC_DX_PLUS = "full_sync_dx_plus" } export declare enum AchievementTypes { D = "d", C = "c", B = "b", BB = "bb", BBB = "bbb", A = "a", AA = "aa", AAA = "aaa", S = "s", SP = "s_plus", SS = "ss", SSP = "ss_plus", SSS = "sss", SSSP = "sss_plus" } export interface Score extends BaseScore { chart: Chart; combo: ComboLamp; sync: SyncLamp; achievement: number; achievementRank: AchievementTypes; dxRating: number; dxScore: number; } /** * Achievement drawn on top of every jacket of a folder. */ export declare enum FolderLamp { ACHIEVEMENT_RANK = "achievement_rank", ACHIEVEMENT_RATE = "achievement_rate", COMBO = "combo", SYNC = "sync", DX_SCORE = "dx_score", NONE = "none" } export interface Folder { title: string; lamp: FolderLamp; elements: Chart[]; /** * Whether a played chart is checked off in this folder. Not called for unplayed charts. */ check?: (score: Score, chart: Chart) => boolean; } /** * Scores of a player, indexed by chart identifier and difficulty. */ export type FolderScores = Partial>>>;