import { NPC, Relationship, PlayerContext } from '../types'; import { IRelationshipSystem } from '../interfaces'; export interface RelationshipRule { id: string; change: number; reason: string; conditions?: { npcType?: string; relationshipStrength?: { min?: number; max?: number; }; context?: string[]; }; } export interface RelationshipNetwork { nodes: Map; edges: Array<{ from: string; to: string; strength: number; type: 'ally' | 'enemy' | 'neutral' | 'acquaintance'; }>; } export interface RelationshipSummary { totalRelationships: number; averageStrength: number; allyCount: number; enemyCount: number; neutralCount: number; strongestAlly?: { id: string; name: string; strength: number; }; strongestEnemy?: { id: string; name: string; strength: number; }; } export declare class RelationshipSystem implements IRelationshipSystem { private relationships; private relationshipRules; private maxRelationshipStrength; private minRelationshipStrength; constructor(); /** * Initialize default relationship rules */ private initializeDefaultRules; /** * Add an NPC to the relationship system */ addNPC(npcConfig: Omit): void; /** * Update relationship between two NPCs */ updateRelationship(npcId: string, targetId: string, change: number, reason: string): void; /** * Apply a relationship rule */ applyRelationshipRule(npcId: string, targetId: string, ruleId: string): void; /** * Get relationship between two NPCs */ getRelationship(npcId: string, targetId: string): Relationship | null; /** * Get relationship summary for an NPC */ getRelationshipSummary(npcId: string): RelationshipSummary; /** * Get relationship network for an NPC */ getRelationshipNetwork(npcId: string, depth?: number): RelationshipNetwork; /** * Calculate relationship type based on strength */ private calculateRelationshipType; /** * Add a custom relationship rule */ addRelationshipRule(rule: RelationshipRule): void; /** * Remove a relationship rule */ removeRelationshipRule(ruleId: string): boolean; /** * Get all NPCs */ getAllNPCs(): NPC[]; /** * Remove an NPC from the relationship system */ removeNPC(npcId: string): boolean; /** * Generate contextual relationship effects for events */ generateRelationshipEffects(context: PlayerContext): { availableNPCs: string[]; relationshipModifiers: { [npcId: string]: number; }; socialContext: string[]; }; /** * Get relationship system statistics */ getStats(): { totalNPCs: number; totalRelationships: number; averageRelationshipsPerNPC: number; relationshipTypes: { [type: string]: number; }; }; } //# sourceMappingURL=RelationshipSystem.d.ts.map