import type { ICommitValidationResult, ICommitValidator } from '../interface/commit-validator.interface'; import type { ILlmPromptContext } from '../interface/llm-service.interface'; import type { CommitMessage } from '../../domain/entity/commit-message.entity'; /** * Use case for validating and fixing commit messages */ export declare class ValidateCommitMessageUseCase { private readonly DEFAULT_MAX_RETRIES; private readonly STATUS_REPORTER; private readonly VALIDATOR; constructor(validator: ICommitValidator, defaultMaxRetries?: number, statusReporter?: (message: string) => void); /** * Execute the validation use case * @param {CommitMessage} message - The commit message to validate * @param {boolean} shouldAttemptFix - Whether to attempt fixing validation errors * @param {number | undefined} maxRetries - Maximum number of retry attempts (optional, defaults to DEFAULT_MAX_RETRIES) * @param {ILlmPromptContext} context - The LLM prompt context * @param {(attempt: number) => void} onValidationAttempt - Optional callback fired before each validation attempt * @returns {Promise} Promise resolving to the validated message or null if validation fails */ execute(message: CommitMessage, shouldAttemptFix?: boolean, maxRetries?: number, context?: ILlmPromptContext, onValidationAttempt?: (attempt: number) => void): Promise; /** * Validate a commit message * @param {CommitMessage} message - The commit message to validate * @returns {Promise} Promise resolving to the validation result */ validate(message: CommitMessage): Promise; private reportStatus; }