import type { PreferencesStore } from "./preferences-store.js";
export type ImageProviderType = "openai-images" | "gemini-images" | "google-imagen";
export interface ApiImageModel {
    id: string;
    name: string;
    provider: string;
    api: ImageProviderType;
    baseUrl: string;
    authenticated: boolean;
    sizes?: string[];
    qualities?: string[];
    aspectRatios?: string[];
    formats?: string[];
    /** For custom-provider image models: the underlying CustomProviderConfig.id.
     * Built-in providers leave this undefined. Used by getImageProviderKey to
     * resolve the API key by config.id rather than display-name collisions. */
    customProviderId?: string;
}
export interface GeneratedImage {
    data: string;
    mimeType: string;
    revisedPrompt?: string;
}
export interface ImageGenerationRequest {
    prompt: string;
    model?: string;
    size?: string;
    quality?: string;
    background?: "transparent" | "opaque" | "auto";
    format?: "png" | "jpeg" | "webp";
    aspectRatio?: string;
    imageSize?: string;
    n?: number;
}
export declare function parseImageModelPref(pref: string | undefined | null): {
    provider: string;
    id: string;
} | undefined;
export declare function defaultImageModelPref(): string;
export declare function getAvailableImageModels(prefs: PreferencesStore): ApiImageModel[];
export declare function getImageModelByPref(prefs: PreferencesStore, pref?: string | null): ApiImageModel | undefined;
/**
 * Normalize a user-facing image-model pref string (e.g. `google/nano-banana-2`) to its
 * canonical `provider/modelId` form so downstream lookups in `getAvailableImageModels`
 * succeed regardless of how the user typed the alias. Currently only Google aliases
 * need rewriting; other providers pass through unchanged.
 */
export declare function canonicalImageModelPref(pref: string | undefined | null): string | undefined;
export declare function imageModelMentionedInText(prefs: PreferencesStore, pref: string | undefined | null, text: string | undefined | null): boolean;
export declare function generateImage(prefs: PreferencesStore, request: ImageGenerationRequest): Promise<{
    model: ApiImageModel;
    images: GeneratedImage[];
}>;
//# sourceMappingURL=image-generation.d.ts.map