/** Git-supplied merge sides, mapped from `%O %A %B %P`. */
export interface MergeLearningsOptions {
    /** `%O` — merge-base version; an empty file when the ledger is new. */
    readonly base?: string;
    /** `%A` — our version, and the file the result must be written to. */
    readonly ours?: string;
    /** `%B` — their (incoming) version. */
    readonly theirs?: string;
    /** `%P` — the real pathname, used only in diagnostics. */
    readonly path?: string;
}
/** Injectable collaborators for {@link runMergeLearnings}. */
export interface MergeLearningsDependencies {
    /** Sink for the conflict diagnostic (defaults to stderr). */
    readonly error?: (message: string) => void;
}
/**
 * Run the union merge and publish the result.
 * @param options - Git-supplied merge sides
 * @param dependencies - Injectable collaborators for tests
 * @returns Process exit code: 0 merged, 1 conflict
 */
export declare function runMergeLearnings(options: MergeLearningsOptions, dependencies?: MergeLearningsDependencies): Promise<number>;
//# sourceMappingURL=merge-learnings-cmd.d.ts.map