/**
 * Species pool, eye styles, hats, and ASCII art frames for the buddy companion.
 *
 * Each species has 3 animation frames using {E} as eye placeholder.
 * Frames cycle at 500ms for idle animation.
 */
import { Rarity, type SpeciesName, type Stat } from "./buddy-types.js";
export interface SpeciesDef {
    name: SpeciesName;
    frames: string[][];
    rarityFloor: Rarity;
}
export declare const ALL_SPECIES: SpeciesName[];
/**
 * Roll a species from the species pool based on rarity.
 * Species can only appear if the rolled rarity meets their floor.
 */
export declare function rollSpecies(rng: () => number): {
    species: SpeciesName;
    rarity: Rarity;
};
/** Roll an eye style */
export declare function rollEyes(rng: () => number): string;
/** Roll a hat */
export declare function rollHat(rng: () => number): string;
/**
 * Roll RPG-style stats: one peak, one dump, three random.
 * Peak can hit 100, dump near floor.
 */
export declare function rollStats(rng: () => number, rarity: Rarity): Record<Stat, number>;
/** Get the 3 animation frames for a species */
export declare function getSpeciesFrames(species: SpeciesName): string[][];
/** Replace {E} placeholder with actual eye character */
export declare function applyEyes(frame: string[], eyes: string): string[];
/** Get the maximum width of a species' frames */
export declare function getSpeciesWidth(species: SpeciesName): number;
//# sourceMappingURL=buddy-species.d.ts.map