/**
 * Memory search and recall.
 *
 * Phase 3 of the audit-recommended store.ts split. The "search/recall"
 * group is the hybrid FTS5 + vector pipeline (`searchMemoriesInternal`)
 * and its three public entry points (`searchMemories`,
 * `searchMemoriesExplained`, `recallWithEmbeddings`). Lifted out of
 * store.ts (1,564 lines after phase 2) so the search pipeline can be
 * read on its own without scrolling past every CRUD helper. No
 * behaviour change vs the original implementation — exports re-emerge
 * from store.ts via a barrel re-export so existing import paths keep
 * working.
 *
 * Imports from store.ts (`rowToMemory`, `logAccessDenial`) form a
 * module cycle, but both are only invoked inside function bodies —
 * never at module load. ESM live bindings handle this correctly at
 * runtime. `logAccessDenial` is exported from store.ts purely as a
 * cycle artifact; it is not intended as public API (same precedent
 * as `MAX_CONTENT_SIZE` in phase 2).
 *
 * Imports from lifecycle.ts (`reinforceFromSearch`, `enrichMemory`)
 * are not cyclic — phase 2 added them to store.ts specifically for
 * the search pipeline; in phase 3 they move with the consumer.
 */
import { Memory, MemoryConfig, SearchOptions, SearchResult } from './types.js';
import type { DefenceSource } from '../defence/types.js';
/**
 * Search memories using full-text search, vector similarity, and filters
 * Now uses hybrid search combining FTS5 keywords with semantic vector matching
 */
export declare function searchMemories(options: SearchOptions, config?: MemoryConfig, source?: DefenceSource): Promise<SearchResult[]>;
export declare function searchMemoriesExplained(options: SearchOptions, config?: MemoryConfig, source?: DefenceSource): Promise<SearchResult[]>;
/**
 * Recall with embedding-based vector similarity fallback.
 *
 * 1. First tries FTS5 search (existing searchMemories)
 * 2. If FTS5 returns < 3 results, also runs embedding similarity search
 * 3. Merges results (FTS5 first, then embedding results not already in FTS5 set)
 * 4. Caps at `limit` (default 15)
 * 5. The `threshold` (default 0.3) filters out low-similarity embedding results
 */
export declare function recallWithEmbeddings(query: string, options?: {
    limit?: number;
    project?: string;
    threshold?: number;
    existingResults?: SearchResult[];
    queryEmbedding?: Float32Array | null;
}): Promise<Memory[]>;
