/**
 * Quality → baseline-entry producer.
 *
 * Two kinds today:
 *
 *   - `duplication` — jscpd-detected clone pairs from
 *     `CapabilityReport.duplication.topClones`. The clone detector
 *     emits each pair as `{ a: { file, ... }, b: { file, ... },
 *     tokens, lines }`; identity is `(fileA, fileB, tokens)` with file
 *     order normalized inside `identityFor` so reversed pairs hash
 *     identically.
 *
 *   - `stale-file` — `.swp`, `.bak`, `.orig`, `.tmp`, `.swo`, `.pyc`,
 *     `.log` files tracked in git. The producer accepts the file
 *     list directly (the orchestrator passes
 *     `gatherHygieneMarkers(cwd).staleFiles`) so the producer stays
 *     pure and the I/O lives in the canonical hygiene gather.
 *
 * Two kinds intentionally NOT produced yet:
 *
 *   - `god-file` — the `QualityMetrics.topGodFiles` field is
 *     forward-declared but no analyzer populates it today. Lights
 *     up when graphify surfaces per-file complexity offenders.
 *
 *   - `hygiene` — per-occurrence locations (file + line + marker
 *     kind) require extending `gatherHygieneMarkers` to emit
 *     positions, not just counts. Pending in a follow-up commit.
 */
import type { RichBaselineEntry } from '../types';
import type { DuplicationResult } from '../../languages/capabilities/types';
/** Build `duplication` entries from a jscpd-style envelope. */
export declare function duplicationToBaselineEntries(duplication: DuplicationResult | undefined): RichBaselineEntry[];
/**
 * Build `stale-file` entries from a list of repo-relative paths.
 * Files with a suffix outside the canonical stale set are skipped
 * (defensive — the caller's gather should already have filtered).
 */
export declare function staleFilesToBaselineEntries(staleFiles: ReadonlyArray<string>): RichBaselineEntry[];
//# sourceMappingURL=quality.d.ts.map