import type { ImageProvider, ImageGenerationRequest, ImageGenerationResult, ImageDescriptionResult, ImageTaggingResult } from '../types/index.js'; /** * Manager for all image providers */ export declare class ProviderManager { private providers; private config; constructor(); /** * Initialize all providers */ private initializeProviders; /** * Get all available providers */ getProviders(): ImageProvider[]; /** * Get provider by name */ getProvider(name: string): ImageProvider | null; /** * Get enabled and available providers */ getAvailableProviders(): Promise; /** * Get best provider for a specific feature */ getBestProvider(feature?: 'generation' | 'description' | 'tagging' | 'logo'): Promise; /** * Generate image using the best available provider */ generateImage(request: ImageGenerationRequest, preferredProvider?: string): Promise; /** * Describe image using the best available provider */ describeImage(imageUrl: string, preferredProvider?: string): Promise; /** * Tag image using the best available provider */ tagImage(imageUrl: string, preferredProvider?: string): Promise; /** * Get fallback provider (different from the failed one) */ private getFallbackProvider; /** * Get provider statistics */ getProviderStats(): Promise<{ totalProviders: number; availableProviders: number; providerInfo: Array<{ name: string; available: boolean; features: string[]; supportedFormats: string[]; maxImageCount: number; }>; }>; /** * Reload providers configuration */ reloadProviders(): Promise; /** * Check if any providers are available */ hasAvailableProviders(): Promise; /** * Get provider capabilities summary */ getCapabilities(): Promise<{ canGenerate: boolean; canDescribe: boolean; canTag: boolean; canGenerateLogos: boolean; supportedFormats: string[]; maxImageCount: number; }>; } export declare const providerManager: ProviderManager; export default providerManager; //# sourceMappingURL=providerManager.d.ts.map