import Database from 'better-sqlite3'; /** * HIGH-004: NPC Memory Repository * Tracks relationships and conversation history between PCs and NPCs */ export type Familiarity = 'stranger' | 'acquaintance' | 'friend' | 'close_friend' | 'rival' | 'enemy'; export type Disposition = 'hostile' | 'unfriendly' | 'neutral' | 'friendly' | 'helpful'; export type Importance = 'low' | 'medium' | 'high' | 'critical'; export interface NpcRelationship { characterId: string; npcId: string; familiarity: Familiarity; disposition: Disposition; notes: string | null; firstMetAt: string; lastInteractionAt: string; interactionCount: number; } export interface ConversationMemory { id: number; characterId: string; npcId: string; summary: string; importance: Importance; topics: string[]; createdAt: string; } export declare class NpcMemoryRepository { private db; constructor(db: Database.Database); /** * Get relationship between PC and NPC * Returns null if no relationship exists (they're strangers) */ getRelationship(characterId: string, npcId: string): NpcRelationship | null; /** * Create or update relationship between PC and NPC */ upsertRelationship(relationship: Omit & { firstMetAt?: string; lastInteractionAt?: string; interactionCount?: number; }): NpcRelationship; /** * Get all NPCs a character has interacted with */ getCharacterRelationships(characterId: string): NpcRelationship[]; /** * Get all characters who have interacted with an NPC */ getNpcRelationships(npcId: string): NpcRelationship[]; /** * Record a conversation memory */ recordMemory(memory: Omit): ConversationMemory; /** * Get conversation history between PC and NPC */ getConversationHistory(characterId: string, npcId: string, options?: { minImportance?: Importance; limit?: number; }): ConversationMemory[]; /** * Get recent interactions across all NPCs for a character */ getRecentInteractions(characterId: string, limit?: number): ConversationMemory[]; /** * Search memories by topic */ searchByTopic(characterId: string, topic: string): ConversationMemory[]; private rowToRelationship; private rowToMemory; } //# sourceMappingURL=npc-memory.repo.d.ts.map