/**
 * AisAPI 类型定义
 */
/**
 * API返回的基础格式
 */
export interface ApiResponse<T = any> {
    success: boolean;
    data?: T;
    error?: string;
    message?: string;
}
/**
 * 分页数据结构
 */
export interface PaginatedData<T = any> {
    items: T[];
    total: number;
    page: number;
    pageSize: number;
    totalPages: number;
}
/**
 * 分页查询参数
 */
export interface PaginationParams {
    page?: number;
    pageSize?: number;
    sortBy?: string;
    sortOrder?: 'asc' | 'desc';
}
/**
 * 所有AI服务的基础配置
 */
export interface ProviderOptions {
    apiKey?: string;
    baseUrl?: string;
    timeout?: number;
    [key: string]: any;
}
/**
 * 文本生成参数
 */
export interface TextGenerationParams {
    prompt: string;
    maxTokens?: number;
    temperature?: number;
    topP?: number;
    stream?: boolean;
    systemMessage?: string;
    model?: string;
    [key: string]: any;
}
/**
 * 文本生成结果
 */
export interface TextGenerationResponse {
    text: string;
    usage?: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
    cacheInfo?: {
        hitTokens?: number;
        missTokens?: number;
        hitRate?: number;
        estimatedSavings?: number;
    };
    rawResponse?: any;
    [key: string]: any;
}
/**
 * 图像生成参数
 */
export interface ImageGenerationParams {
    prompt: string;
    n?: number;
    size?: string;
    model?: string;
    responseFormat?: string;
    user?: string;
    [key: string]: any;
}
/**
 * 图像生成结果
 */
export interface ImageGenerationResponse {
    urls: string[];
    rawResponse?: any;
    [key: string]: any;
}
/**
 * 所有AI服务需要实现的功能接口
 */
export interface AiProvider {
    /** 服务名称 */
    readonly name: string;
    /** 文本生成（核心功能） */
    generateText(params: TextGenerationParams): Promise<TextGenerationResponse>;
    /** 图像生成（可选功能） */
    generateImage?(params: ImageGenerationParams): Promise<ImageGenerationResponse>;
    /** JSON格式输出（可选功能） */
    generateJSON?(params: TextGenerationParams): Promise<any>;
    /** 图像变体（可选功能） */
    createImageVariation?(params: ImageVariationParams): Promise<ImageGenerationResponse>;
    /** 图像编辑（可选功能） */
    editImage?(params: ImageEditParams): Promise<ImageGenerationResponse>;
    /** 语音转文字（可选功能） */
    transcribeAudio?(params: AudioTranscriptionParams): Promise<AudioTranscriptionResponse>;
    /** 文字转语音（可选功能） */
    textToSpeech?(params: TextToSpeechParams): Promise<TextToSpeechResponse>;
    /** 文本向量（可选功能） */
    createEmbedding?(params: EmbeddingParams): Promise<EmbeddingResponse>;
    /** 获取模型列表（可选功能） */
    listModels?(): Promise<ModelsResponse | any>;
    /** 流式对话（可选功能） */
    createStreamingChatCompletion?(params: ChatCompletionParams): Promise<ReadableStream<any>>;
}
/**
 * OpenAI相关类型定义
 */
export interface ChatMessage {
    role: 'system' | 'user' | 'assistant' | 'function' | 'tool';
    content: string | null;
    name?: string;
    function_call?: any;
    tool_calls?: any[];
}
export interface ChatCompletionParams {
    model: string;
    messages: ChatMessage[];
    maxTokens?: number;
    temperature?: number;
    topP?: number;
    n?: number;
    stream?: boolean;
    stop?: string | string[];
    presencePenalty?: number;
    frequencyPenalty?: number;
    logitBias?: Record<string, number>;
    user?: string;
    responseFormat?: {
        type: 'text' | 'json_object';
    };
    [key: string]: any;
}
export interface ChatCompletionResponse {
    id: string;
    object: string;
    created: number;
    model: string;
    choices: {
        index: number;
        message: ChatMessage;
        finishReason: string;
    }[];
    usage: {
        promptTokens: number;
        completionTokens: number;
        totalTokens: number;
    };
}
export interface AudioTranscriptionParams {
    file: any;
    model: string;
    language?: string;
    prompt?: string;
    responseFormat?: 'json' | 'text' | 'srt' | 'verbose_json' | 'vtt';
    temperature?: number;
}
export interface AudioTranscriptionResponse {
    text: string;
    rawResponse?: any;
    [key: string]: any;
}
export interface TextToSpeechParams {
    input: string;
    model: string;
    voice: string;
    responseFormat?: string;
    speed?: number;
}
export interface TextToSpeechResponse {
    audioData: ArrayBuffer;
    format: string;
}
export interface EmbeddingParams {
    model: string;
    input: string | string[];
    user?: string;
}
export interface EmbeddingResponse {
    data: {
        embedding: number[];
        index: number;
        object: string;
    }[];
    model: string;
    usage: {
        promptTokens: number;
        totalTokens: number;
    };
}
/**
 * 图像编辑参数
 */
export interface ImageEditParams {
    image: any;
    mask?: any;
    prompt: string;
    n?: number;
    size?: string;
    model?: string;
    user?: string;
}
/**
 * 图像变体参数
 */
export interface ImageVariationParams {
    image: any;
    n?: number;
    size?: string;
    model?: string;
    user?: string;
}
/**
 * 模型信息
 */
export interface ModelInfo {
    id: string;
    object: string;
    created: number;
    ownedBy: string;
    permission: any[];
    root: string;
    parent: string | null;
}
/**
 * 模型列表结果
 */
export interface ModelsResponse {
    object: string;
    data: ModelInfo[];
}
//# sourceMappingURL=types.d.ts.map