/** * Checkpoint Store - JSON Persistence * * Phase 3: Persistent storage for research checkpoints using JSON file * * Storage location: ~/.local/share/australian-history-mcp/checkpoints.json */ import type { Checkpoint, CheckpointSummary, CompressedRecord } from './types.js'; /** * Checkpoint store with JSON persistence */ export declare class CheckpointStore { private data; /** * Get the checkpoints file path */ static getFilePath(): string; /** * Check if checkpoints file exists */ static exists(): boolean; /** * Load checkpoints from disk */ private load; /** * Save checkpoints to disk (atomic write via temp file + rename) */ private save; /** * Clear cached data (for testing) */ clearCache(): void; /** * Create a new checkpoint */ create(options: { name: string; records: CompressedRecord[]; fingerprints?: string[]; coverage?: Record; sessionId?: string; }): Checkpoint; /** * Get a checkpoint by ID */ get(id: string): Checkpoint | undefined; /** * Get a checkpoint by name */ getByName(name: string): Checkpoint | undefined; /** * Get checkpoint by ID or name */ getByIdOrName(idOrName: string): Checkpoint | undefined; /** * List checkpoints (most recent first) */ list(options?: { limit?: number; sessionId?: string; }): { checkpoints: CheckpointSummary[]; total: number; hasMore: boolean; }; /** * Delete a checkpoint by ID */ delete(id: string): boolean; /** * Delete a checkpoint by name */ deleteByName(name: string): boolean; /** * Delete by ID or name */ deleteByIdOrName(idOrName: string): boolean; /** * Update a checkpoint's records */ update(id: string, updates: { name?: string; records?: CompressedRecord[]; fingerprints?: string[]; coverage?: Record; }): Checkpoint; /** * Get count of all checkpoints */ count(): number; /** * Get total record count across all checkpoints */ totalRecordCount(): number; /** * Check if a checkpoint name is already taken */ nameExists(name: string): boolean; } export declare const checkpointStore: CheckpointStore; //# sourceMappingURL=checkpoint-store.d.ts.map