/**
 * KiroGraph sqlite-vec ANN Index
 *
 * Opt-in ANN index backed by sqlite-vec (the successor to sqlite-vss).
 * Uses better-sqlite3 to load the sqlite-vec extension into a dedicated
 * .kirograph/vec.db file, keeping it separate from the main node-sqlite3-wasm
 * database to avoid WAL-mode conflicts.
 *
 * Required optional dependencies (not installed by default):
 *   npm install better-sqlite3 sqlite-vec
 *
 * If either package is missing, VecIndex silently marks itself unavailable
 * and VectorManager falls back to in-process cosine search.
 */
export declare class VecIndex {
    private readonly kirographDir;
    private db;
    private _available;
    private dim;
    constructor(kirographDir: string, dim?: number);
    isAvailable(): boolean;
    /**
     * Load better-sqlite3 + sqlite-vec and create the vec schema.
     * No-op and silent when optional deps are missing.
     */
    initialize(): Promise<void>;
    /**
     * Insert or update the embedding for a node.
     * We let vec_nodes auto-assign its rowid (avoiding the SQLITE_INTEGER type
     * mismatch that occurs when passing explicit JS number rowids to vec0).
     * The auto-assigned rowid is stored in vec_nodes_map for later lookup.
     * vec0 tables don't support UPDATE, so updates are a DELETE + INSERT pair.
     */
    upsert(nodeId: string, embedding: Float32Array): void;
    /**
     * Remove a node's embedding from the index.
     * Called explicitly when a node is deleted; stale entries are also filtered
     * harmlessly in search() since GraphDatabase.getNode() will return null.
     */
    delete(nodeId: string): void;
    /**
     * ANN search: returns node IDs ordered by ascending distance.
     * Uses sqlite-vec KNN syntax: `WHERE embedding MATCH ? ORDER BY distance LIMIT ?`
     */
    search(queryVec: Float32Array, topN?: number): string[];
    /** Return all node IDs currently stored in the index. */
    getEmbeddedNodeIds(): string[];
    /** Returns the number of entries currently in the vec index. */
    count(): number;
    close(): void;
}
//# sourceMappingURL=vec-index.d.ts.map