/**
 * Store capabilities — the two declared facts a store may state about its own
 * `search()`, and the refusals they buy.
 *
 * Pattern: guard clauses over declared port capabilities.
 * Role:    memory/store layer, next to the port whose bits they read.
 * Emits:   N/A.
 *
 * ── The failure this exists to end ──────────────────────────────────────────
 * `MemoryStore.search` is optional, so "can this store rank vectors?" was
 * answered by `if (store.search)` everywhere — a check that asks whether the
 * METHOD exists. Some stores implement `search()` and rank on their own side
 * over a population they derived themselves: `AgentCoreStore.search()` takes
 * the query as TEXT and returns the memory records AgentCore's extraction
 * strategies built, not the entries this library wrote. Handed one of those,
 * `indexCorpus` type-checks, runs, embeds the whole corpus, pays for it, and
 * reports `embedded: 214` — and not one of those 214 chunks can ever come
 * back. The index is real. The retrieval is empty. Nothing anywhere says so.
 *
 * A method's presence cannot express that, so the port grew one declared bit
 * ({@link MemoryStore.supportsVectorSearch}) and this is the one place that
 * reads it. **Absence is not a `false`**: a store that declares nothing is
 * treated exactly as it was before this existed, which is what keeps every
 * third-party adapter working unchanged.
 */
import type { MemoryStore } from './types.js';
/**
 * The ranking mode a store DECLARES, with a contradiction refused by name.
 *
 * Two members answer two questions ({@link MemoryStore.supportsVectorSearch}
 * "can you serve my vectors back?" and {@link MemoryStore.ranksBy} "what query
 * form does your search take?"), and a store may state either, both, or
 * neither. Both, disagreeing, is the one case that cannot be resolved: there is
 * no reading of `{ supportsVectorSearch: true, ranksBy: 'server-text' }` that
 * is not somebody's bug, and picking a winner would encode a guess about which
 * line was the mistake. Refused — the same law that refuses `topK` beside
 * `retrieval`.
 *
 * @returns `'vector'` | `'server-text'` | `undefined` (undeclared — the state
 *          every adapter written before 9.3.0 is in, and the one that must
 *          change nothing).
 * @throws when the two declarations contradict each other.
 */
export declare function resolveRankingMode(store: MemoryStore, caller: string): 'vector' | 'server-text' | undefined;
/**
 * Refuse a store that has declared it cannot rank the vectors it is given.
 *
 * @param store  the store the caller passed.
 * @param caller the function name to put in the message — the call the
 *               reader actually wrote, not this helper.
 * @throws when `store.supportsVectorSearch === false`, when it declares
 *         `ranksBy: 'server-text'`, or when the two declarations contradict.
 *         Never throws on a store that declares nothing.
 */
export declare function assertServesVectors(store: MemoryStore, caller: string): void;
