import { type Database } from "sqlite";
import sqlite3 from "sqlite3";
import { IndexTag, IndexingProgressUpdate } from "../index.js";
import { CodebaseIndex, LastModifiedMap, MarkCompleteCallback, RefreshIndexResults } from "./types.js";
export type DatabaseConnection = Database<sqlite3.Database>;
export declare function tagToString(tag: IndexTag): string;
export declare class SqliteDb {
    static db: DatabaseConnection | null;
    private static createTables;
    private static indexSqlitePath;
    static get(): Promise<DatabaseConnection>;
}
export declare function getComputeDeleteAddRemove(tag: IndexTag, currentFiles: LastModifiedMap, readFile: (path: string) => Promise<string>, repoName: string | undefined): Promise<[RefreshIndexResults, MarkCompleteCallback]>;
export declare class GlobalCacheCodeBaseIndex implements CodebaseIndex {
    private db;
    constructor(db: DatabaseConnection);
    artifactId: string;
    static create(): Promise<GlobalCacheCodeBaseIndex>;
    update(tag: IndexTag, results: RefreshIndexResults, _: MarkCompleteCallback, repoName: string | undefined): AsyncGenerator<IndexingProgressUpdate>;
    private computeOrAddTag;
    private deleteOrRemoveTag;
}
//# sourceMappingURL=refreshIndex.d.ts.map