import { DiffProviderPort, LLMPort, OutputPort } from '../ports'; export interface ExplainCodeOptions { readonly baseRef?: string; readonly headRef?: string; readonly includeStaged?: boolean; readonly includeUnstaged?: boolean; readonly filePatterns?: string[]; readonly excludePatterns?: string[]; readonly outputFormat?: 'console' | 'markdown' | 'json' | 'html' | 'file'; readonly outputPath?: string; readonly level?: 'beginner' | 'intermediate' | 'advanced'; readonly includeExamples?: boolean; readonly style?: 'technical' | 'simple' | 'detailed'; } export interface ExplainCodeUseCase { execute(options?: ExplainCodeOptions): Promise; } export declare class ExplainCodeUseCaseImpl implements ExplainCodeUseCase { private readonly diffProvider; private readonly llmPort; private readonly outputPort; constructor(diffProvider: DiffProviderPort, llmPort: LLMPort, outputPort: OutputPort); execute(options?: ExplainCodeOptions): Promise; private explainDiff; private createExplanationPrompt; private combineExplanations; private readFilesFromPatterns; private explainCodeBlock; private resolvePattern; private expandPattern; private matchesExcludePatterns; private isReadableFile; private getLanguageFromFile; private convertDiffsToCodeBlocks; } //# sourceMappingURL=ExplainCodeUseCase.d.ts.map