/**
 * LiteLLM Client - Bridge between CCW and ccw-litellm Python package
 * Provides LLM chat and embedding capabilities via spawned Python process
 *
 * Features:
 * - Chat completions with multiple models
 * - Text embeddings generation
 * - Configuration management
 * - JSON protocol communication
 */
export interface LiteLLMConfig {
    pythonPath?: string;
    configPath?: string;
    timeout?: number;
}
export interface ChatMessage {
    role: 'system' | 'user' | 'assistant';
    content: string;
}
export interface ChatResponse {
    content: string;
    model: string;
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export interface EmbedResponse {
    vectors: number[][];
    dimensions: number;
    model: string;
}
export interface LiteLLMStatus {
    available: boolean;
    version?: string;
    error?: string;
}
export declare class LiteLLMClient {
    private pythonPath;
    private configPath?;
    private timeout;
    constructor(config?: LiteLLMConfig);
    /**
     * Execute Python ccw-litellm command
     */
    private executePython;
    /**
     * Check if ccw-litellm is available
     */
    isAvailable(): Promise<boolean>;
    /**
     * Get status information
     */
    getStatus(): Promise<LiteLLMStatus>;
    /**
     * Get current configuration
     */
    getConfig(): Promise<any>;
    /**
     * Generate embeddings for texts
     */
    embed(texts: string[], model?: string): Promise<EmbedResponse>;
    /**
     * Chat with LLM
     */
    chat(message: string, model?: string): Promise<string>;
    /**
     * Multi-turn chat with messages array
     */
    chatMessages(messages: ChatMessage[], model?: string): Promise<ChatResponse>;
}
/**
 * Get or create singleton LiteLLM client
 */
export declare function getLiteLLMClient(config?: LiteLLMConfig): LiteLLMClient;
/**
 * Check if LiteLLM is available
 */
export declare function checkLiteLLMAvailable(): Promise<boolean>;
/**
 * Get LiteLLM status
 */
export declare function getLiteLLMStatus(): Promise<LiteLLMStatus>;
//# sourceMappingURL=litellm-client.d.ts.map