export type GitOperation = "rebase" | "merge" | "cherry-pick" | "revert" | "sequencer" | "index lock";
/** Detect user-owned Git state without running a command that could alter it. */
export declare function inProgressGitOperation(store: string): GitOperation | undefined;
export declare function gitOperationRecovery(operation: GitOperation): string;
/**
 * Why an automatic store commit must not happen now. `git add -A` during an
 * unfinished merge marks every conflicted file resolved, markers and all, and
 * the next commit concludes the merge with them: that is how a
 * phren.project.yaml with `<<<<<<< HEAD` reached a store. Check before
 * staging for the in-progress operation, and after staging for added marker
 * pairs (a lone `=======` is a Markdown heading underline, so it needs both
 * ends).
 */
export declare function storeAutoCommitBlocker(store: string, stagedDiff?: () => Promise<{
    ok: boolean;
    output?: string;
}>): Promise<string | undefined>;
