import type { EmbeddingModel } from "ai"; import type { EntityRepository } from "../db/entities"; import type { ObservationRepository } from "../db/observations"; import type { UserObservationRepository } from "../db/user-memory"; import type { ObservationType, SearchResult } from "../types"; import { type SearchStrategyRegistry } from "./registry"; import type { Reranker } from "./reranker"; export type SearchStrategy = "filter-only" | "semantic" | "hybrid"; export interface OrchestratedSearchOptions { strategy?: SearchStrategy; type?: ObservationType; file?: string; concept?: string; limit?: number; projectPath: string; importanceMin?: number; importanceMax?: number; createdAfter?: string; createdBefore?: string; concepts?: string[]; files?: string[]; } export declare class SearchOrchestrator { private observations; private embeddingModel; private hasVectorExtension; private reranker; private userObservationRepo; private entityRepo; private strategyRegistry; constructor(observations: ObservationRepository, embeddingModel: EmbeddingModel | null, hasVectorExtension: boolean, reranker?: Reranker | null, userObservationRepo?: UserObservationRepository | null, entityRepo?: EntityRepository | null, strategyRegistry?: SearchStrategyRegistry | null); search(query: string, options: OrchestratedSearchOptions): Promise; private normalizeOptions; private searchUserMemory; private mergeResults; } export declare function attachExplainability(results: SearchResult[]): SearchResult[]; //# sourceMappingURL=orchestrator.d.ts.map