import type { ProgressFile, ProgressSnapshot, RankLadderEntry } from "./types.js"; export declare const MAX_LEVEL = 1000; /** * Cumulative XP required to reach level n (level 1 = 0). * * Levels 2–50 keep the original 100 × N^1.6 curve untouched. Past the knee the * exponential would balloon to millions per level, so the cost switches to a linear * ramp that starts exactly at the knee step (~1.7k) and grows to ~3.6k at level 1000 * — roughly 2.53M XP for the full climb, steady instead of a wall. */ export declare function xpForLevel(n: number): number; /** Level for a cumulative XP total (1..MAX_LEVEL). */ export declare function levelForXp(xp: number): number; export interface RankInfo { level: number; name: string; tier: number; tierName: string; tierGlyph: string; effectId: string; } /** Rank metadata for a level (clamped to 1..MAX_LEVEL). */ export declare function rankForLevel(level: number): RankInfo; /** Build the broadcast snapshot the webview renders verbatim. */ export declare function buildSnapshot(file: ProgressFile): ProgressSnapshot; /** * One entry per named rank (145 of them), not per level — above the knee a rank spans * 10 levels, so a per-level ladder would ship 1000 near-duplicate rungs on every frame. * `level` is the first level at which the rank is earned. */ export declare function rankLadder(): RankLadderEntry[]; //# sourceMappingURL=ranks.d.ts.map