import { type KitBlueprint, type KitOwnerIdKind, type KitTrustedAuthority } from './core.js'; /** Options for {@link leaderboardsBlueprint}. */ export interface LeaderboardsBlueprintOptions { /** Prefix for the type/function names. Defaults to none. */ typePrefix?: string; /** * Who may submit scores: `'host'` (the elected host referees; default), * `'server'` (app admins / studio backend), or `'automation'` (e.g. an * event automation on the match layer's `end_match`). */ submitAuthority?: KitTrustedAuthority; /** * When true (default), submitting keeps the best score * (`max(self.score, $points)`); when false, submissions overwrite. */ keepBest?: boolean; /** * When set, adds a cron automation that rolls the season: bumps `season` * and resets `score`/`rank` on EVERY entry (e.g. `'0 0 1 * *'` for * monthly seasons). */ seasonCron?: string; /** Owner-mirror typing (see the kit convention). Defaults to `'int'`. */ ownerIdKind?: KitOwnerIdKind; } /** Names derived by {@link leaderboardsBlueprint} for a given prefix. */ export interface LeaderboardsNames { entryType: string; submitFn: string; rollSeasonFn: string; seasonAutomation: string; } /** Compute the type/function names a leaderboards blueprint (and its runtime helper) uses. */ export declare function leaderboardsNames(typePrefix?: string): LeaderboardsNames; /** * Blueprint for **leaderboards**: per-player `LeaderboardEntry` rows keyed * by a `board_id`, written only through the trusted `submit_score` * (host-refereed by default — configure `submitAuthority`), with optional * cron **season rolls**. * * Ranking is honest about the platform: container lists have no server-side * ORDER BY, so `kit.leaderboards.top()` fetches a board's entries and sorts * client-side — fine for the few hundred entries a per-app board holds. * Automation selectors' `pick: highest` covers server-side top-1 needs. * * Runtime counterpart: `client.kit(appId).leaderboards`. */ export declare function leaderboardsBlueprint(options?: LeaderboardsBlueprintOptions): KitBlueprint; //# sourceMappingURL=leaderboards.d.ts.map