/**
 * @module ai-image
 * @description Library functions for image generation, image editing, and
 * thumbnail best-frame selection. Powers the manifest tools
 * `generate_image`, `edit_image`, and `generate_thumbnail` (which the user
 * actually reaches via `vibe generate image / edit image / generate thumbnail`).
 *
 * The legacy `vibe ai image / thumbnail / background / gemini / gemini-edit`
 * Commander registrations were removed alongside the dead `commands/ai.ts`
 * orchestrator (the `vibe ai *` namespace was never `addCommand`'d to
 * `program`).
 *
 * @see MODELS.md for AI model configuration
 */
export interface ImageGenerateOptions {
    prompt: string;
    provider?: string;
    output?: string;
    size?: string;
    ratio?: string;
    quality?: string;
    style?: string;
    count?: number;
    model?: string;
    apiKey?: string;
}
export interface ImageGenerateResult {
    success: boolean;
    outputPath?: string;
    images?: Array<{
        url?: string;
        base64?: string;
        mimeType?: string;
        revisedPrompt?: string;
    }>;
    provider?: string;
    model?: string;
    error?: string;
}
export declare function executeImageGenerate(options: ImageGenerateOptions): Promise<ImageGenerateResult>;
export interface GeminiEditOptions {
    imagePaths: string[];
    prompt: string;
    output?: string;
    model?: string;
    ratio?: string;
    resolution?: string;
    apiKey?: string;
}
export interface GeminiEditResult {
    success: boolean;
    outputPath?: string;
    model?: string;
    error?: string;
}
export declare function executeGeminiEdit(options: GeminiEditOptions): Promise<GeminiEditResult>;
export interface ThumbnailBestFrameOptions {
    videoPath: string;
    outputPath: string;
    prompt?: string;
    model?: string;
    apiKey?: string;
}
export interface ThumbnailBestFrameResult {
    success: boolean;
    outputPath?: string;
    timestamp?: number;
    reason?: string;
    error?: string;
}
export declare function executeThumbnailBestFrame(options: ThumbnailBestFrameOptions): Promise<ThumbnailBestFrameResult>;
