import type Database from 'better-sqlite3'; import type { MonographNode } from '../types.js'; import { type SymbolCandidate } from './resolve-node.js'; export interface NeighborEntry { node: MonographNode; relation: string; confidence: string; confidenceScore: number; direction: 'outbound' | 'inbound'; } /** A node a name could have referred to — enough to re-query unambiguously. */ export type NeighborCandidate = SymbolCandidate; export interface MonographNeighborsResult { node: MonographNode | null; neighbors: NeighborEntry[]; /** True when `name` matched several nodes and nothing narrowed it to one. */ ambiguous: boolean; /** Populated when ambiguous — re-query with `nodeId` or `filePath`. */ candidates: NeighborCandidate[]; /** Neighbors matching the query before `limit` was applied. */ totalNeighbors: number; /** True when `totalNeighbors` exceeds the returned `neighbors`. */ truncated: boolean; /** The cap that was applied per direction. */ limit: number; } export interface MonographNeighborsInput { /** Canonical node id — the unambiguous way to address a node. */ nodeId?: string; /** Symbol name; may match several nodes. */ name?: string; /** Narrows an ambiguous `name` — exact file path or a trailing fragment of one. */ filePath?: string; relationFilter?: string; includeInbound?: boolean; /** Max neighbors per direction (default 50, hard cap 500). */ limit?: number; } export declare function getMonographNeighbors(db: Database.Database, input: MonographNeighborsInput): MonographNeighborsResult; //# sourceMappingURL=neighbors.d.ts.map