/** * ForeshadowingService — PROC-03 * * Tag planted setup for later payoff. * Sourced from WRITING_PROCESS.md: "Foreshadowing tracker: tag planted setup for later payoff" */ import type { MCPClient } from '../core/database.js'; export interface ForeshadowingNote { id: string; projectId: string; chapterId?: number; sceneId?: number; content: string; payoffChapterId?: number; status: 'planted' | 'paid_off' | 'forgotten'; createdAt: string; updatedAt: string; } export declare class ForeshadowingService { private readonly client; constructor(client: MCPClient); /** * Add a new foreshadowing note to the project. * * @param projectId - Project identifier. * @param content - Description of the foreshadowed element. * @param opts - Optional chapter and scene references. */ add(projectId: string, content: string, opts?: { chapterId?: number; sceneId?: number; }): Promise; /** * List foreshadowing notes for a project, optionally filtered by status. * * @param projectId - Project identifier. * @param status - Optional status filter ('planted' | 'paid_off' | 'forgotten'). */ list(projectId: string, status?: string): Promise; /** * Mark a foreshadowing note as paid off, optionally recording which chapter * delivered the payoff. * * @param id - ID of the foreshadowing note. * @param payoffChapterId - Optional chapter where the payoff occurs. */ markPaidOff(id: string, payoffChapterId?: number): Promise; /** * List foreshadowing notes that are still 'planted' and therefore potentially * forgotten — i.e., seeds planted more than 5 chapters ago with no payoff. * * @param projectId - Project identifier. */ listForgotten(projectId: string): Promise; /** * Map a raw database row to a typed ForeshadowingNote. */ private rowToNote; } //# sourceMappingURL=foreshadowing-service.d.ts.map