/**
 * AI-powered Bio Generation for Dating Profiles
 *
 * Uses OpenAI to generate natural, engaging dating profile bios based on
 * character attributes like personality, interests, occupation, and age.
 */
export interface BioPersonData {
    firstname?: string;
    ageYears?: number;
    age_years?: number;
    occupation?: string;
    likes?: string[];
    sex?: string;
}
export type LifeChangeEvent = 'job_change' | 'graduation' | 'promotion' | 'breakup' | 'marriage' | 'major_achievement';
/**
 * Generate a dating profile bio using OpenAI.
 *
 * @param person - Person data with character attributes
 * @returns Generated bio string (2-3 sentences)
 */
export declare function generateDatingBio(person: BioPersonData): Promise<string>;
/**
 * Get cached bio or generate new one if needed.
 *
 * Bio is cached for 30 days. Will regenerate if:
 * - No bio exists in cache
 * - Bio is older than 30 days
 * - forceRegenerate is true
 *
 * @param personId - Person's ID
 * @param person - Person data
 * @param forceRegenerate - Force regeneration even if bio exists
 * @returns Bio string
 */
export declare function getOrGenerateBio(personId: string, person: BioPersonData, forceRegenerate?: boolean): Promise<string>;
/**
 * Regenerate bio when major life events occur.
 *
 * Triggers regeneration for events like:
 * - Job change
 * - Graduation
 * - Major achievement
 * - Relationship status change
 *
 * @param personId - Person's ID
 * @param person - Person data
 * @param eventType - Type of life event that occurred
 * @returns New bio if regenerated, null if event doesn't trigger regeneration
 */
export declare function regenerateBioOnLifeChange(personId: string, person: BioPersonData, eventType: LifeChangeEvent | string): Promise<string | null>;
/**
 * Generate bios for multiple people (with rate limiting).
 *
 * @param people - Array of objects with personId and person data
 * @param maxApiCalls - Maximum number of OpenAI API calls to make
 * @returns Map of personId to bio
 */
export declare function batchGenerateBios(people: Array<{
    personId: string;
    person: BioPersonData;
}>, maxApiCalls?: number): Promise<Map<string, string | null>>;
/**
 * Clear bio cache for a specific person
 */
export declare function clearBioCache(personId: string): void;
/**
 * Clear all bio caches (for testing)
 */
export declare function clearAllBioCaches(): void;
/**
 * Get bio cache statistics
 */
export declare function getBioCacheStats(): {
    totalCached: number;
    oldestCacheAge: number | null;
    newestCacheAge: number | null;
};
//# sourceMappingURL=bioGenerator.d.ts.map