import * as plugins from './plugins.js';
export type TChatCompletionRequestMessage = {
    role: "system" | "user" | "assistant";
    content: string;
};
import { MultiModalModel } from './abstract.classes.multimodal.js';
export interface IOpenaiProviderOptions {
    openaiToken: string;
    chatModel?: string;
    audioModel?: string;
    visionModel?: string;
}
export declare class OpenAiProvider extends MultiModalModel {
    private options;
    openAiApiClient: plugins.openai.default;
    smartpdfInstance: plugins.smartpdf.SmartPdf;
    constructor(optionsArg: IOpenaiProviderOptions);
    start(): Promise<void>;
    stop(): Promise<void>;
    chatStream(input: ReadableStream<Uint8Array>): Promise<ReadableStream<string>>;
    chat(optionsArg: {
        systemMessage: string;
        userMessage: string;
        messageHistory: {
            role: 'assistant' | 'user';
            content: string;
        }[];
    }): Promise<{
        role: "assistant";
        message: string;
    }>;
    audio(optionsArg: {
        message: string;
    }): Promise<NodeJS.ReadableStream>;
    document(optionsArg: {
        systemMessage: string;
        userMessage: string;
        pdfDocuments: Uint8Array[];
        messageHistory: {
            role: 'assistant' | 'user';
            content: any;
        }[];
    }): Promise<{
        message: import("openai/resources/index.mjs").ChatCompletionMessage;
    }>;
    vision(optionsArg: {
        image: Buffer;
        prompt: string;
    }): Promise<string>;
}
