/**
 * KiroGraph Orama Index
 *
 * Hybrid search (full-text + vector) backed by @orama/orama.
 * The index is persisted to .kirograph/orama.json via @orama/plugin-data-persistence.
 *
 * Opt-in: set config.semanticEngine = 'orama'
 * Required optional dependencies (not installed by default):
 *   npm install @orama/orama @orama/plugin-data-persistence
 *
 * Key advantage over cosine/sqlite-vec: Orama combines full-text relevance and
 * vector similarity in a single hybrid query, producing higher-quality results
 * than running the two searches separately and merging by priority.
 */
import type { Node } from '../types';
export declare class OramaIndex {
    private readonly kirographDir;
    private readonly dim;
    private db;
    private _available;
    private indexPath;
    private orama;
    private persistence;
    constructor(kirographDir: string, dim?: number);
    isAvailable(): boolean;
    /**
     * Load @orama/orama + @orama/plugin-data-persistence, then either restore
     * the persisted index from orama.json or create a fresh one.
     * Silent no-op when optional deps are missing.
     */
    initialize(): Promise<void>;
    /**
     * Insert or replace a node's document in the index.
     * Orama has no native upsert, so we remove any existing doc first.
     */
    upsert(node: Node, embedding: Float32Array): Promise<void>;
    /**
     * Remove a node's document from the index.
     */
    delete(nodeId: string): Promise<void>;
    /**
     * Hybrid search: combines full-text relevance on name/kind/filePath/signature
     * with vector similarity on the embedding field.
     * Returns node IDs ordered by Orama's combined score (best first).
     */
    search(queryText: string, queryVec: Float32Array, topN?: number): Promise<string[]>;
    /** Persist the in-memory index to .kirograph/orama.json. */
    save(): Promise<void>;
    /** Return all node IDs currently stored in the index. */
    getEmbeddedNodeIds(): Promise<string[]>;
    /** Number of documents currently in the index. */
    count(): Promise<number>;
}
//# sourceMappingURL=orama-index.d.ts.map