/**
 * Model-agnostic LLM service.
 *
 * Single entry point for all LLM calls in the application.
 * Automatically detects the provider from the model name and
 * routes to the appropriate SDK (OpenAI, Anthropic, or any
 * OpenAI-compatible provider).
 *
 * Usage:
 *   import { callLLM, hasLLMApiKey } from '../services/llm';
 *   const response = await callLLM({ model, messages, tools, max_tokens });
 *   console.log(response.content, response.tool_calls);
 */
import type { LLMOptions, LLMResponse } from './types';
export type { LLMOptions, LLMResponse, LLMProvider, ChatMessage, ToolDefinition, ToolCall, ContentPart, TextContent, ImageUrlContent, ProviderName, } from './types';
export { detectProvider } from './detect';
/**
 * Call an LLM with model-agnostic options.
 *
 * The provider is auto-detected from the model name:
 * - gpt-*, o1-*, o3-*, o4-* → OpenAI
 * - claude-* → Anthropic
 * - others → OpenAI-compatible (respects LT_LLM_BASE_URL)
 *
 * Messages, tools, and responses use OpenAI's format as the canonical
 * representation. Translation to/from other providers happens internally.
 */
export declare function callLLM(options: LLMOptions): Promise<LLMResponse>;
/**
 * Check if the required API key is available for a given model.
 * Useful for conditional feature enablement (e.g., skip LLM compilation
 * when no key is configured).
 */
export declare function hasLLMApiKey(model?: string): boolean;
