import OpenAI from 'openai';
import { AIResult, CancelableAbility } from '@isdk/ai-tool';
import { LLMProvider, AIOptions } from '@isdk/ai-tool-llm';

declare function openaiToAIResultChunk(chunk: OpenAI.Chat.Completions.ChatCompletionChunk, params?: any): AIResult<string, OpenAI.Chat.Completions.ChatCompletionChunk>;
declare function openaiToAIResult(res: OpenAI.Chat.Completions.ChatCompletion, params?: any): AIResult<string, OpenAI.Chat.Completions.ChatCompletion>;

declare const OpenaiProviderName = "openai";
interface OpenaiProvider extends CancelableAbility {
}
declare class OpenaiProvider extends LLMProvider {
    rule: (string | RegExp)[];
    processModelOptions(model: string, prompt: any, options: AIOptions): Promise<AIOptions>;
    func({ model, value, options }: {
        model: string;
        value: any;
        options: AIOptions;
    }): Promise<any>;
}
declare const openai: OpenaiProvider;

export { OpenaiProvider, OpenaiProviderName, openai, openaiToAIResult, openaiToAIResultChunk };
