import { type FieldPolicyRegistry } from "../contract.js"; import type { IndexerAdapter, IndexerSlice } from "./contract.js"; export type IndexerConformanceMutation = "ensure" | "upsert" | "delete" | "bulk-reindex" | "drop"; export interface IndexerAdapterConformanceOptions { createAdapter: () => IndexerAdapter | Promise; /** Override the primary fixture slice when a provider constrains slice names. */ slice?: IndexerSlice; /** Override the standard fixture registry. */ registry?: FieldPolicyRegistry; /** Stable prefix for provider resources and document ids. */ namespace?: string; /** Wait for hosted engines to make a mutation visible to subsequent reads. */ settle?: (mutation: IndexerConformanceMutation, adapter: IndexerAdapter) => void | Promise; } /** Registry used by the published indexer conformance fixtures. */ export declare function createIndexerConformanceRegistry(): FieldPolicyRegistry; /** * Exercise the portable adapter behavior without depending on a test runner. * The runner cleans up documents, and drops fixture slices when admin support * is present. */ export declare function assertIndexerAdapterConformance(options: IndexerAdapterConformanceOptions): Promise;