import { FileCapabilities } from './baseLLM.js'; import { BaseModel } from './baseModel.js'; import { ChatMessageContent } from './chat.types.js'; import { EmbedContentParams, EmbedContentResult, EmbedTextParams, EmbedTextResult, EmbedTextsParams, EmbedTextsResult } from './embed.types.js'; /** * Base class for all embedding model implementations */ export declare abstract class BaseEmbeddings extends BaseModel { /** * Protected property to store additional provider-specific settings */ protected _additionalSettings: Record; /** * Get the current additional settings */ get AdditionalSettings(): Record; /** * Declares which non-text mime types this provider's embedding model can embed. * null = text-only (the default). Multimodal providers override this. * Mirrors BaseLLM.GetFileCapabilities(). */ GetFileCapabilities(): FileCapabilities | null; /** * Throws if `content` contains a media block whose mime type the model can't embed. * Text-only content always passes. Called by multimodal providers at the top of EmbedContent. */ protected ValidateContentSupported(content: ChatMessageContent): void; /** Resolve a block's effective mime: explicit field → data-URL prefix → type-based default. */ private resolveBlockMimeType; /** Wildcard-aware mime match (e.g. 'image/*'), same semantics as ResolveFileInputStrategy. */ private mimeTypeSupported; /** * Set additional provider-specific settings * Subclasses should override this method to validate required settings * * @param settings Provider-specific settings */ SetAdditionalSettings(settings: Record): void; /** * Clear all additional settings * This is useful for resetting the state of the provider * or when switching between different configurations. */ ClearAdditionalSettings(): void; abstract EmbedText(params: EmbedTextParams): Promise; abstract EmbedTexts(params: EmbedTextsParams): Promise; abstract GetEmbeddingModels(): Promise; /** * Embeds text and/or interleaved media content into a single fused vector. * * Default behavior: text-only content is delegated to EmbedText; * if any non-text block is present, throws — because the base provider can't embed media. * Multimodal providers (e.g. GeminiEmbedding2) should override this method. */ EmbedContent(params: EmbedContentParams): Promise; } /** * @deprecated Use BaseEmbeddings instead - will be removed in a future release */ export declare abstract class Embeddings extends BaseEmbeddings { } //# sourceMappingURL=baseEmbeddings.d.ts.map