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 generating commit messages */ export declare class GenerateCommitMessageUseCase { private readonly LLM_SERVICE; constructor(llmService: ILlmService); /** * Execute the commit message generation * @param {ILlmPromptContext} context - The context for generating the commit message * @param {LLMConfiguration} configuration - The LLM configuration * @param {(attempt: number, maxRetries: number, error: Error) => void} onRetry - Callback function called on retry attempts * @returns {Promise} Promise resolving to the generated commit message */ execute(context: ILlmPromptContext, configuration: LLMConfiguration, onRetry?: (attempt: number, maxRetries: number, error: Error) => void): Promise; }