/**
 * Brain.db noise purge utility — removes 2927 noise entries leaving ~57 signal entries.
 *
 * Purge rules:
 * - Patterns: keep newest per unique pattern text (dedup), delete duplicates
 * - Learnings: delete ALL (all are auto-generated task completion noise)
 * - Decisions: delete ALL except D-mntpeeer (the one real architectural decision)
 * - Observations: delete task-start/task-complete/session-note/test/junk noise
 *
 * Safety: requires backup to exist before calling. Never touches tasks.db.
 *
 * @task T524
 * @epic T523
 */
/** Result counts from a purge run. */
export interface PurgeResult {
    /** Number of pattern rows deleted. */
    patternsDeleted: number;
    /** Number of learning rows deleted. */
    learningsDeleted: number;
    /** Number of decision rows deleted. */
    decisionsDeleted: number;
    /** Number of observation rows deleted. */
    observationsDeleted: number;
    /** Counts after purge. */
    after: {
        patterns: number;
        learnings: number;
        decisions: number;
        observations: number;
    };
    /** FTS5 indexes rebuilt. */
    fts5Rebuilt: boolean;
}
/**
 * Execute the brain.db noise purge.
 *
 * Deletes ~2927 noise entries across four tables, leaving ~57 signal entries.
 * The one real architectural decision (D-mntpeeer) is explicitly preserved.
 *
 * Rules applied in order:
 * 1. Patterns: deduplicate by pattern text — keep newest per unique text, delete older dupes
 * 2. Learnings: delete all (100% noise — auto-generated "Completed:" and dependency notices)
 * 3. Decisions: delete all except D-mntpeeer
 * 4. Observations: delete task-start, task-complete, session-note, and test/junk entries
 *
 * @param projectRoot - Absolute path to the project root (e.g. /mnt/projects/cleocode)
 * @returns PurgeResult with before/after counts and FTS5 status
 */
export declare function purgeBrainNoise(projectRoot: string): Promise<PurgeResult>;
//# sourceMappingURL=brain-purge.d.ts.map