/**
 * Backend selector — picks the best available `StructuralPrepass`.
 *
 * Order: gitnexus (if available + opted-in) → codegraph (if available)
 *        → grep-only (always works).
 *
 * GitNexus is more invasive (heavier stack, longer index time) but provides
 * Leiden community detection (clusterFiles capability) which can help with
 * multi-component codebases. Default `auto` prefers CodeGraph for the
 * smaller-footprint case; explicitly request `gitnexus` for clustering.
 */
import type { StructuralPrepass } from '../interface.js';
import { GrepOnlyBackend } from './grep-only.js';
import { CodeGraphBackend } from './codegraph.js';
import { GitNexusBackend } from './gitnexus.js';
export { GrepOnlyBackend, CodeGraphBackend, GitNexusBackend };
export type BackendName = 'codegraph' | 'gitnexus' | 'grep-only' | 'auto';
/**
 * Select a backend by name, or auto-pick a sensible default.
 *
 * `auto` semantics (engines 6.21.x onward):
 *   - GitNexus available → GitNexus. Richest, empirically validated
 *     across twenty + idle_meta cases. Slightly heavier index step
 *     than CodeGraph but produces better cluster quality for behavior
 *     extraction (#27 substrate).
 *   - CodeGraph + sqlite3 available → CodeGraph as fallback. Recent
 *     CodeGraph CLI releases (≥0.7) changed the edges-table schema
 *     (`source`/`target` cols replacing `from_id`/`to_id`); our
 *     queries don't yet handle the new shape, so it errors loudly on
 *     fresh databases. GitNexus is the better default.
 *   - Otherwise → grep-only (always works, no external tools).
 */
export declare function selectBackend(name?: BackendName): StructuralPrepass;
//# sourceMappingURL=index.d.ts.map