/** * Timeline Builder * Creates and manages timeline events for tracking story chronology */ import type { MCPClient } from '../core/database.js'; export interface TimelineEvent { id?: number; projectId: number; eventName: string; eventType?: 'plot' | 'backstory' | 'world_history'; description?: string; storyDate?: string; storyTimestamp?: number; sceneId?: number; isBackstory?: boolean; importance?: number; } export interface EventDependency { id?: number; eventBeforeId: number; eventAfterId: number; dependencyType?: 'sequence' | 'causation' | 'reference'; notes?: string; } export interface TimelineBuilderOptions { projectId: number; mcpClient: MCPClient; } export declare class TimelineBuilder { private projectId; private mcpClient; constructor(options: TimelineBuilderOptions); /** * Create a new timeline event */ createEvent(event: Omit): Promise; /** * Get a timeline event by ID */ getEvent(eventId: number): Promise; /** * Get a timeline event by name */ getEventByName(eventName: string): Promise; /** * Get all timeline events, optionally filtered */ getAllEvents(options?: { eventType?: string; isBackstory?: boolean; minImportance?: number; }): Promise; /** * Update an existing timeline event */ updateEvent(eventId: number, updates: Partial>): Promise; /** * Delete a timeline event */ deleteEvent(eventId: number): Promise; /** * Create a dependency between two events (A must happen before B) */ createDependency(dependency: Omit): Promise; /** * Get all dependencies for an event */ getEventDependencies(eventId: number): Promise<{ before: EventDependency[]; after: EventDependency[]; }>; /** * Delete a dependency */ deleteDependency(dependencyId: number): Promise; /** * Get timeline conflicts (events with dependencies but wrong timestamps) */ getConflicts(): Promise>; /** * Map database row to TimelineEvent */ private mapDbRowToEvent; /** * Map database row to EventDependency */ private mapDbRowToDependency; } //# sourceMappingURL=timeline-builder.d.ts.map