import type { ICommandService } from '../../application/interface/command-service.interface';
import type { ICommitRepository } from '../../application/interface/commit-repository.interface';
import type { CommitMessage } from '../../domain/entity/commit-message.entity';
/**
 * Git implementation of the commit repository
 */
export declare class GitCommitRepository implements ICommitRepository {
    private readonly COMMAND_SERVICE;
    constructor(commandService: ICommandService);
    /**
     * Create a commit with the given message
     * @param {CommitMessage} message - The commit message
     * @returns {Promise<void>} Promise that resolves when the commit is created
     */
    commit(message: CommitMessage): Promise<void>;
    /**
     * Get the current branch name
     * @returns {Promise<string>} Promise resolving to the current branch name
     */
    getCurrentBranch(): Promise<string>;
    /**
     * Get the staged diff
     * @returns {Promise<string>} Promise resolving to the staged diff
     */
    getStagedDiff(): Promise<string>;
    /**
     * Get the list of staged files
     * @returns {Promise<Array<string>>} Promise resolving to array of staged file paths
     */
    getStagedFiles(): Promise<Array<string>>;
    /**
     * Check if there are staged changes
     * @returns {Promise<boolean>} Promise resolving to true if there are staged changes
     */
    hasStagedChanges(): Promise<boolean>;
}
