/** * Multi-query expansion via Haiku (Task 308). * * Generates 3-5 paraphrases of the user query so the hybrid pipeline runs * each paraphrase against vector + BM25 in parallel and unions the * candidate sets before fusion. Recovers recall on terse queries where the * embedding's nearest-neighbour is unstable. * * The expansion runs through `@rubytech/oauth-llm` against Claude Haiku — * the same OAuth-bearer path the admin classifiers use; no new SDK * dependency and no Anthropic-API-key path. Cache is in-process, keyed by * (accountId, normalisedQuery, retrievalClass), with a 1-hour TTL. * * Graceful degrade: if the LLM call fails, returns just the original * query. The caller's hybrid pipeline still runs — just on one query * instead of N — so missing paraphrases are a recall regression, not a * fault. */ export declare function clearExpansionCache(): void; export interface ExpandQueryParams { query: string; retrievalClass?: string; accountId?: string; /** * Override the cache or skip it entirely (useful in tests). When * `false`, the cache is read but never written; when `true` (default), * both reads and writes are active. */ useCache?: boolean; } /** * Return `[query, ...paraphrases]` (original always first). On LLM * failure returns `[query]` only and writes a single stderr line so the * operator can see expansion is degrading without breaking search. */ export declare function expandQuery(params: ExpandQueryParams): Promise; //# sourceMappingURL=query-expansion.d.ts.map