export interface AIProviderConfig {
    apiKey: string;
}
export interface HealingPrompt {
    action: string;
    target: string;
    error: string;
    domSnippet: string;
    screenshot?: string;
}
export declare class AIClient {
    private static instance;
    private constructor();
    static getInstance(): AIClient;
    /**
     * Attempts to find a new selector for a failed element using LLM.
     */
    suggestHealedSelector(config: {
        provider: 'openai' | 'gemini' | 'claude';
        apiKey: string;
        modelName?: string;
    }, prompt: HealingPrompt): Promise<string | null>;
    /**
     * Generates a full scenario JSON from a natural language prompt and optional screenshots.
     */
    generateScenario(config: {
        provider: 'openai' | 'gemini';
        apiKey: string;
        modelName?: string;
    }, userPrompt: string, images?: string[], // Base64 strings
    availableFlows?: string[]): Promise<any>;
    /**
     * Analyzes a failed test run and provides actionable insights.
     */
    analyzeFailure(config: {
        provider: 'openai' | 'gemini';
        apiKey: string;
        modelName?: string;
    }, context: {
        scenarioName: string;
        error: string;
        logs: string[];
    }): Promise<string>;
}
