import { KIEClient } from './kie-client.js';
import { GeminiClient } from './gemini-client.js';
import type { KIECreateTaskRequest } from '../../types/api.js';
export type ImageProvider = 'kie' | 'gemini';
export interface GenerateImageResult {
    imageUrl: string;
    provider: ImageProvider;
}
/**
 * Unified image generation provider.
 * Priority: Gemini (primary) → KIE (fallback).
 */
export declare class ImageProviderManager {
    private kieClient;
    private geminiClient;
    constructor();
    /** Re-read config and recreate clients (call after API key update). */
    refresh(): void;
    /** Returns which provider will be used as primary. */
    getPrimaryProvider(): ImageProvider | null;
    /** Returns true if at least one image provider is available. */
    isAvailable(): boolean;
    /** Get the raw KIE client. */
    getKIEClient(): KIEClient | null;
    /** Get the raw Gemini client. */
    getGeminiClient(): GeminiClient | null;
    /**
     * Generate an image. Gemini first, KIE fallback.
     * Uses generateAndWait (synchronous polling).
     */
    generateAndWait(request: KIECreateTaskRequest): Promise<GenerateImageResult>;
    private generateWithGemini;
}
export declare function getImageProvider(): ImageProviderManager;
export declare function refreshImageProvider(): void;
//# sourceMappingURL=image-provider.d.ts.map