import type { CortexStore, ParsedMemoryItem } from '../db/store.js'; import { type PreferredScope } from './scope.js'; import { type MemoryReferenceValidation } from './reference-validation.js'; import { type TopicToken } from './tokenize.js'; export interface RetrievedMemoryItem extends ParsedMemoryItem { retrieval_score: number; lexical_score: number; semantic_score: number | null; semantic_rank_applied: boolean; reference_validation: MemoryReferenceValidation; current_truth_bonus: number; temporal_bonus: number; scope_bonus: number; kind_bonus: number; recency_bonus: number; hotness_bonus: number; access_bonus: number; token_hits: number; exact_phrase: boolean; fts_rank: number | null; } export type SemanticMode = 'off' | 'shadow' | 'rank'; export interface SemanticProvider { embeddingModel: string; embed(topic: string): number[] | null; } export interface RetrieveMemoryOptions { semanticMode?: SemanticMode; semanticProvider?: SemanticProvider; semanticRankThreshold?: number; } export interface RetrievalContext { preferredScope: PreferredScope | undefined; projectScopeKey: string | undefined; focus: string | null; topic: string; lowerTopic: string; tokens: TopicToken[]; queryText: string | null; temporalIntent: TemporalIntent; } export interface RetrievalResult { context: RetrievalContext; candidates: RetrievedMemoryItem[]; semanticCandidates: RetrievedMemoryItem[]; results: RetrievedMemoryItem[]; } export declare function estimateTokens(text: string): number; export interface TemporalIntent { preferRecent: boolean; preferOld: boolean; preferResolved: boolean; } export declare function buildRetrievalContext(store: CortexStore, topic: string): RetrievalContext; export declare function retrieveMemory(store: CortexStore, topic: string, limit?: number, options?: RetrieveMemoryOptions): RetrievalResult; export declare function logRetrieval(store: CortexStore, retrieval: RetrievalResult, rendered: string): void; //# sourceMappingURL=retrieval.d.ts.map