/**
 * Dating Match Logic
 *
 * Handles:
 * - Attempting matches between player and NPCs
 * - Recording match attempts
 * - Integrating compatibility algorithm
 * - Supporting serendipity (random matches)
 */
import { CompatibilityPerson } from './compatibility.js';
export interface MatchResult {
    success: boolean;
    compatibility: number;
    reason?: string;
    serendipity?: boolean;
}
export interface MatchAttempt {
    playerId: string;
    targetId: string;
    compatibilityScore: number;
    success: boolean;
    attemptedAt: Date;
    reason?: string;
}
export interface MatchHistory {
    targetId: string;
    targetName: string;
    compatibilityScore: number;
    success: boolean;
    attemptedAt: Date;
}
export interface MatchSuccessRate {
    totalAttempts: number;
    successfulMatches: number;
    successRate: number;
    avgCompatibility: number;
}
/**
 * Attempt to match with target using compatibility algorithm.
 *
 * The match succeeds if:
 * - Compatibility score > 60, OR
 * - Random "serendipity" factor (20% chance)
 *
 * @param player - Player character data
 * @param target - Target character data
 * @param playerId - Player's ID
 * @param targetId - Target's ID
 * @returns Match result with success status and compatibility score
 */
export declare function attemptMatch(player: CompatibilityPerson, target: CompatibilityPerson, playerId: string, targetId: string): MatchResult;
/**
 * Check if player has already attempted to match with target
 */
export declare function hasAttemptedMatch(playerId: string, targetId: string): boolean;
/**
 * Get player's recent match history
 *
 * @param playerId - Player's ID
 * @param limit - Maximum number of records to return
 * @returns List of match history records
 */
export declare function getMatchHistory(playerId: string, limit?: number): MatchAttempt[];
/**
 * Get player's successful matches only
 */
export declare function getSuccessfulMatches(playerId: string): MatchAttempt[];
/**
 * Calculate player's match success rate
 *
 * @param playerId - Player's ID
 * @returns Success rate statistics
 */
export declare function getSuccessRate(playerId: string): MatchSuccessRate;
/**
 * Get match statistics for analytics
 */
export declare function getMatchStats(): {
    totalMatches: number;
    successfulMatches: number;
    serendipityMatches: number;
    avgCompatibility: number;
};
/**
 * Clear match history for a player (e.g., for new game)
 */
export declare function clearMatchHistory(playerId: string): void;
/**
 * Clear all match data (for testing)
 */
export declare function clearAllMatches(): void;
//# sourceMappingURL=matching.d.ts.map