import { EmbeddingProvider, EmbeddingConfig } from './types.js';
export type { EmbeddingProvider } from './types.js';
export declare abstract class BaseEmbeddingProvider implements EmbeddingProvider {
    abstract name: string;
    abstract model: string;
    abstract dimension: number;
    abstract embed(text: string): Promise<number[]>;
    abstract embedBatch(texts: string[]): Promise<number[][]>;
    protected normalizeVector(vector: number[]): number[];
}
export declare class OpenAIEmbeddingProvider extends BaseEmbeddingProvider {
    name: string;
    model: string;
    dimension: number;
    private client;
    constructor(config: EmbeddingConfig);
    embed(text: string): Promise<number[]>;
    embedBatch(texts: string[]): Promise<number[][]>;
}
export declare class CohereEmbeddingProvider extends BaseEmbeddingProvider {
    name: string;
    model: string;
    dimension: number;
    private apiKey;
    private baseURL;
    constructor(config: EmbeddingConfig);
    embed(text: string): Promise<number[]>;
    embedBatch(texts: string[]): Promise<number[][]>;
}
export declare class LocalEmbeddingProvider extends BaseEmbeddingProvider {
    name: string;
    model: string;
    dimension: number;
    constructor(config: EmbeddingConfig);
    embed(text: string): Promise<number[]>;
    embedBatch(texts: string[]): Promise<number[][]>;
}
export declare class EmbeddingProviderFactory {
    static create(config: EmbeddingConfig): EmbeddingProvider;
}
export declare function createEmbeddingProvider(config: EmbeddingConfig): EmbeddingProvider;
//# sourceMappingURL=embeddings.d.ts.map