/**
 * src/knowledge/graphify.ts
 * Document knowledge graph — SQLite-backed.
 *
 * Replaces the original Neo4j-backed implementation. Same exported class shape
 * so unified.ts and other consumers don't change. Uses kg_entities (kind='document'),
 * kg_relationships, and kg_episodes — all sharing the kg_* schema with graphiti.
 *
 * Document-graph entities have customer_id=NULL (they're tenant-shared concepts:
 * Products, Services, Policies pulled from uploaded business docs). Each entity
 * tracks `source_files` so the dashboard can show "this product is mentioned in
 * KNOWLEDGE/products.md and KNOWLEDGE/policies.md".
 */
export declare class GraphifyClient {
    /** No-op for SQLite (the shim handles initialization). */
    connect(): Promise<void>;
    /** No-op. */
    close(): Promise<void>;
    private upsertEntity;
    private upsertRelationship;
    /**
     * Walk the tenant's documents directory, extract entities/relationships from
     * each text file, persist to kg_*. Returns counts for caller telemetry.
     */
    buildDocumentGraph(tenantId: string, documentsDir: string): Promise<{
        filesProcessed: number;
        entitiesCreated: number;
    }>;
    private processDocument;
    /**
     * Search document entities by name (substring, case-insensitive).
     * Returns entity rows with source files attached.
     */
    queryDocuments(tenantId: string, query: string): Promise<Record<string, unknown>[]>;
    /**
     * Detail view for a single product/entity from the document graph.
     * Includes related entities and source files.
     */
    getProductDetails(tenantId: string, productName: string): Promise<Record<string, unknown> | null>;
    /**
     * Wipe the document graph for a tenant — used before a full rebuild.
     * Conversation graph (kind='conversation') is preserved.
     */
    refreshGraph(tenantId: string): Promise<void>;
}
export declare const graphify: GraphifyClient;
//# sourceMappingURL=graphify.d.ts.map