/** * Scene to database synchronization * Handles bidirectional sync between chapter markdown scenes and database */ import type { MCPClient } from '../core/database.js'; import type { SceneContent } from '../builders/scene-builder.js'; export interface SceneSyncOptions { resolveCharacterNames?: boolean; resolveLocationNames?: boolean; } export declare class SceneSync { private mcpClient; private projectId; private readonly characterArcService; constructor(mcpClient: MCPClient, projectId: number); /** * Sync all scenes from a chapter file to database */ syncChapterScenes(chapterFilePath: string, options?: SceneSyncOptions): Promise; /** * Sync all scenes from all chapters in a project */ syncAllScenes(chapterPaths: string[], options?: SceneSyncOptions): Promise; /** * Load scenes from database for a chapter */ loadChapterScenes(chapterId: number): Promise; /** * Get chapter ID from file path */ private getChapterIdFromPath; /** * Delete all scenes for a chapter */ private deleteChapterScenes; /** * Insert scene into database */ private insertScene; /** * Upsert beats for a scene — deletes existing beats then re-inserts. */ syncSceneBeats(sceneId: number, beats: Array<{ beatNumber: number; description: string; }>): Promise; /** * Resolve a scene's database ID from chapter number and scene number. */ resolveSceneId(chapterNumber: number, sceneNumber: number): Promise; /** * Load beats for a scene from the database. */ loadSceneBeats(sceneId: number): Promise>; /** * Resolve character name to ID */ private resolveCharacterId; /** * Resolve location name to ID */ private resolveLocationId; /** * Get scene statistics for a chapter */ getChapterSceneStats(chapterId: number): Promise<{ totalScenes: number; totalWords: number; averageWordsPerScene: number; averageTensionLevel: number; scenesByTension: Map; }>; /** * Get scenes by POV character */ getScenesByCharacter(characterId: number): Promise; /** * Get scenes by location */ getScenesByLocation(locationId: number): Promise; /** * Get tension arc for entire project */ getTensionArc(): Promise>; } //# sourceMappingURL=scene-sync.d.ts.map