/** * @license * Copyright 2025 OSAgent OC * SPDX-License-Identifier: Apache-2.0 */ import type { EmbeddingProvider, EmbeddingResult, EmbeddingServiceConfig } from './types.js'; /** * Embedding Service * * Provides a unified interface for text embeddings with: * - Primary/fallback provider support * - Automatic fallback on failure * - Optional caching * - Batch operations * * Default configuration: * - Primary: Ollama (local, free) * - Fallback: OpenRouter (cloud, paid) */ export declare class EmbeddingService { private primary; private fallback; private cache; private readonly maxBatchSize; constructor(config?: EmbeddingServiceConfig); /** * Create service with default providers */ static createDefault(openRouterApiKey?: string): EmbeddingService; /** * Initialize and validate providers */ initialize(): Promise<{ primary: boolean; fallback: boolean; }>; /** * Get active provider (for dimension info, etc.) */ getActiveProvider(): Promise; /** * Get embedding dimensions from active provider */ getDimensions(): Promise; /** * Generate embedding for a single text */ embed(text: string): Promise; /** * Generate embeddings for multiple texts */ embedBatch(texts: string[]): Promise; /** * Process batch with size limit */ private batchWithLimit; /** * Calculate cosine similarity between two embeddings */ static cosineSimilarity(a: number[], b: number[]): number; /** * Clear the embedding cache */ clearCache(): void; /** * Get cache statistics */ getCacheStats(): { size: number; enabled: boolean; }; /** * Check if service has any available provider */ isAvailable(): Promise; } export declare function getDefaultEmbeddingService(openRouterApiKey?: string): EmbeddingService;