export interface IMessage { role: 'system' | 'user' | 'assistant'; content: string; name?: string; } export interface IAskConfig { provider?: string; model?: string; systemPrompt?: string; temperature?: number; maxTokens?: number; topP?: number; frequencyPenalty?: number; presencePenalty?: number; stream?: boolean; user?: string; } export interface ICompletionRequest { messages: IMessage[]; systemPrompt?: string; config: IAskConfig; } export interface ICompletionResponse { content: string; provider?: string; model?: string; usage?: { promptTokens?: number; completionTokens?: number; totalTokens?: number; }; } export interface IErrorResponse { error: string; timestamp?: string; } export interface IAskClientOptions { baseUrl: string; askApiKey?: string; defaultProvider?: string; defaultModel?: string; providerKeys?: { openai?: string; anthropic?: string; groq?: string; google?: string; mistral?: string; openrouter?: string; cohere?: string; xai?: string; deepseek?: string; ai21?: string; cloudflare?: string; }; cloudflareAccountId?: string; headers?: Record; debug?: boolean; } export interface IStreamChunk { content: string; done: boolean; }