/**
 * RomanceSimulator - Simulates frontend romance system for headless tests
 *
 * The real game has romance handled via the frontend (swiping, dating app).
 * This simulator mimics that behavior so romance events can trigger in tests.
 */
import { Person } from '../models/Person.js';
import { Player } from '../models/Player.js';
export interface RomanceSimulatorOptions {
    /** Minimum age to start dating (default: 18) */
    minDatingAge?: number;
    /** Probability of finding a match per check (default: 0.1 = 10%) */
    matchProbability?: number;
    /** Probability of progressing relationship per check (default: 0.05 = 5%) */
    progressProbability?: number;
    /** Enable logging (default: false) */
    logEvents?: boolean;
}
export interface RomanceLogEntry {
    age: number;
    event: string;
    partnerId?: string;
    partnerName?: string;
}
/**
 * Simulates the frontend romance/dating system for headless tests
 */
export declare class RomanceSimulator {
    private minDatingAge;
    private matchProbability;
    private progressProbability;
    private logEvents;
    private eventLog;
    constructor(options?: RomanceSimulatorOptions);
    /**
     * Check and potentially create/progress romance for player
     * Should be called periodically (e.g., weekly in game time)
     */
    tick(player: Player): void;
    /**
     * Simulate finding a dating match (like frontend swiping)
     */
    private tryFindMatch;
    /**
     * Try to progress an existing relationship (engagement, marriage)
     */
    private tryProgressRelationship;
    /**
     * Create a new dating match character
     */
    private createDatingMatch;
    /**
     * Force a dating match (useful for testing specific scenarios)
     */
    forceMatch(player: Player): Person;
    /**
     * Log an event
     */
    private log;
    /**
     * Get the event log
     */
    getEventLog(): RomanceLogEntry[];
    /**
     * Clear the event log
     */
    clearLog(): void;
}
//# sourceMappingURL=RomanceSimulator.d.ts.map