/** * LLM Provider Interface */ import type { LLMCompletionOptions, LLMCompletionResult, LLMProvider } from '../types/llm.types.js'; /** * Base abstract class for LLM providers */ export declare abstract class BaseLLMProvider implements LLMProvider { protected config: Record; abstract name: string; constructor(config: Record); /** * Check if provider is properly configured */ abstract isConfigured(): boolean; /** * Complete a chat conversation */ abstract complete(options: LLMCompletionOptions): Promise; /** * Stream a chat conversation */ abstract streamComplete(options: LLMCompletionOptions, onChunk: (chunk: string) => void): Promise; /** * Check if the requested model is available/valid for this provider * * @param _modelName The model name to check * @returns true if available, false otherwise */ validateModel(_modelName: string): Promise; /** * Get a list of alternative models for this provider * Used when the requested model is unavailable * * @param _currentModel The model that failed validation * @returns Array of alternative model names in order of preference */ getAlternativeModels(_currentModel?: string): string[]; /** * Get default model for this provider */ protected getDefaultModel(): string | undefined; /** * Get API key from config */ protected getApiKey(): string; /** * Get a hashed identifier for rate limiting (to avoid exposing API keys in logs) */ protected getRateLimitKey(): string; /** * Get timeout from config */ protected getTimeout(): number; /** * Get max retries from config */ protected getMaxRetries(): number; } //# sourceMappingURL=provider.interface.d.ts.map