/**
 * Player Statistics and Photo Album System
 *
 * Tracks lifetime statistics and captures memorable life moments.
 * Supports 15+ different statistics and integrates with achievement system.
 */
export type StatName = 'lifetimeEarnings' | 'lifetimeSpending' | 'totalRelationships' | 'totalActivities' | 'totalConversations' | 'totalYearsLived' | 'totalDeaths' | 'highestJobLevel' | 'maxAffinityReached' | 'peopleDated' | 'timesFired' | 'yearsMarried' | 'jobCount' | 'childrenCount' | 'friendsCount';
export type BooleanStatName = 'everMarried';
export interface PlayerStatistics {
    playerId: string;
    lifetimeEarnings: number;
    lifetimeSpending: number;
    totalRelationships: number;
    totalActivities: number;
    totalConversations: number;
    totalYearsLived: number;
    totalDeaths: number;
    highestJobLevel: number;
    maxAffinityReached: number;
    peopleDated: number;
    timesFired: number;
    yearsMarried: number;
    jobCount: number;
    childrenCount: number;
    friendsCount: number;
    everMarried: boolean;
}
export interface PhotoMemory {
    id: string;
    eventType: string;
    eventDescription: string;
    gameDate: string;
    characterAge: number;
    snapshotData: Record<string, unknown>;
    createdAt: string;
}
/**
 * Create initial statistics record for new player
 */
export declare function initializePlayerStatistics(playerId: string): boolean;
/**
 * Increment a player statistic by a specified amount
 */
export declare function incrementStat(playerId: string, statName: StatName, amount?: number): boolean;
/**
 * Set a player statistic to a specific value
 * Used for 'highest' or 'max' type stats that track records
 */
export declare function updateStat(playerId: string, statName: StatName, value: number): boolean;
/**
 * Set a boolean statistic
 */
export declare function setBooleanStat(playerId: string, statName: BooleanStatName, value: boolean): boolean;
/**
 * Get all statistics for a player
 */
export declare function getPlayerStatistics(playerId: string): PlayerStatistics;
/**
 * Capture a memorable life moment in the photo album
 */
export declare function capturePhotoMemory(playerId: string, eventType: string, description: string, snapshotData: Record<string, unknown>, characterAge?: number, gameDate?: Date): string | null;
/**
 * Get photo memories for a player
 */
export declare function getPhotoAlbum(playerId: string, limit?: number, offset?: number): PhotoMemory[];
/**
 * Get total count of photo memories for a player
 */
export declare function getPhotoAlbumCount(playerId: string): number;
/**
 * Get all photo memories of a specific type for a player
 */
export declare function getPhotosByType(playerId: string, eventType: string): PhotoMemory[];
/**
 * Track money earned by player
 */
export declare function trackMoneyEarned(playerId: string, amount: number): void;
/**
 * Track money spent by player
 */
export declare function trackMoneySpent(playerId: string, amount: number): void;
/**
 * Track new relationship formed
 */
export declare function trackRelationshipFormed(playerId: string): void;
/**
 * Track activity completion
 */
export declare function trackActivityCompleted(playerId: string): void;
/**
 * Track conversation with NPC
 */
export declare function trackConversation(playerId: string): void;
/**
 * Track death event
 */
export declare function trackDeath(playerId: string, yearsLived: number): void;
/**
 * Track job obtained
 */
export declare function trackJobObtained(playerId: string): void;
/**
 * Track getting fired
 */
export declare function trackFired(playerId: string): void;
/**
 * Track child born
 */
export declare function trackChildBorn(playerId: string): void;
/**
 * Track friend made
 */
export declare function trackFriendMade(playerId: string): void;
/**
 * Track dating
 */
export declare function trackDating(playerId: string): void;
/**
 * Track marriage
 */
export declare function trackMarriage(playerId: string): void;
/**
 * Update highest job level if new level is higher
 */
export declare function trackJobLevel(playerId: string, level: number): void;
/**
 * Update max affinity if new affinity is higher
 */
export declare function trackAffinity(playerId: string, affinity: number): void;
/**
 * Clear player statistics (for testing or new game)
 */
export declare function clearPlayerStatistics(playerId: string): void;
/**
 * Clear all statistics (for testing)
 */
export declare function clearAllStatistics(): void;
//# sourceMappingURL=statistics.d.ts.map