export interface LLMModel { id: string; name?: string; inputCostPer1KTokens?: number; outputCostPer1KTokens?: number; cacheReadCostPer1KTokens?: number; cacheWriteCostPer1KTokens?: number; supported_apis?: string[]; metadata?: { context_length?: number; }; [key: string]: unknown; } /** Options accepted by the chat/completions API. */ export interface ILLMConfig extends Record { presence_penalty?: number; frequency_penalty?: number; max_tokens?: number; temperature?: number; top_p?: number; enable_prompt_caching?: boolean; cache_system_prompt?: boolean; } /** Options accepted by the responses API (superset ignored). */ export interface ILLMResponsesConfig extends Record { max_tokens?: number; temperature?: number; top_p?: number; } export interface ILLM { getModels(): Promise; /** chat/completions, non-streaming. Codex models route to the responses API. */ llm(prompt: string, model?: string, systemmsg?: string, llm_config?: ILLMConfig, transformCodexResponse?: boolean): Promise; /** chat/completions, streaming SSE body. */ llmStream(prompt: string, model?: string, systemmsg?: string, llm_config?: ILLMConfig, transformCodexStream?: boolean): Promise>; /** responses API, non-streaming. */ llmResponses(prompt: string, model?: string, systemmsg?: string, llm_config?: ILLMResponsesConfig): Promise; /** responses API, streaming SSE body. */ llmResponsesStream(prompt: string, model?: string, systemmsg?: string, llm_config?: ILLMResponsesConfig): Promise>; }