/** * Options for LLM completion generation. */ export interface GenerateOptions { maxTokens?: number; temperature?: number; systemPrompt?: string; } /** * Configuration for creating an LLM provider. */ export interface LLMConfig { provider: "anthropic" | "openai" | "deepseek" | "gemini" | "none"; model?: string; apiKey?: string; } /** * LLM provider abstraction for text completion. */ export interface LLMProvider { /** Generate a completion from a prompt */ generate(prompt: string, options?: GenerateOptions): Promise; /** Get the model name being used */ model: string; /** Provider identifier — used to select rate limiting and concurrency config */ providerName: string; /** Estimate token count for a string (rough approximation) */ estimateTokens(text: string): number; } /** * Anthropic Claude provider using the Messages API. */ export declare class AnthropicProvider implements LLMProvider { private client; model: string; providerName: string; constructor(apiKey: string, model?: string); generate(prompt: string, options?: GenerateOptions): Promise; estimateTokens(text: string): number; } /** * Google Gemini provider using the Generative AI SDK. * Default model: gemini-2.0-flash (free tier: 15 RPM / 1M tokens/day). * Get a free API key at https://ai.google.dev/ */ export declare class GeminiProvider implements LLMProvider { private client; model: string; providerName: string; constructor(apiKey: string, model?: string); generate(prompt: string, options?: GenerateOptions): Promise; estimateTokens(text: string): number; } /** * OpenAI provider (GPT-4o-mini default). * Get an API key at https://platform.openai.com/ */ export declare class OpenAIProvider implements LLMProvider { private client; model: string; providerName: string; constructor(apiKey: string, model?: string); generate(prompt: string, options?: GenerateOptions): Promise; estimateTokens(text: string): number; } /** * DeepSeek provider using the OpenAI-compatible API. * Default model: deepseek-chat (DeepSeek-V3). * Get an API key at https://platform.deepseek.com/ * Pricing: ~$0.14/1M input tokens, ~$0.28/1M output tokens (much cheaper than GPT-4). */ export declare class DeepSeekProvider implements LLMProvider { private client; model: string; providerName: string; constructor(apiKey: string, model?: string); generate(prompt: string, options?: GenerateOptions): Promise; estimateTokens(text: string): number; } /** * Create an LLM provider from config or environment variables. * Falls back to env: CODEPRISM_LLM_PROVIDER, CODEPRISM_LLM_MODEL, CODEPRISM_LLM_API_KEY. * * Supported providers: * - deepseek → DeepSeek-V3 via OpenAI-compatible API (cheap: ~$0.14/1M input tokens) * - gemini → Google Gemini 2.0 Flash (free tier: https://ai.google.dev/) * - anthropic → Claude (paid) * - openai → GPT-4o-mini (paid) * * @returns Provider instance or null if none configured */ export declare function createLLMProvider(config?: LLMConfig): LLMProvider | null; //# sourceMappingURL=provider.d.ts.map