import type { ApiKey } from '../value-object/api-key.value-object'; import { ECommitMode } from '../enum/commit-mode.enum'; /** * Entity representing LLM configuration */ export declare class LLMConfiguration { private readonly API_KEY; private readonly MAX_RETRIES; private readonly MODE; private readonly VALIDATION_MAX_RETRIES; constructor(apiKey: ApiKey, mode: ECommitMode, maxRetries?: number, validationMaxRetries?: number); /** * Get the API key * @returns {ApiKey} The API key */ getApiKey(): ApiKey; /** * Get the maximum retries * @returns {number} The maximum retries */ getMaxRetries(): number; /** * Get the commit mode * @returns {ECommitMode} The commit mode */ getMode(): ECommitMode; /** * Get the validation max retries * @returns {number} The validation max retries */ getValidationMaxRetries(): number; /** * Check if mode is auto * @returns {boolean} True if mode is auto */ isAutoMode(): boolean; /** * Check if mode is manual * @returns {boolean} True if mode is manual */ isManualMode(): boolean; /** * Create a new configuration with a different mode * @param {ECommitMode} mode - The new mode * @returns {LLMConfiguration} A new configuration with the updated mode */ withMode(mode: ECommitMode): LLMConfiguration; }