import type { AccessContext, GraphEdgeHit, GraphEdgeInput, GraphEdgeQuery, GraphNodeHit, GraphNamespaceQuery, GraphNodeInput, GraphNodeQuery, GraphNodeRef, GraphEdgeRef, GraphStore, SubGraph, GraphNamespaceInfo, GraphNamespaceInput, GraphNamespaceListQuery, GraphNamespaceDeleteResult } from "./types.js"; import type { HorizonFactsConfig } from "./config.js"; export declare class HorizonDBGraphStore implements GraphStore { private readonly cfg; private pool; private initialized; private readonly graphQueries; private nsCache; private nsClock; private constructor(); static create(config?: Partial): Promise; /** * Fail-fast on AGE only (07 D2) — a graph deployment needs `age`, nothing * else — then run the idempotent AGE bootstrap (CREATE EXTENSION age + * create_graph, both guarded). No vector / textsearch / pg_durable here; * this provider can pair with a plain PgFactStore. */ initialize(): Promise; close(): Promise; searchGraphNodes(q: GraphNodeQuery, access?: AccessContext): Promise; searchGraphEdges(q: GraphEdgeQuery, access?: AccessContext): Promise; normalizePredicateKey(predicate: string): string; graphNeighbourhood(nodeKey: string, depth: number, access?: AccessContext, opts?: GraphNamespaceQuery): Promise; upsertGraphNode(n: GraphNodeInput): Promise; upsertGraphEdge(e: GraphEdgeInput): Promise; mergeGraphNodes(fromKey: string, intoKey: string, reason: string, opts?: GraphNamespaceQuery): Promise; deleteGraphNode(nodeKey: string, opts?: GraphNamespaceQuery): Promise; deleteGraphEdge(fromKey: string, toKey: string, predicateKey: string, opts?: GraphNamespaceQuery): Promise; removeGraphEvidence(scopeKey: string, opts?: GraphNamespaceQuery): Promise; /** Cheap whole-graph counts for graph_stats (07 P5) — single count() Cypher * per axis, no client-side fan-out. The SDK tool adds the crawl backlog. */ graphStats(opts?: GraphNamespaceQuery): Promise<{ nodeCount: number; edgeCount: number; }>; private get registrySchema(); private nsTable; private get nsCacheTtlMs(); /** Test seam: override the cache clock to exercise TTL expiry deterministically. */ setNamespaceCacheClock(clock: () => number): void; private invalidateNamespaceCache; /** * Map any caller namespace to its REGISTRY key. The unscoped partition is * keyed by the literal `default` row; `default`/empty/trailing-slash all * resolve to it. Concrete corpora keep their trimmed key. */ private namespaceKey; private validateFrontmatter; private nsRowToInfo; private loadNamespaceRows; listGraphNamespaces(q?: GraphNamespaceListQuery): Promise; getGraphNamespace(namespace: string): Promise; upsertGraphNamespace(input: GraphNamespaceInput): Promise; archiveGraphNamespace(namespace: string): Promise; deleteGraphNamespace(namespace: string): Promise; } //# sourceMappingURL=graph-store.d.ts.map