/**
 * Provider Factory for SpecVerse
 * Creates LLM provider instances based on configuration
 */
import { LLMProvider, LLMProviderConfig } from './llm-provider.js';
export interface ProviderFactoryConfig extends LLMProviderConfig {
    type: 'openai' | 'anthropic' | 'azure' | 'local' | 'interactive';
    interface?: 'chatgpt' | 'claude' | 'gemini' | 'generic';
    outputFile?: string;
    waitForInput?: boolean;
    formatInstructions?: boolean;
    organization?: string;
    project?: string;
    version?: string;
    enabled?: boolean;
    default?: boolean;
}
export declare class ProviderFactory {
    /**
     * Create a provider instance based on configuration
     */
    static createProvider(config: ProviderFactoryConfig): LLMProvider;
    /**
     * Get supported provider types
     */
    static getSupportedTypes(): string[];
    /**
     * Check if a provider type is supported
     */
    static isSupported(type: string): boolean;
    /**
     * Get default configuration for a provider type
     */
    static getDefaultConfig(type: string): Partial<ProviderFactoryConfig>;
    /**
     * Create a provider from config object, ensuring type safety
     */
    static createFromConfig(config: Partial<ProviderFactoryConfig> & {
        type: string;
        model?: string;
    }): LLMProvider;
    /**
     * Validate provider configuration
     */
    static validateConfig(config: ProviderFactoryConfig): void;
}
//# sourceMappingURL=provider-factory.d.ts.map