import type { ReviewFinding } from "../personas/types.js"; export interface SessionPaper { title: string; pages: number; words: number; sections: string[]; } export type Verdict = "Accept" | "Minor Revision" | "Major Revision" | "Reject"; export interface MetaVerdict { verdict: Verdict; /** 2-3 sentence editor summary */ summary: string; /** Prioritized revision list, most impactful first (top 5) */ revisionList: string[]; } export interface ReviewSession { id: string; paper: SessionPaper | null; createdAt: string; updatedAt: string; /** findings per persona id */ findings: Record; meta: MetaVerdict | null; } /** * JSON-backed session store. One JSON file per review session, * written atomically (temp file + rename). No server-side LLM logic here. */ export declare class FindingsStore { private readonly dataDir; constructor(dataDir?: string); private fileFor; private write; /** Create a new review session. */ createSession(paper?: SessionPaper): Promise; /** Load a session by id. Throws if it does not exist. */ loadSession(id: string): Promise; /** Replace (or set for the first time) the findings for one persona. */ saveFindings(id: string, persona: string, findings: ReviewFinding[]): Promise; /** Add a persona's findings to the existing list (append mode). */ appendFindings(id: string, persona: string, findings: ReviewFinding[]): Promise; /** Set the meta-reviewer verdict. */ setMeta(id: string, meta: MetaVerdict): Promise; /** List all session ids, newest first. */ listSessions(): Promise; }