import { type Embedder } from "./embeddings.js"; import { type SearchHit, type SearchOptions } from "./search.js"; /** Cosine similarity of two equal-ish-length vectors (0 when either is zero). */ export declare function cosineSimilarity(a: Float32Array | number[], b: Float32Array | number[]): number; export interface SemanticOptions extends SearchOptions { /** Embedder for the query (defaults to OpenAI). Inject a fake in tests. */ embedder?: Embedder; } /** Rank stored embeddings against a query vector (brute-force cosine), one hit per session. */ export declare function vectorSearchByEmbedding(queryVec: number[], opts?: SemanticOptions): SearchHit[]; /** Semantic search: embed the query, then cosine-rank stored embeddings. */ export declare function semanticSearch(query: string, opts?: SemanticOptions): Promise; /** Reciprocal-rank fusion of multiple ranked result lists. */ export declare function reciprocalRankFusion(lists: SearchHit[][], limit: number, k?: number): SearchHit[]; /** Hybrid search: blend full-text (FTS5) and semantic (vector) results via RRF. */ export declare function hybridSearch(query: string, opts?: SemanticOptions): Promise; //# sourceMappingURL=vector-search.d.ts.map