import type { MemoryConfig } from '../types/index.js';
export interface EmbeddingResult {
    embedding: number[];
    tokens: number;
    model: string;
}
export interface EmbeddingProvider {
    embed(text: string): Promise<EmbeddingResult>;
    embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
    getDimension(): number;
}
export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
    private client;
    private model;
    private dimension;
    constructor(config: MemoryConfig['embedding']);
    embed(text: string): Promise<EmbeddingResult>;
    embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
    getDimension(): number;
    private getModelDimension;
}
export declare class LocalEmbeddingProvider implements EmbeddingProvider {
    private dimension;
    constructor(dimension?: number);
    embed(text: string): Promise<EmbeddingResult>;
    embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
    getDimension(): number;
    private simpleHash;
    private hashToVector;
}
export declare class EmbeddingService {
    private provider;
    constructor(config: MemoryConfig['embedding']);
    embed(text: string): Promise<EmbeddingResult>;
    embedBatch(texts: string[]): Promise<EmbeddingResult[]>;
    getDimension(): number;
    embedWithRetry(text: string, maxRetries?: number, baseDelay?: number): Promise<EmbeddingResult>;
}
//# sourceMappingURL=EmbeddingService.d.ts.map