import type Database from 'better-sqlite3'; /** * Garbage collection for a Cortex database. Conservative by design: only * derived/raw data is pruned (events of consolidated sessions, retrieval log, * raw ledger rows after rollup, never-accessed archived items, excess * command_run items). Sessions, notes, snapshots, and summaries are kept. */ export interface GcOptions { /** Delete events of consolidated (ended + summarized) sessions older than this. */ eventDays?: number; retrievalLogDays?: number; retrievalLogKeep?: number; /** Roll up raw ledger rows older than this into one row per session/direction. */ ledgerDays?: number; /** Delete correction audit rows older than this (FR-22). */ correctionDays?: number; /** Delete archived memory items with zero accesses older than this. */ archivedDays?: number; commandRunCapPerScope?: number; /** Delete content digests not re-read within this many days (FR-5, AD-3). */ digestDays?: number; /** Delete unconsumed read offers older than this many days (FR-8). */ offerDays?: number; /** Delete negative-search records not re-confirmed within this many days (FR-12/FR-16). */ negativeDays?: number; /** Delete captured subagent dispatches older than this many days (FR-18). */ dispatchDays?: number; dryRun?: boolean; vacuum?: 'auto' | 'always' | 'never'; now?: Date; } export interface GcCategoryReport { candidates: number; deleted: number; } export interface GcReport { dry_run: boolean; events: GcCategoryReport; retrieval_log: GcCategoryReport; token_ledger: GcCategoryReport; memory_corrections: GcCategoryReport; archived_memory_items: GcCategoryReport; command_run_items: GcCategoryReport; content_digests: GcCategoryReport; read_offers: GcCategoryReport; negative_results: GcCategoryReport; subagent_dispatches: GcCategoryReport; /** The SOURCE table. `command_run_items` above is its projection (Story 4.6). */ command_runs: GcCategoryReport; /** Projection rows whose source row is gone. */ orphaned_command_run_items: GcCategoryReport; freelist_ratio: number; vacuumed: boolean; } export declare function runGc(db: Database.Database, options?: GcOptions): GcReport; /** True when the last applied GC is older than the interval (default 24h). */ export declare function shouldAutoGc(db: Database.Database, now?: Date, intervalHours?: number): boolean; //# sourceMappingURL=gc.d.ts.map