export function nativeGetCurrentBranch(basePath: string): string;
export function nativeDetectMainBranch(basePath: string): string;
export function nativeBranchExists(basePath: string, branch: string): boolean;
export function nativeHasMergeConflicts(basePath: string): boolean;
export function nativeWorkingTreeStatus(basePath: string): string;
export function nativeHasChanges(basePath: string): boolean;
export function _resetHasChangesCache(): void;
export function nativeCommitCountBetween(
	basePath: string,
	fromRef: string,
	toRef: string,
): number;
export function nativeIsRepo(basePath: string): boolean;
export function nativeHasStagedChanges(basePath: string): boolean;
export function nativeDiffStat(
	basePath: string,
	fromRef: string,
	toRef: string,
): string;
export function nativeDiffNameStatus(
	basePath: string,
	fromRef: string,
	toRef: string,
	pathspec?: string,
	useMergeBase?: boolean,
): string[];
export function nativeDiffNumstat(
	basePath: string,
	fromRef: string,
	toRef: string,
): string;
export function nativeDiffContent(
	basePath: string,
	fromRef: string,
	toRef: string,
	pathspec?: string,
	exclude?: string[],
	useMergeBase?: boolean,
): string;
export function nativeLogOneline(
	basePath: string,
	fromRef?: string,
	toRef?: string,
): string[];
export function nativeWorktreeList(basePath: string): string[];
export function nativeBranchList(basePath: string, pattern?: string): string[];
export function nativeBranchListMerged(
	basePath: string,
	target: string,
	pattern?: string,
): string[];
export function nativeLsFiles(basePath: string, pathspec?: string): string[];
export function nativeForEachRef(basePath: string, prefix?: string): string[];
export function nativeConflictFiles(basePath: string): string[];
export function nativeBatchInfo(basePath: string): Record<string, unknown>;
export function nativeInit(basePath: string, initialBranch?: string): void;
export function nativeAddAll(basePath: string): void;
export function nativeAddTracked(basePath: string): void;
export function nativeAddAllWithExclusions(
	basePath: string,
	exclusions: string[],
): void;
export function nativeAddPaths(basePath: string, paths: string[]): void;
export function nativeResetPaths(basePath: string, paths: string[]): void;
export function nativeCommit(
	basePath: string,
	message: string,
	options?: Record<string, unknown>,
): void;
export function nativeCheckoutBranch(basePath: string, branch: string): void;
export function nativeCheckoutTheirs(basePath: string, paths: string[]): void;
export function nativeMergeSquash(basePath: string, branch: string): void;
export function nativeMergeAbort(basePath: string): void;
export function nativeRebaseAbort(basePath: string): void;
export function nativeResetHard(basePath: string): void;
export function nativeResetSoft(basePath: string, target?: string): void;
export function nativeCommitSubject(basePath: string, ref: string): string;
export function nativeBranchDelete(
	basePath: string,
	branch: string,
	force?: boolean,
): void;
export function nativeBranchForceReset(
	basePath: string,
	branch: string,
	target: string,
): void;
export function nativeRmCached(
	basePath: string,
	paths: string[],
	recursive?: boolean,
): void;
export function nativeRmForce(basePath: string, paths: string[]): void;
export function nativeWorktreeAdd(
	basePath: string,
	wtPath: string,
	branch: string,
	createBranch?: boolean,
	startPoint?: string,
): void;
export function nativeWorktreeRemove(
	basePath: string,
	wtPath: string,
	force?: boolean,
): void;
export function nativeWorktreePrune(basePath: string): void;
export function nativeRevertCommit(basePath: string, sha: string): void;
export function nativeRevertAbort(basePath: string): void;
export function nativeUpdateRef(
	basePath: string,
	refname: string,
	target: string,
): void;
export function isNativeGitAvailable(): boolean;
export function nativeIsAncestor(
	basePath: string,
	ancestor: string,
	descendant: string,
): boolean;
export function nativeLastCommitEpoch(basePath: string, ref?: string): number;
export function nativeUnpushedCount(basePath: string, branch: string): number;
export function getCommitsBehindMain(
	worktreePath: string,
	mainRef: string,
): number;
