/**
 * LLM Adapter Interface and Factory
 */
import type { ToolDefinition, LLMResponse, AgentMessage, LLMProvider } from "../types.js";
/**
 * Abstract interface for LLM providers
 */
export interface LLMAdapter {
    /** Provider name */
    readonly provider: LLMProvider;
    /** Initialize the adapter with API key */
    initialize(apiKey: string): Promise<void>;
    /** Check if adapter is initialized */
    isInitialized(): boolean;
    /** Send messages with tools and get response */
    chat(messages: AgentMessage[], tools: ToolDefinition[]): Promise<LLMResponse>;
}
/**
 * Factory for creating LLM adapters
 */
export declare function createAdapter(provider: LLMProvider): Promise<LLMAdapter>;
export { OpenAIAdapter } from "./openai.js";
export { ClaudeAdapter } from "./claude.js";
export { GeminiAdapter } from "./gemini.js";
export { OllamaAdapter } from "./ollama.js";
export { XAIAdapter } from "./xai.js";
export { OpenRouterAdapter } from "./openrouter.js";
