/** Minimal DB handle — avoids importing better-sqlite3 types directly. */
interface DbHandle {
    prepare(sql: string): {
        get(...params: unknown[]): unknown;
    };
}
/** Anything that can look up a file hash — either a raw DB or a Repository. */
interface HashSource {
    getFileHash(file: string): string | null;
}
export declare function getFileHash(db: DbHandle, file: string): string | null;
/** Pick the 4-field symbol reference from any row that carries at least {name, kind, file, line}. */
export declare function toSymbolRef(row: {
    name: string;
    kind: string;
    file: string;
    line: number;
}): {
    name: string;
    kind: string;
    file: string;
    line: number;
};
export declare function kindIcon(kind: string): string;
export interface NormalizedSymbol {
    name: string;
    kind: string;
    file: string;
    line: number;
    endLine: number | null;
    role: string | null;
    fileHash: string | null;
}
interface RawSymbolRow {
    name: string;
    kind: string;
    file: string;
    line: number;
    end_line?: number | null;
    endLine?: number | null;
    role?: string | null;
}
/**
 * Normalize a raw DB/query row into the stable 7-field symbol shape.
 * Accepts a raw DB handle (with .prepare), a Repository (with .getFileHash), or null.
 */
export declare function normalizeSymbol(row: RawSymbolRow, db?: DbHandle | HashSource | null, hashCache?: Map<string, string | null>): NormalizedSymbol;
export {};
//# sourceMappingURL=normalize.d.ts.map