import { CommitInfo } from './types'; export declare type MergeCommitsFn = (baseRef: string | undefined, leftRef: string, rightRef: string, depth: number) => string; export declare type SortRefsFn = (refA: string, refB: string) => number; export declare type GetCommitFn = (ref: string) => N; /** * This function walks up the tree starting at the commits in a breadth-first manner, merging commits, * prioritizing lowest refs first, as common ancestors are found. * * Those merged commits then continue to be merged together until there is just one head commit left. * * If there are completely un-connected commits, these will be merged with base === undefined */ export declare function mergeHeads(headRefs: string[], sortRefs: SortRefsFn, getCommit: GetCommitFn, merge: MergeCommitsFn): string | undefined;