/** * Plot Thread Builder * Helps create and manage plot thread YAML files */ import type { PlotYAML } from '../types/novel.js'; export declare class PlotThreadBuilder { private projectPath; private outputDir; constructor(projectPath: string, outputDir?: string); /** * Create a new plot thread YAML file */ create(plotData: PlotYAML, filename?: string): Promise; /** * Generate filename from plot thread name */ private generateFilename; /** * Write plot thread data to YAML file */ private writePlotFile; /** * Validate plot thread data */ validate(plotData: Partial): string[]; /** * List all plot thread files */ list(): Promise; /** * Interactive creation helper */ createInteractive(options: { name: string; type: 'main' | 'subplot' | 'character' | 'theme'; description: string; priority?: number; status?: 'planned' | 'active' | 'resolved' | 'abandoned'; }): Promise; /** * Create a plot thread with beats */ createWithBeats(plotData: Omit, beats: Array<{ scene: string; description: string; type: 'setup' | 'development' | 'climax' | 'resolution'; }>): Promise; /** * Add a beat to existing plot thread */ addBeat(plotFilePath: string, beat: { scene: string; description: string; type: 'setup' | 'development' | 'climax' | 'resolution'; }): Promise; /** * Update plot thread status */ updateStatus(plotFilePath: string, status: 'planned' | 'active' | 'resolved' | 'abandoned'): Promise; /** * Link character to plot thread */ linkCharacter(plotFilePath: string, characterName: string, role: string, arc?: string): Promise; /** * Get plot thread statistics */ getStats(): Promise<{ totalThreads: number; byType: Record; byStatus: Record; totalBeats: number; unresolvedThreads: number; highPriorityUnresolved: number; }>; } //# sourceMappingURL=plot-thread-builder.d.ts.map