/** * BetaReaderService — SPEC-11 * * Manages beta readers and their feedback for a novel project. * All persistence is via MCPClient SQL queries (no direct SQLite access). */ import type { MCPClient } from '../core/database.js'; import type { BetaReader, BetaFeedback, BetaFeedbackType, BetaReport } from '../types/novel.js'; export declare class BetaReaderService { private readonly client; constructor(client: MCPClient); /** * Add a new beta reader to the project. * * @param projectId - The project identifier * @param name - Reader's display name * @param opts - Optional email and chapter assignments (e.g. ["1-10"]) */ addReader(projectId: string, name: string, opts?: { email?: string; chapters?: string[]; }): Promise; /** * List all beta readers for a project. */ listReaders(projectId: string): Promise; /** * Retrieve a single beta reader by id. */ getReader(id: string): Promise; /** * Update mutable fields on an existing beta reader. * * @param id - Reader id * @param fields - Fields to update (status and/or chapters) */ updateReader(id: string, fields: Partial>): Promise; /** * Add a feedback entry for a beta reader, looked up by name within the project. * * @throws Error if the reader name is not found in the project */ addFeedback(projectId: string, readerName: string, chapterId: number | undefined, feedbackType: BetaFeedbackType, note: string): Promise; /** * List feedback for a project, with optional filters by reader, chapter, or type. */ listFeedback(projectId: string, filter?: { readerId?: string; chapterId?: number; type?: BetaFeedbackType; }): Promise; /** * Mark a feedback entry as resolved. */ resolveFeedback(id: string): Promise; /** * Generate an aggregated report for all beta feedback in the project. * * Aggregates total readers, total feedback, breakdown by chapter, * breakdown by feedback type, and unresolved count. */ generateReport(projectId: string): Promise; } //# sourceMappingURL=beta-reader-service.d.ts.map