import type { ICommandService } from '../../application/interface/command-service.interface'; import type { ICommitRepository } from '../../application/interface/commit-repository.interface'; import type { ITicketIdParser } from '../../application/interface/ticket-id-parser.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; private readonly TICKET_ID_PARSER; constructor(commandService: ICommandService, ticketIdParser: ITicketIdParser); /** * Create a commit with the given message * @param {CommitMessage} message - The commit message * @returns {Promise} Promise that resolves when the commit is created */ commit(message: CommitMessage): Promise; /** * Get the current branch name * @returns {Promise} Promise resolving to the current branch name */ getCurrentBranch(): Promise; /** * Get the staged diff * @returns {Promise} Promise resolving to the staged diff */ getStagedDiff(): Promise; /** * Get the list of staged files * @returns {Promise>} Promise resolving to array of staged file paths */ getStagedFiles(): Promise>; /** * Get the ticket ID from the current branch name * Uses configured ticket source strategy (branch-lint or local pattern) * @returns {Promise} Promise resolving to the ticket ID if found, undefined otherwise */ getTicketIdFromBranch(): Promise; /** * Check if there are staged changes * @returns {Promise} Promise resolving to true if there are staged changes */ hasStagedChanges(): Promise; }