import type { VisionProvider, AnalysisOptions, AnalysisResult, UploadedFile, HealthStatus, ProviderCapabilities, ModelCapabilities, ProviderInfo } from '../../types/Providers.js'; import type { TaskType } from '../../types/Analysis.js'; import { type FunctionName } from '../../constants/FunctionNames.js'; import { ConfigService } from '../../services/ConfigService.js'; import { LoggerService } from '../../services/LoggerService.js'; export declare abstract class BaseVisionProvider implements VisionProvider { protected imageModel: string; protected videoModel: string; protected providerName: string; protected configService: ConfigService; protected logger: LoggerService; constructor(providerName: string, imageModel: string, videoModel: string); abstract analyzeImage(imageSource: string, prompt: string, options?: AnalysisOptions): Promise; abstract analyzeVideo(videoSource: string, prompt: string, options?: AnalysisOptions): Promise; abstract compareImages(imageSources: string[], prompt: string, options?: AnalysisOptions): Promise; abstract uploadFile(buffer: Buffer, filename: string, mimeType: string): Promise; abstract downloadFile(fileId: string): Promise; abstract deleteFile(fileId: string): Promise; abstract getSupportedFormats(): ProviderCapabilities; abstract getModelCapabilities(): ModelCapabilities; abstract getProviderInfo(): ProviderInfo; abstract healthCheck(): Promise; setModel(imageModel: string, videoModel: string): void; getImageModel(): string; getVideoModel(): string; supportsVideo(): boolean; protected createAnalysisResult(text: string, model: string, usage?: { promptTokenCount: number; candidatesTokenCount: number; totalTokenCount: number; }, processingTime?: number, fileType?: string, fileSize?: number, modelVersion?: string, responseId?: string): AnalysisResult; protected createHealthStatus(status: 'healthy' | 'unhealthy' | 'degraded', responseTime?: number, message?: string): HealthStatus; protected measureAsync(operation: () => Promise): Promise<{ result: T; duration: number; }>; protected isValidImageFormat(mimeType: string): boolean; protected isValidVideoFormat(mimeType: string): boolean; protected getProviderCapabilities(): ProviderCapabilities; protected getBaseModelCapabilities(): ModelCapabilities; protected resolveParameter(taskType: TaskType, directValue: number | undefined, getTaskSpecificValue: (taskType: TaskType) => number | undefined, getUniversalValue: () => number, defaultValue: number): number; protected resolveParameterWithFunction(taskType: TaskType, functionName: FunctionName | undefined, directValue: number | undefined, getFunctionSpecificValue: (functionName: FunctionName) => number | undefined, getTaskSpecificValue: (taskType: TaskType) => number | undefined, getUniversalValue: () => number, defaultValue: number): number; protected resolveTemperature(taskType: TaskType, directValue: number | undefined): number; protected resolveTopP(taskType: TaskType, directValue: number | undefined): number; protected resolveTopK(taskType: TaskType, directValue: number | undefined): number; protected resolveMaxTokens(taskType: TaskType, directValue: number | undefined): number; protected resolveTemperatureForFunction(taskType: TaskType, functionName: FunctionName | undefined, directValue: number | undefined): number; protected resolveTopPForFunction(taskType: TaskType, functionName: FunctionName | undefined, directValue: number | undefined): number; protected resolveTopKForFunction(taskType: TaskType, functionName: FunctionName | undefined, directValue: number | undefined): number; protected resolveMaxTokensForFunction(taskType: TaskType, functionName: FunctionName | undefined, directValue: number | undefined): number; protected buildConfigWithOptions(taskType: TaskType, functionName: FunctionName | undefined, options?: AnalysisOptions): any; protected resolveModelForFunction(taskType: 'image' | 'video', functionName: FunctionName | undefined): string; private getModelForTask; protected getThinkingConfig(model: string): { type: 'budget'; value: number; } | { type: 'level'; value: 'MINIMAL' | 'LOW' | 'MEDIUM' | 'HIGH'; } | undefined; protected getThinkingBudgetForModel(model: string): number | undefined; } //# sourceMappingURL=VisionProvider.d.ts.map