/**
 * Enhanced Date Activities System
 *
 * Provides:
 * - Multiple date activity types (dinner, movies, luxury options)
 * - Mini-game conversation mechanics
 * - Performance-based affinity gains
 * - Premium diamond-gated date options
 * - Comprehensive tracking of date history
 */
export interface DateActivity {
    activityName: string;
    baseCost: number;
    premiumVersion: boolean;
    diamondCost: number;
    affinityGainMin: number;
    affinityGainMax: number;
    energyCost: number;
    minigameQuestions?: number;
}
export interface MinigameResult {
    correct: boolean;
    questionId?: string;
}
export interface DateResult {
    success: boolean;
    affinityGain?: number;
    performance?: number;
    feedback?: string;
    energySpent?: number;
    diamondsSpent?: number;
    message?: string;
}
export interface DateHistoryRecord {
    playerId: string;
    npcId: string;
    activityName: string;
    performanceScore: number;
    affinityGained: number;
    energySpent: number;
    diamondsSpent: number;
    timestamp: Date;
}
export interface DateStatistics {
    totalDates: number;
    avgPerformance: number;
    totalAffinityGained: number;
    bestPerformance: number;
    totalDiamondsSpent: number;
}
/**
 * Get activity definition by name
 */
export declare function getActivity(activityName: string): DateActivity | undefined;
/**
 * Get all available date activities
 *
 * @param includePremium - Whether to include premium (diamond-gated) activities
 */
export declare function getAllActivities(includePremium?: boolean): DateActivity[];
/**
 * Validate that the player can go on this date
 *
 * @param playerEnergy - Player's current energy
 * @param playerDiamonds - Player's current diamonds
 * @param activityName - Name of the activity
 */
export declare function validateDatePrerequisites(playerEnergy: number, playerDiamonds: number, activityName: string): {
    valid: boolean;
    message: string;
};
/**
 * Calculate affinity gain based on mini-game performance
 *
 * @param activity - Activity definition
 * @param minigameResults - List of mini-game results
 */
export declare function calculateAffinityGain(activity: DateActivity, minigameResults: MinigameResult[]): number;
/**
 * Generate contextual feedback based on date performance
 */
export declare function generateDateFeedback(performance: number, activityName: string): string;
/**
 * Execute a date with mini-game scoring
 *
 * This is the main function that:
 * 1. Validates prerequisites (energy, diamonds)
 * 2. Calculates affinity gain based on mini-game performance
 * 3. Records date history
 */
export declare function executeDate(playerId: string, npcId: string, activityName: string, minigameResults: MinigameResult[], playerEnergy: number, playerDiamonds: number): DateResult;
/**
 * Get player's recent date history
 */
export declare function getDateHistory(playerId: string, limit?: number): DateHistoryRecord[];
/**
 * Get player's date statistics
 */
export declare function getDateStatistics(playerId: string): DateStatistics;
/**
 * Get date history with a specific NPC
 */
export declare function getDateHistoryWithNpc(playerId: string, npcId: string, limit?: number): DateHistoryRecord[];
/**
 * Clear date history (for testing)
 */
export declare function clearDateHistory(): void;
/**
 * Get activity costs summary
 */
export declare function getActivityCosts(activityName: string): {
    moneyCost: number;
    energyCost: number;
    diamondCost: number;
} | null;
//# sourceMappingURL=dateActivities.d.ts.map