import type { RepomixConfigMerged } from '../../config/configSchema.js';
export declare const GIT_LOG_RECORD_SEPARATOR = "\0";
export declare const GIT_LOG_FORMAT_SEPARATOR = "%x00";
export interface GitLogCommit {
    date: string;
    message: string;
    files: string[];
}
export interface GitLogResult {
    logContent: string;
    commits: GitLogCommit[];
}
export declare const getGitLog: (directory: string, maxCommits: number, deps?: {
    execGitLog: (directory: string, maxCommits: number, gitSeparator: string, deps?: {
        execFileAsync: typeof import("child_process").execFile.__promisify__;
    }) => Promise<string>;
    isGitRepository: (directory: string, deps?: {
        execGitRevParse: (directory: string, deps?: {
            execFileAsync: typeof import("child_process").execFile.__promisify__;
        }) => Promise<string>;
    }) => Promise<boolean>;
}) => Promise<string>;
export declare const getGitLogs: (rootDirs: string[], config: RepomixConfigMerged, deps?: {
    getGitLog: (directory: string, maxCommits: number, deps?: {
        execGitLog: (directory: string, maxCommits: number, gitSeparator: string, deps?: {
            execFileAsync: typeof import("child_process").execFile.__promisify__;
        }) => Promise<string>;
        isGitRepository: (directory: string, deps?: {
            execGitRevParse: (directory: string, deps?: {
                execFileAsync: typeof import("child_process").execFile.__promisify__;
            }) => Promise<string>;
        }) => Promise<boolean>;
    }) => Promise<string>;
}) => Promise<GitLogResult | undefined>;
