import type { ICliInterfaceService } from '../interface/cli-interface-service.interface'; import type { ICommitRepository } from '../interface/commit-repository.interface'; import type { ICommitValidator } from '../interface/commit-validator.interface'; import type { ILlmPromptContext, ILlmService } from '../interface/llm-service.interface'; import type { CommitMessage } from '../../domain/entity/commit-message.entity'; import type { LLMConfiguration } from '../../domain/entity/llm-configuration.entity'; /** * Use case for editing existing commit messages with point editing capabilities */ export declare class EditCommitUseCase { private readonly CLI_INTERFACE; private readonly COMMIT_REPOSITORY; private readonly LLM_SERVICE; private readonly VALIDATOR; constructor(cliInterface: ICliInterfaceService, validator: ICommitValidator, llmService: ILlmService, commitRepository: ICommitRepository); /** * Execute the commit editing workflow * @param {CommitMessage} commitMessage - The initial commit message to edit * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration for regeneration * @returns {Promise} Promise resolving to the edited commit message */ execute(commitMessage: CommitMessage, context: ILlmPromptContext, llmConfig?: LLMConfiguration): Promise; /** * Handle changing commit body * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleChangeBody; /** * Handle changing commit footer (issues, references) * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleChangeFooter; /** * Handle changing commit scope * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleChangeScope; /** * Handle changing commit subject * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleChangeSubject; /** * Handle changing commit type * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleChangeType; /** * Handle AI regeneration of commit message * @param {CommitMessage} commitMessage - The current commit message before regeneration. * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration} llmConfig - The LLM configuration * @returns {Promise} Promise resolving to the regenerated commit message */ private handleRegenerate; /** * Handle toggling breaking change status * @param {CommitMessage} commitMessage - The current commit message * @param {ILlmPromptContext} context - The LLM prompt context * @param {LLMConfiguration | undefined} llmConfig - Optional LLM configuration * @returns {Promise} Promise resolving to the edited commit message */ private handleToggleBreaking; }