import { Session } from 'koishi';
import { AiHubMixAPI } from './api';
import { Config } from '../index';
export declare enum ImageModelType {
    OFFICIAL = "official",// gpt-image-1 等正式模型
    REVERSE = "reverse",// gpt-4o-image 系列逆向模型
    GEMINI = "gemini",// gemini 智绘模型
    IMAGEN = "imagen",// imagen 系列模型
    XAI = "xai"
}
export interface ImageGenerationOptions {
    prompt: string;
    size?: string;
    quality?: string;
    n?: number;
    model?: string;
}
export interface ImageEditOptions {
    prompt: string;
    imageUrl: string;
    maskUrl?: string;
    size?: string;
    quality?: string;
    n?: number;
}
export declare class ImageService {
    private api;
    private config;
    private logger;
    constructor(api: AiHubMixAPI, config: Config);
    /**
     * 检测图像模型类型
     */
    private detectModelType;
    /**
     * 生成图像
     */
    generateImage(session: Session, options: ImageGenerationOptions): Promise<string[]>;
    /**
     * 使用Gemini智绘生成图像
     */
    private generateImageWithGemini;
    /**
     * 使用Imagen模型生成图像
     */
    private generateImageWithImagen;
    /**
     * 使用xAI生成图像
     */
    private generateImageWithXAI;
    /**
     * 将尺寸转换为Imagen支持的宽高比
     */
    private convertSizeToAspectRatio;
    /**
     * 使用标准API生成图像
     */
    private generateImageWithStandard;
    /**
     * 编辑图像
     */
    editImage(session: Session, options: ImageEditOptions): Promise<string[]>;
    /**
     * 下载图像
     */
    private downloadImage;
    /**
     * 将base64数据转换为data URL
     */
    private convertBase64ToDataUrl;
    /**
     * 保存base64图像
     * 注意：这里需要根据实际情况实现图像保存逻辑
     * 可以保存到本地文件系统或上传到图床
     */
    private saveBase64Image;
    /**
     * 验证图像URL
     */
    validateImageUrl(url: string): Promise<boolean>;
    /**
     * 获取支持的图像尺寸
     */
    getSupportedSizes(): string[];
    /**
     * 获取支持的图像质量
     */
    getSupportedQualities(): string[];
    /**
     * 解析图像尺寸参数
     */
    parseImageSize(input: string): string;
    /**
     * 解析图像质量参数
     */
    parseImageQuality(input: string): string;
    /**
     * 获取可用模型列表
     */
    getAvailableModels(): Promise<{
        chatModels: string[];
        imageModels: string[];
    }>;
    /**
     * 判断是否为绘图模型
     */
    private isImageModel;
    /**
     * 判断是否为对话模型
     */
    private isChatModel;
}
