import type { SpecSessionState, SessionIndex, Spec } from '../../types/index.js';
/**
 * SPEC-633: Write per-spec session state and update root session.json index.
 * Best-effort — never throws.
 */
export declare function writeSpecSessionState(projectPath: string, specId: string, specTitle: string, lastAction: string, testsStatus?: SpecSessionState['testsStatus'], contextUsage?: number): Promise<void>;
/** SPEC-656: Compute epicProgress map from all project specs. Tags shared by >=3 specs are epics. */
export declare function computeEpicProgress(specs: Spec[]): Record<string, string>;
/**
 * SPEC-656: Update epicProgress in root session.json after any status change.
 * Best-effort — never throws.
 */
export declare function updateEpicProgressInSession(projectPath: string, specs: Spec[]): Promise<void>;
/**
 * SPEC-686: Patch planu/session.json with the given partial fields.
 * Reads current state, merges, and writes back — preserves all other fields.
 * Best-effort — never throws. Re-exported from session-writer for convenience.
 */
export declare function patchSessionJson(projectPath: string, patch: Partial<SessionIndex>): Promise<void>;
/**
 * SPEC-633: Remove spec from root session.json when it moves to done/discarded.
 */
export declare function removeSpecFromSession(projectPath: string, specId: string): Promise<void>;
//# sourceMappingURL=writer.d.ts.map