import type { Logger } from 'pino';
import type { StatsGateway } from '../../../../modules/statistics-insights/entities/stats/stats.gateway.js';
import type { InsightsGateway } from '../../../../modules/statistics-insights/entities/insight/insights.gateway.js';
import type { ReviewFileGateway } from '../../../../modules/review-execution/entities/review/reviewFile.gateway.js';
import type { ReviewRequestTrackingGateway } from '../../../../modules/tracking/entities/tracking/reviewRequestTracking.gateway.js';
import type { AiInsightsResult } from '../../../../modules/statistics-insights/entities/insight/aiInsight.js';
import type { Language } from '../../../../modules/shared-kernel/entities/language/language.schema.js';
export type ClaudeInvoker = (prompt: string) => Promise<string>;
interface GenerateAiInsightsInput {
    projectPath: string;
    statsGateway: StatsGateway;
    reviewFileGateway: ReviewFileGateway;
    reviewRequestTrackingGateway: ReviewRequestTrackingGateway;
    logger: Logger;
    claudeInvoker: ClaudeInvoker;
    language: Language;
}
export declare function generateAiInsights(input: GenerateAiInsightsInput): Promise<AiInsightsResult>;
interface PersistAiInsightsInput {
    projectPath: string;
    aiInsights: AiInsightsResult;
    statsGateway: StatsGateway;
    insightsGateway: InsightsGateway;
}
export declare function persistAiInsightsResult(input: PersistAiInsightsInput): void;
export {};
//# sourceMappingURL=generateAiInsights.usecase.d.ts.map