import type { ChangeOrigin } from 'zephyr-edge-contract';
import { type SourceRecord } from './source.js';
export interface AttributedDiffLine {
    operation: 'add' | 'remove';
    line: number;
    text: string;
    /** For removals this identifies original contribution, not the deleting actor. */
    origin: ChangeOrigin;
}
export interface AttributedFileDiff {
    file: string;
    status: 'added' | 'deleted' | 'modified';
    binary: boolean;
    beforeMode?: string;
    afterMode?: string;
    patch: string;
    lines: AttributedDiffLine[];
}
export declare function compareSourceRecords(directory: string, before: string, after: string): {
    schemaVersion: number;
    before: string;
    after: string;
    beforeFingerprint: string;
    afterFingerprint: string;
    sameCommit: boolean;
    changes: AttributedFileDiff[];
};
export declare function compareSourceContents(left: SourceRecord, right: SourceRecord, directory?: string): {
    schemaVersion: number;
    before: string;
    after: string;
    beforeFingerprint: string;
    afterFingerprint: string;
    sameCommit: boolean;
    changes: AttributedFileDiff[];
};
//# sourceMappingURL=compare.d.ts.map