import Database from 'better-sqlite3'; import { Quest, QuestLog } from '../../schema/quest.js'; export interface QuestWithStatus extends Quest { logStatus: 'active' | 'completed' | 'failed'; } export interface FullQuestLog { characterId: string; quests: QuestWithStatus[]; summary: { active: number; completed: number; failed: number; }; } export declare class QuestRepository { private db; constructor(db: Database.Database); create(quest: Quest): void; findById(id: string): Quest | null; update(id: string, updates: Partial): Quest | null; getLog(characterId: string): QuestLog | null; /** * Get full quest log with complete quest objects (not just IDs) * Returns quests organized by status with full details */ getFullQuestLog(characterId: string): FullQuestLog; /** * Find all quests, optionally filtered by world */ findAll(worldId?: string): Quest[]; /** * Update a specific objective's progress */ updateObjectiveProgress(questId: string, objectiveId: string, progress: number): Quest | null; /** * Check if all objectives for a quest are completed */ areAllObjectivesComplete(questId: string): boolean; /** * Complete a specific objective (set current = required) */ completeObjective(questId: string, objectiveId: string): Quest | null; updateLog(log: QuestLog): void; private rowToQuest; private rowToQuestLog; } //# sourceMappingURL=quest.repo.d.ts.map