import { type IndexBucket } from "../learning-loop-index/parse-bucket.js";
import type { ReadonlyFS } from "../types.js";
/**
 * Freshness verdict for one bucket index: `fresh` (on-disk matches regeneration), `stale`
 * (content drift - blocking), `missing` (bucket exists, INDEX.md absent - advisory), or
 * `no-bucket` (directory absent - skipped entirely).
 */
type IndexFreshnessState = "fresh" | "stale" | "missing" | "no-bucket";
/** One bucket's index-freshness result consumed by `checkStats` and the stats renderers. */
export interface IndexFreshness {
    bucket: IndexBucket;
    dirPath: string;
    indexPath: string;
    state: IndexFreshnessState;
}
/**
 * Compute index freshness for all four learning-loop buckets.
 *
 * @param fs - read-only filesystem adapter rooted at the target project
 * @param paths - bucket-keyed directory paths, normally from `resolveIndexBucketPaths`
 * @returns one freshness record per bucket in stable INDEX_BUCKETS order
 */
export declare function collectIndexFreshness(fs: ReadonlyFS, paths: Record<IndexBucket, string>): IndexFreshness[];
export {};
//# sourceMappingURL=index-freshness.d.ts.map