import { Repository } from '../../db/index.js';
import type { BetterSqlite3Database, RelatedNodeRow } from '../../types.js';
type BfsLevel = Array<{
    name: string;
    kind: string;
    file: string;
    line: number;
    viaImplements?: boolean;
}>;
type BfsLevels = Record<number, BfsLevel>;
type BfsOnVisit = (caller: RelatedNodeRow & {
    viaImplements?: boolean;
}, parentId: number, depth: number) => void;
export declare function bfsTransitiveCallers(dbOrRepo: BetterSqlite3Database | InstanceType<typeof Repository>, startId: number, { noTests, maxDepth, includeImplementors, onVisit, }?: {
    noTests?: boolean;
    maxDepth?: number;
    includeImplementors?: boolean;
    onVisit?: BfsOnVisit;
}): {
    totalDependents: number;
    levels: BfsLevels;
};
export declare function impactAnalysisData(file: string, customDbPath: string, opts?: {
    noTests?: boolean;
}): {
    file: string;
    sources: string[];
    levels: Record<number, {
        file: string;
    }[]>;
    totalDependents: number;
};
export declare function fnImpactData(name: string, customDbPath: string, opts?: {
    depth?: number;
    noTests?: boolean;
    file?: string;
    kind?: string;
    includeImplementors?: boolean;
    limit?: number;
    offset?: number;
    config?: any;
}): {
    name: string;
    results: {
        levels: BfsLevels;
        totalDependents: number;
        name: string;
        kind: string;
        file: string;
        line: number;
        endLine: number | null;
        role: string | null;
        fileHash: string | null;
    }[];
} & {
    _pagination?: import("../../shared/paginate.js").PaginationMeta;
};
export {};
//# sourceMappingURL=fn-impact.d.ts.map