import { GameAvatarMetadata, GameAvatarStyle } from './types'; /** How many options the picker offers per style. 5 styles × 20 = 100 total. */ export declare const GAME_AVATAR_CATALOG_SIZE_PER_STYLE = 20; export interface GameAvatarCatalogEntry { /** Stable id for the entry — `${style}-${index}`, e.g. "botttsNeutral-07". */ id: string; style: GameAvatarStyle; seed: string; /** Solo el estilo 'initials' lo usa — ver comentario de más abajo. */ backgroundColor?: string; } /** * The full picker catalog: a fixed, deterministic list of avatar options. * * Seeds are plain strings (`"botttsNeutral-01"`, `"botttsNeutral-02"`, ...) — * not random. The catalog is the same list every time it is built, in any * browser, on any machine: what the player sees in the picker today is what * they'll see tomorrow. * * EXCEPCIÓN — estilo 'initials': su propósito es mostrar las iniciales * REALES del jugador, así que sus 20 entradas comparten `opts.initialsSeed` * (el handle actual, o `'player'` si todavía no escribió nada) y solo varían * por `backgroundColor` (`INITIALS_BACKGROUND_PALETTE`). Bug real corregido * 2026-08-11: antes cada entrada usaba un seed literal tipo `"initials-01"`, * y como todas empezaban con "IN", las 20 opciones mostraban las mismas * letras "IN" sin relación con el jugador — el catálogo de 'initials' es la * única parte no-estática de esta función, a propósito. */ export declare function createGameAvatarCatalog(perStyle?: number, opts?: { initialsSeed?: string; }): GameAvatarCatalogEntry[]; export declare function gameAvatarCatalogEntryToMetadata(entry: GameAvatarCatalogEntry, overrides?: Partial): GameAvatarMetadata;