/**
 * JSON Graph Backend
 *
 * Default zero-dependency implementation of GraphBackend wrapping the
 * existing DependencyGraph adjacency list format. Suitable for projects
 * with <5k nodes.
 *
 * @implements #727
 * @source @src/artifacts/graph-backend.ts
 * @tests @test/unit/artifacts/graph-backend.test.ts
 */
import type { GraphBackend } from '../graph-backend.js';
import type { DependencyGraph } from '../types.js';
/**
 * JSON-backed graph using plain objects and JS Set operations.
 *
 * This is the default backend — always available, no external dependencies.
 */
export declare class JsonGraphBackend implements GraphBackend {
    private graph;
    addNode(id: string, attrs?: Record<string, unknown>): void;
    addEdge(source: string, target: string, type?: string, attrs?: Record<string, unknown>): void;
    hasNode(id: string): boolean;
    hasEdge(source: string, target: string, edgeType?: string): boolean;
    getNodeAttrs(id: string): Record<string, unknown> | undefined;
    nodes(): string[];
    neighbors(nodeId: string, direction: 'in' | 'out' | 'both', edgeType?: string): string[];
    intersection(setA: string[], setB: string[]): string[];
    difference(setA: string[], setB: string[]): string[];
    union(setA: string[], setB: string[]): string[];
    serialize(): DependencyGraph;
    deserialize(data: DependencyGraph): void;
    nodeCount(): number;
    edgeCount(): number;
}
//# sourceMappingURL=json-backend.d.ts.map