/**
 * Audit diff engine.
 * Pure functions for comparing two AuditResult objects and rendering the diff.
 */
import type { AuditResult, AuditDiffResult, SnapshotFile, AuditCompareSummary } from "./types.js";
import type { KastellResult, ServerRecord } from "../../types/index.js";
/**
 * Compare two audit results check-by-check.
 * Each check is classified as improved, regressed, unchanged, added, or removed.
 */
export declare function diffAudits(before: AuditResult, after: AuditResult, labels?: {
    before?: string;
    after?: string;
}): AuditDiffResult;
/**
 * Resolve a snapshot reference to a SnapshotFile.
 * Supports:
 *   - "latest"  → most recent snapshot for serverIp
 *   - filename  → direct file load
 *   - name      → scans listSnapshots for matching name field
 */
export declare function resolveSnapshotRef(serverIp: string, ref: string): Promise<SnapshotFile | null>;
export declare function resolveAuditPair(serverA: ServerRecord, serverB: ServerRecord, fresh: boolean): Promise<KastellResult<{
    auditA: AuditResult;
    auditB: AuditResult;
}>>;
/**
 * Render an AuditDiffResult as a colour-coded terminal string.
 * Regressions appear first (most important), then improvements.
 */
export declare function formatDiffTerminal(diff: AuditDiffResult): string;
/**
 * Render an AuditDiffResult as an indented JSON string.
 * Suitable for CI pipelines and machine consumption.
 */
export declare function formatDiffJson(diff: AuditDiffResult): string;
export declare function buildCategorySummary(before: AuditResult, after: AuditResult, labels?: {
    before?: string;
    after?: string;
}): AuditCompareSummary;
export declare function formatCompareSummaryTerminal(summary: AuditCompareSummary): string;
export declare function formatCompareSummaryJson(summary: AuditCompareSummary): string;
//# sourceMappingURL=diff.d.ts.map