/** * True only for lines that are provably the archive loop's own summary * findings. Corrupt lines and anything not matching the full archiver * signature return false (when in doubt, exclude). */ export declare function isArchiverLoopJunk(line: string): boolean; export interface ArchiveCompactionFileReport { /** Absolute path of the archive file. */ file: string; /** Loop-junk entries found (preview) or dropped (execute). */ junk_count: number; /** Lines preserved, including corrupt/unparseable ones. */ survivor_count: number; /** Approximate bytes freed by dropping the junk lines. */ bytes_reclaimable: number; /** Execute-mode only: file removed because no survivors remained. */ deleted: boolean; } export interface ArchiveCompactionReport { files: ArchiveCompactionFileReport[]; total_junk: number; total_survivors: number; total_bytes_reclaimable: number; files_deleted: number; } /** Human-readable byte count for summaries and audit posts. */ export declare function formatBytes(bytes: number): string; /** * Scan (and optionally compact) every .jsonl file under {twiningDir}/archive. * Preview by default — pass execute: true to rewrite files. Execute mode * streams survivors to a temp file in the same directory and atomically * renames it over the original; files left with zero survivors are deleted. * Files containing no junk are never rewritten. */ export declare function compactArchives(twiningDir: string, options?: { execute?: boolean; }): Promise; //# sourceMappingURL=archive-compactor.d.ts.map