/**
 * Knowledge Graph Implementation
 * Core graph structure and operations for cognitive memory
 */
import { CognitiveNode, CognitiveEdge, MemorySearchOptions, MemoryContext, CognitiveMemoryConfig } from './types.js';
import { EmbeddingProvider } from '../rag/embeddings.js';
export declare class KnowledgeGraphManager {
    private graph;
    private config;
    private embeddingProvider?;
    constructor(config?: CognitiveMemoryConfig);
    initialize(embeddingProvider?: EmbeddingProvider): Promise<void>;
    /**
     * Add a node to the knowledge graph
     */
    addNode(node: Omit<CognitiveNode, 'id' | 'createdAt' | 'updatedAt' | 'accessCount' | 'lastAccessed'>): Promise<CognitiveNode>;
    /**
     * Add an edge between nodes
     */
    addEdge(edge: Omit<CognitiveEdge, 'id' | 'createdAt'>): Promise<CognitiveEdge>;
    /**
     * Search for nodes using semantic similarity
     */
    search(options: MemorySearchOptions): Promise<MemoryContext>;
    /**
     * Get related nodes through graph traversal
     */
    private getRelatedNodes;
    /**
     * Update node importance based on connections and usage
     */
    private updateNodeImportance;
    /**
     * Prune least important nodes
     */
    private pruneNodes;
    /**
     * Prune least important edges
     */
    private pruneEdges;
    /**
     * Remove a node and its edges
     */
    removeNode(nodeId: string): Promise<void>;
    /**
     * Remove an edge
     */
    removeEdge(edgeId: string): Promise<void>;
    /**
     * Calculate cosine similarity between embeddings
     */
    private cosineSimilarity;
    /**
     * Simple text similarity fallback
     */
    private textSimilarity;
    /**
     * Calculate recency boost
     */
    private recencyBoost;
    /**
     * Save graph to disk
     */
    private saveToDisk;
    /**
     * Load graph from disk
     */
    private loadFromDisk;
    /**
     * Get graph statistics
     */
    getStats(): Record<string, any>;
    /**
     * Export graph for visualization
     */
    exportForVisualization(): {
        nodes: any[];
        edges: any[];
    };
}
//# sourceMappingURL=knowledge-graph.d.ts.map