/**
 * Embedding Providers - Pluggable vector embedding backends
 *
 * Supports:
 * - Simple (built-in, no dependencies)
 * - OpenAI text-embedding-3-small/large
 * - Ollama local embeddings
 * - Custom providers via interface
 */
import type { EmbeddingProvider } from './episodicMemory.js';
export interface OpenAIEmbeddingConfig {
    apiKey: string;
    model?: 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002';
    baseUrl?: string;
}
export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
    readonly name = "openai";
    readonly dimension: number;
    private apiKey;
    private model;
    private baseUrl;
    constructor(config: OpenAIEmbeddingConfig);
    embed(text: string): Promise<number[]>;
}
export interface OllamaEmbeddingConfig {
    model?: string;
    baseUrl?: string;
}
export declare class OllamaEmbeddingProvider implements EmbeddingProvider {
    readonly name = "ollama";
    readonly dimension = 4096;
    private model;
    private baseUrl;
    constructor(config?: OllamaEmbeddingConfig);
    embed(text: string): Promise<number[]>;
}
export interface DeepSeekEmbeddingConfig {
    apiKey: string;
    baseUrl?: string;
}
export declare class DeepSeekEmbeddingProvider implements EmbeddingProvider {
    readonly name = "deepseek";
    readonly dimension = 1024;
    private apiKey;
    private baseUrl;
    constructor(config: DeepSeekEmbeddingConfig);
    embed(text: string): Promise<number[]>;
}
export declare class CachedEmbeddingProvider implements EmbeddingProvider {
    readonly name: string;
    readonly dimension: number;
    private provider;
    private cache;
    private maxCacheSize;
    constructor(provider: EmbeddingProvider, maxCacheSize?: number);
    embed(text: string): Promise<number[]>;
    clearCache(): void;
    getCacheStats(): {
        size: number;
        maxSize: number;
    };
}
export type EmbeddingProviderType = 'simple' | 'openai' | 'ollama' | 'deepseek';
export interface EmbeddingProviderOptions {
    type: EmbeddingProviderType;
    apiKey?: string;
    model?: string;
    baseUrl?: string;
    useCache?: boolean;
    maxCacheSize?: number;
}
/**
 * Create an embedding provider based on configuration
 */
export declare function createEmbeddingProvider(options: EmbeddingProviderOptions): EmbeddingProvider;
/**
 * Auto-detect best available embedding provider
 */
export declare function autoDetectEmbeddingProvider(): EmbeddingProvider;
//# sourceMappingURL=embeddingProviders.d.ts.map