import type { AdjacentEdgeRow, BetterSqlite3Database, CallableNodeRow, CallEdgeRow, ChildNodeRow, ComplexityMetrics, FileNodeRow, ImportEdgeRow, ImportGraphEdgeRow, IntraFileCallEdge, ListFunctionOpts, NodeIdRow, NodeRow, NodeRowWithFanIn, QueryOpts, RelatedNodeRow, TriageNodeRow, TriageQueryOpts } from '../../types.js';
import { Repository } from './base.js';
/**
 * SqliteRepository — wraps existing `fn(db, ...)` repository functions
 * behind the Repository interface so callers can use `repo.method(...)`.
 */
export declare class SqliteRepository extends Repository {
    #private;
    constructor(db: BetterSqlite3Database);
    /** Expose the underlying db for code that still needs raw access. */
    get db(): BetterSqlite3Database;
    findNodeById(id: number): NodeRow | undefined;
    findNodesByFile(file: string): NodeRow[];
    findFileNodes(fileLike: string): NodeRow[];
    findNodesWithFanIn(namePattern: string, opts?: QueryOpts): NodeRowWithFanIn[];
    countNodes(): number;
    countEdges(): number;
    countFiles(): number;
    getNodeId(name: string, kind: string, file: string, line: number): number | undefined;
    getFunctionNodeId(name: string, file: string, line: number): number | undefined;
    bulkNodeIdsByFile(file: string): NodeIdRow[];
    findNodeChildren(parentId: number): ChildNodeRow[];
    findNodesByScope(scopeName: string, opts?: QueryOpts): NodeRow[];
    findNodeByQualifiedName(qualifiedName: string, opts?: {
        file?: string;
    }): NodeRow[];
    listFunctionNodes(opts?: ListFunctionOpts): NodeRow[];
    iterateFunctionNodes(opts?: ListFunctionOpts): IterableIterator<NodeRow>;
    findNodesForTriage(opts?: TriageQueryOpts): TriageNodeRow[];
    findCallees(nodeId: number): RelatedNodeRow[];
    findCallers(nodeId: number): RelatedNodeRow[];
    findCallersBatch(nodeIds: number[]): Map<number, RelatedNodeRow[]>;
    findDistinctCallers(nodeId: number): RelatedNodeRow[];
    findAllOutgoingEdges(nodeId: number): AdjacentEdgeRow[];
    findAllIncomingEdges(nodeId: number): AdjacentEdgeRow[];
    findCalleeNames(nodeId: number): string[];
    findCallerNames(nodeId: number): string[];
    findImportTargets(nodeId: number): ImportEdgeRow[];
    findImportSources(nodeId: number): ImportEdgeRow[];
    findImportDependents(nodeId: number): NodeRow[];
    findCrossFileCallTargets(file: string): Set<number>;
    countCrossFileCallers(nodeId: number, file: string): number;
    getClassHierarchy(classNodeId: number): Set<number>;
    findImplementors(nodeId: number): RelatedNodeRow[];
    findInterfaces(nodeId: number): RelatedNodeRow[];
    findIntraFileCallEdges(file: string): IntraFileCallEdge[];
    getCallableNodes(): CallableNodeRow[];
    getCallEdges(): CallEdgeRow[];
    getFileNodesAll(): FileNodeRow[];
    getImportEdges(): ImportGraphEdgeRow[];
    hasCfgTables(): boolean;
    hasEmbeddings(): boolean;
    hasDataflowTable(): boolean;
    getComplexityForNode(nodeId: number): ComplexityMetrics | undefined;
    getFileHash(file: string): string | null;
    hasImplementsEdges(): boolean;
    hasCoChangesTable(): boolean;
}
//# sourceMappingURL=sqlite-repository.d.ts.map