export interface EmbeddingConfig { provider: 'local' | 'api'; localModel?: string; baseUrl?: string; apiKey?: string; model: string; dimensions: number; } export declare const DEFAULT_EMBEDDING_CONFIG: EmbeddingConfig; export interface EmbeddingResult { embedding: number[]; model: string; tokenCount: number; } /** * Generate an embedding vector for the given text. * API requests honor timeoutMs and return null on failure. Local inference cannot * be aborted, so callers that need a foreground deadline must retain and observe * this promise in the background rather than abandoning a successful late result. */ export declare function generateEmbedding(text: string, config: EmbeddingConfig, timeoutMs?: number, generateLocal?: (text: string, config: EmbeddingConfig) => Promise): Promise; /** * Generate embeddings for multiple texts in a single API call (batch). * Returns null entries for any that fail. */ export declare function generateEmbeddingBatch(texts: string[], config: EmbeddingConfig, timeoutMs?: number): Promise<(EmbeddingResult | null)[]>; /** * Cosine similarity between two vectors. Returns value in [-1, 1]. * Returns 0 if either vector is zero-length. */ export declare function cosineSimilarity(a: number[], b: number[]): number; export declare function embeddingToBlob(embedding: number[]): Buffer; export declare function blobToEmbedding(blob: Buffer | Uint8Array): number[]; /** * Build the text to embed for a note. * Combines title + summary + content for maximum semantic signal. */ export declare function buildEmbeddingText(title: string, summary: string, content: string): string; //# sourceMappingURL=embeddings.d.ts.map