/**
 * Relationship Manager Module
 * Handles romantic relationships, dating activities, affinity updates, and relationship data
 * Ported from Python relationships/relationship_manager.py
 */
import { Person } from '../../models/Person.js';
import { Player } from '../../models/Player.js';
import { EventResult } from '../../events/base.js';
export type RelationshipStatus = 'Dating' | 'Married' | 'Prospect' | 'Broke Up' | 'Divorced' | 'Friends' | 'Engaged';
export interface RomanticRelationship {
    id: string;
    person1: string;
    person2: string;
    startDate: string;
    relationshipStatus: RelationshipStatus;
    description: string;
    relationshipScore: number;
    eventsLog: string[];
}
export interface DateIdea {
    name: string;
    energy_cost: number;
    money_cost: number;
    message: string;
    image?: string;
}
/**
 * Create a new relationship object
 */
export declare function createRelationship(person1: string, person2: string, startDate: string, status: RelationshipStatus, description: string): RomanticRelationship;
/**
 * Create a date idea
 */
export declare function createDateIdea(name: string, energy_cost: number, money_cost: number, message: string, image?: string): DateIdea;
/**
 * Get all available date activity options
 */
export declare function getDateIdeas(): DateIdea[];
/**
 * Fetch relationship data based on person1 or person2 id
 */
export declare function getRelData(player: Player, personId: string): RomanticRelationship | null;
/**
 * Get the player's current active romantic relationship
 */
export declare function getActiveRelationship(player: Player): RomanticRelationship | null;
/**
 * Update the affinity score for a specific person
 */
export declare function updateAffinity(player: Player, id: string, value: number): Player;
/**
 * Handle relationship events and score updates for a person
 */
export declare function handleRelationships(player: Player, person: Person): boolean;
/**
 * Check if player already has an active romantic partner
 */
export declare function hasActiveRomanticPartner(player: Player): Person | null;
/**
 * Clear romantic relationship from a person (downgrade to ex)
 */
export declare function clearRomanticRelationship(person: Person): void;
/**
 * Attempt to start a romantic relationship with a target person
 */
export declare function romance(player: Player, partnerId: string): boolean;
/**
 * End a romantic relationship with a partner
 */
export declare function breakUp(player: Player, partnerId: string): boolean;
/**
 * Give a gift to your partner to increase affinity
 * Costs $100 and increases affinity by 6-15 points
 */
export declare function partnerGift(player: Player, partnerId: string): EventResult | null;
/**
 * Execute a date night activity with the player's partner
 */
export declare function dateNight(player: Player, ideaName: string): EventResult | null;
/**
 * Upgrade a relationship to engaged status
 */
export declare function propose(player: Player, partnerId: string): boolean;
/**
 * Upgrade a relationship to married status
 */
export declare function marry(player: Player, partnerId: string): boolean;
/**
 * Divorce from a partner
 */
export declare function divorce(player: Player, partnerId: string): boolean;
/**
 * Get all romantic relationships (dating, engaged, married)
 */
export declare function getRomanticRelationships(player: Player): RomanticRelationship[];
/**
 * Get all past relationships (broke up, divorced)
 */
export declare function getPastRelationships(player: Player): RomanticRelationship[];
/**
 * Check if player is in a relationship with someone
 */
export declare function isInRelationship(player: Player, personId: string): boolean;
/**
 * Get relationship status with a specific person
 */
export declare function getRelationshipStatus(player: Player, personId: string): RelationshipStatus | null;
export declare const relationshipManager: {
    createRelationship: typeof createRelationship;
    createDateIdea: typeof createDateIdea;
    getDateIdeas: typeof getDateIdeas;
    getRelData: typeof getRelData;
    getActiveRelationship: typeof getActiveRelationship;
    updateAffinity: typeof updateAffinity;
    handleRelationships: typeof handleRelationships;
    romance: typeof romance;
    breakUp: typeof breakUp;
    partnerGift: typeof partnerGift;
    dateNight: typeof dateNight;
    propose: typeof propose;
    marry: typeof marry;
    divorce: typeof divorce;
    getRomanticRelationships: typeof getRomanticRelationships;
    getPastRelationships: typeof getPastRelationships;
    isInRelationship: typeof isInRelationship;
    getRelationshipStatus: typeof getRelationshipStatus;
};
//# sourceMappingURL=relationship_manager.d.ts.map