import OpenAI from 'openai'; import { Stan } from 'node-nats-streaming'; import { AIProvider } from '../../events/ai/aiRequestMadeEvent'; export interface ChatParams { provider: AIProvider; model: string; messages: OpenAI.ChatCompletionMessageParam[]; maxTokens?: number; temperature?: number; responseFormat?: { type: 'json_object' | 'text'; }; account?: string; } export interface TTSParams { model: string; voice: string; input: string; speed?: number; instructions?: string; responseFormat?: string; account?: string; } export interface TranscribeParams { audioBuffer: Buffer; mimeType?: string; account?: string; } export interface ImageGenerateParams { model: string; prompt: string; size: string; quality?: string; n?: number; account?: string; } export interface ImageEditParams { model: string; imageBuffer: Buffer; prompt: string; size: string; n?: number; account?: string; } export interface ChatResult { content: string; promptTokens: number; completionTokens: number; totalTokens: number; } export declare class AIClient { private readonly natsClient; private readonly service; private readonly openaiApiKey; private readonly cerebrasApiKey?; private _openai?; private _cerebras?; constructor(natsClient: Stan, service: string, openaiApiKey: string, cerebrasApiKey?: string | undefined); private get openai(); private get cerebras(); private emit; chat(params: ChatParams): Promise; tts(params: TTSParams): Promise; transcribe(params: TranscribeParams): Promise; generateImage(params: ImageGenerateParams): Promise; editImage(params: ImageEditParams): Promise; }