export default function detectScm(directory: string): { name: "git"; detect: (directory: string) => string | null; getSinceRevision: (directory: string, { staged, branch }: { staged?: boolean; branch?: string; }) => Promise; getChangedFiles: (directory: string, revision: string | null, staged?: boolean | undefined) => Promise; getUnstagedChangedFiles: (directory: string) => Promise; stageFile: (directory: string, file: string) => import("tinyexec").Result; rootDirectory: string; } | { name: "hg"; detect: (directory: string) => string | undefined; getSinceRevision: (directory: string, { branch }: { branch?: string; }) => Promise; getChangedFiles: (directory: string, revision: string | null, _staged?: boolean) => Promise; getUnstagedChangedFiles: () => never[]; stageFile: (directory: string, file: string) => import("tinyexec").Result; rootDirectory: string; } | undefined;