/**
 * Character Manager Service
 * Handles character creation and management for BaoLife
 * Ported from Python character/character_manager.py
 */
import { Person, Sex } from '../../models/Person.js';
import { Player } from '../../models/Player.js';
/**
 * Generate a human-readable description of a person based on their attributes
 */
export declare function generatePersonDescription(person: Person): string;
/**
 * Generate an OpenAI-formatted description for AI conversation prompts
 */
export declare function generateOpenAIDescription(person: Person): string;
/**
 * Set a person's birthday based on their age in days and current date
 */
export declare function setBirthday(person: Person, player: Player): void;
/**
 * Set all default values for a character
 */
export declare function setValues(player: Player, person: Person): Person;
/**
 * Create a partner (boyfriend/girlfriend) for the player character
 */
export declare function getPartner(player: Player): Player;
/**
 * Create a child for the player character
 */
export declare function addChild(player: Player): Person;
/**
 * Get the youngest child from player's relationships
 */
export declare function getYoungestChild(player: Player): Person | null;
/**
 * Create mother and father for the player character
 */
export declare function addParents(player: Player): Player;
/**
 * Create older siblings for the player character (with some randomness)
 */
export declare function addOlderSiblings(player: Player): Player;
/**
 * Create all four grandparents for the player character
 */
export declare function addGrandparents(player: Player): Player;
/**
 * Create a friend for the player character
 */
export declare function addFriend(player: Player, sex: Sex, age?: 'similar' | 'younger' | 'older' | 'random'): Player;
/**
 * Get a random classmate from player's relationships
 */
export declare function getRandomClassmate(player: Player): Person | null;
/**
 * Get a random friend from player's relationships
 */
export declare function getRandomFriend(player: Player): Person | null;
/**
 * Get a random character from player's relationships
 */
export declare function getRandomCharacter(player: Player): Person | null;
/**
 * Get a random immediate family member (familyLevel == 1)
 */
export declare function getRandomFamily(player: Player): Person | null;
/**
 * Get all immediate family members (familyLevel == 1)
 */
export declare function getAllFamily(player: Player): Person[];
/**
 * Create a generic character with customizable attributes
 */
export declare function createCharacter(player: Player, sex?: Sex | 'random', age?: 'similar' | 'random_adults' | 'random_teens_adults' | 'random', relationship?: string | 'none'): Person;
/**
 * Create 10 classmates and 1 teacher for the player
 */
export declare function createClassmates(player: Player): void;
/**
 * Create coworkers and a boss for the player
 */
export declare function createCoworkers(player: Player, occupation?: {
    title: string;
    income: number;
}): void;
/**
 * Create classmates/teammates for an extracurricular activity
 * Called when player joins an activity to create social connections
 *
 * Creates 3-5 activity-specific classmates who share the activity
 * These NPCs will have the activity in their activities array
 */
export declare function createActivityClassmates(player: Player, activity: {
    id: string;
    title: string;
    type: string;
    energyModifier?: number;
}): Person[];
/**
 * Get a person by their ID from player's relationships
 */
export declare function getPerson(player: Player, id: string): Person | null;
/**
 * Get a person by their relationship type
 */
export declare function getRelationship(player: Player, type: string): Person | null;
/**
 * Update a relationship type for all matching characters
 */
export declare function updateRelationship(player: Player, oldRelationship: string, newRelationship: string, newTitle?: string): Player;
/**
 * Update affinity between player and a person
 */
export declare function updatePersonAffinity(player: Player, person: Person, amount: number): void;
/**
 * Set up the main player character with initial family and relationships
 */
export declare function characterSetup(player: Player, data: {
    name?: string;
    age?: string;
    sex?: Sex;
}): Player;
export declare const characterManager: {
    generatePersonDescription: typeof generatePersonDescription;
    generateOpenAIDescription: typeof generateOpenAIDescription;
    setBirthday: typeof setBirthday;
    setValues: typeof setValues;
    getPartner: typeof getPartner;
    addChild: typeof addChild;
    getYoungestChild: typeof getYoungestChild;
    addParents: typeof addParents;
    addOlderSiblings: typeof addOlderSiblings;
    addGrandparents: typeof addGrandparents;
    addFriend: typeof addFriend;
    getRandomClassmate: typeof getRandomClassmate;
    getRandomFriend: typeof getRandomFriend;
    getRandomCharacter: typeof getRandomCharacter;
    getRandomFamily: typeof getRandomFamily;
    getAllFamily: typeof getAllFamily;
    createCharacter: typeof createCharacter;
    createClassmates: typeof createClassmates;
    createCoworkers: typeof createCoworkers;
    createActivityClassmates: typeof createActivityClassmates;
    getPerson: typeof getPerson;
    getRelationship: typeof getRelationship;
    updateRelationship: typeof updateRelationship;
    updatePersonAffinity: typeof updatePersonAffinity;
    characterSetup: typeof characterSetup;
};
//# sourceMappingURL=character_manager.d.ts.map