/** * Base embedding provider interface */ import type { Embedding, BatchEmbeddingResult, ProviderConfig, ProviderHealth, EmbeddingOptions } from './types.js'; /** * Base interface for embedding providers */ export interface EmbeddingProvider { /** * Provider name */ readonly name: string; /** * Get default model name */ readonly defaultModel: string; /** * Get default dimensions */ readonly defaultDimensions: number; /** * Generate embedding for a single text */ embed(_text: string, _options?: EmbeddingOptions): Promise; /** * Generate embeddings for multiple texts */ embedBatch(_texts: string[], _options?: EmbeddingOptions): Promise; /** * Check provider health and availability */ healthCheck(): Promise; /** * Get provider configuration */ getConfig(): ProviderConfig; /** * Update provider configuration */ updateConfig(_config: Partial): void; } /** * Abstract base class for embedding providers */ export declare abstract class BaseEmbeddingProvider implements EmbeddingProvider { abstract readonly name: string; abstract readonly defaultModel: string; abstract readonly defaultDimensions: number; protected config: ProviderConfig; constructor(config: ProviderConfig); abstract embed(_text: string, _options?: EmbeddingOptions): Promise; abstract embedBatch(_texts: string[], _options?: EmbeddingOptions): Promise; abstract healthCheck(): Promise; getConfig(): ProviderConfig; updateConfig(_config: Partial): void; /** * Validate text before embedding */ protected validateText(text: string): void; /** * Validate texts array */ protected validateTexts(texts: string[]): void; /** * Clean text for embedding */ protected cleanText(text: string): string; /** * Truncate text to maximum length */ protected truncateText(text: string, maxLength: number): string; /** * Get model to use for embedding */ protected getModel(options?: EmbeddingOptions): string; /** * Get dimensions to use for embedding */ protected getDimensions(options?: EmbeddingOptions): number; } //# sourceMappingURL=base.d.ts.map