import { type RetrievalBudget, type RetrievalCoverage, type RetrievalCoverageRequirements } from "./retrieval-coverage.js"; import { type RetrievalHit } from "./retrieval-index.js"; import { type SeededGraphQueryResult } from "./graph-runtime.js"; import type { RetrievalProfile } from "./text-analysis.js"; import type { SemanticIndex, SemanticIndexDescriptor } from "./semantic/types.js"; export type RetrievalWideningLevel = 0 | 1 | 2 | 3; export type { RetrievalBudget, RetrievalCoverage, RetrievalCoverageRequirements, } from "./retrieval-coverage.js"; export interface HybridRetrievalChannels { lexicalRank?: number; semanticRank?: number; graphRank?: number; lexicalScore?: number; lexicalConfidence?: number; semanticScore?: number; } export interface HybridRetrievalHit extends RetrievalHit { channels: HybridRetrievalChannels; } export interface HybridRetrievalAttempt { level: RetrievalWideningLevel; budget: RetrievalBudget; coverage: RetrievalCoverage; hitCount: number; coverageCandidateCount: number; estimatedContextTokens: number; lexicalPoolSize: number; semanticCandidateCount: number; visitedNodes: number; visitedEdges: number; maxDepthReached: number; fallbackUsed: boolean; } export interface HybridRetrievalResult { hits: HybridRetrievalHit[]; /** Full fused set used for coverage; never serialized as display evidence. */ coverageHits: HybridRetrievalHit[]; lexicalHits: RetrievalHit[]; semanticHits: RetrievalHit[]; semantic: HybridSemanticDiagnostics; graphResult: SeededGraphQueryResult; coverage: RetrievalCoverage; wideningLevel: RetrievalWideningLevel; attempts: HybridRetrievalAttempt[]; initialBudget: RetrievalBudget; finalBudget: RetrievalBudget; estimatedContextTokens: number; } export interface HybridSemanticDiagnostics { enabled: boolean; available: boolean; candidateCount: number; visitedBuckets: number; vectorCount: number; descriptor?: SemanticIndexDescriptor; error?: string; } export interface HybridRetrievalFallbackRequest { wikiRoot: string; query: string; coverage: RetrievalCoverage; budget: RetrievalBudget; } export type HybridRetrievalFallbackProvider = (request: HybridRetrievalFallbackRequest) => Promise; export interface HybridRetrievalParams { wikiRoot: string; query: string; maxResults?: number; pageTypes?: readonly string[]; profile?: RetrievalProfile; lexicalPoolSize?: number; seedCount?: number; graphMaxNodes?: number; graphMaxDepth?: number; graphBeamWidth?: number; graphMaxVisitedNodes?: number; lexicalWeight?: number; semanticWeight?: number; graphWeight?: number; rrfK?: number; progressiveWidening?: boolean; maxWideningLevel?: RetrievalWideningLevel; initialBudget?: Partial; maximumBudget?: Partial; coverageRequirements?: RetrievalCoverageRequirements; fallbackProvider?: HybridRetrievalFallbackProvider; /** Enables the configured embedding provider. An injected index also enables this channel. */ semanticEnabled?: boolean; /** Replaceable semantic backend, primarily for local providers and deterministic evaluation. */ semanticIndex?: SemanticIndex; semanticPoolSize?: number; /** Persist disposable retrieval/graph/semantic indexes. Read-only consumers disable this. */ persistDerivedIndexes?: boolean; } export declare function retrieveWikiHybrid(params: HybridRetrievalParams): Promise; //# sourceMappingURL=hybrid-retrieval.d.ts.map