import { ZodSchema } from 'zod';
import { ConversationContext } from '../conversation-context';
import { FileInfo } from '../../types';
export interface AIAnalysisRequest {
    files: FileInfo[];
    baseDirectory: string;
    existingStructure?: string[];
    userPreferences?: any;
}
export interface AIAnalysisResponse {
    suggestions: Array<{
        file: FileInfo | null;
        suggestedPath: string;
        reason: string;
        confidence: number;
        category?: string;
        metadata?: any;
    }>;
    reasoning: string;
}
export declare abstract class BaseAIProvider {
    protected apiKey: string;
    protected model: string;
    protected maxTokens: number;
    protected temperature: number;
    protected timeout: number;
    constructor(config: {
        apiKey: string;
        model?: string;
        maxTokens?: number;
        temperature?: number;
        timeout?: number;
    });
    abstract getDefaultModel(): string;
    abstract generateResponse(context: ConversationContext, schema: ZodSchema): Promise<AIAnalysisResponse>;
    abstract analyzeFiles(request: AIAnalysisRequest): Promise<AIAnalysisResponse>;
    protected buildPrompt(request: AIAnalysisRequest): string;
    protected buildConversationalPrompt(request: AIAnalysisRequest): string;
    private formatFileSize;
    protected parseAIResponse(response: string): AIAnalysisResponse;
}
//# sourceMappingURL=base-ai-provider.d.ts.map